我有一个MySQL数据库,其中一列用于存储密码。
它是用PHP实现的,password_hash()用于在注册时对原始密码进行加盐和哈希处理,然后检索登录用户的MySQL行,然后获取password_verify()其密码。
但是我需要在Java中移动它。那么,有Java等效于password_hash()和password_verify()吗?
您可以通过mindrot使用该实现:https :
//www.mindrot.org/projects/jBCrypt/
要复制,password_hash您可以使用:
String hash = BCrypt.hashpw("password");
Run Code Online (Sandbox Code Playgroud)
并复制password_verify使用:
boolean s = BCrypt.checkpw("password", hash);
Run Code Online (Sandbox Code Playgroud)
这对我的Laravel项目非常有用。
我对lib进行了一些调整,以允许使用随机盐,而不是每次调用hashpw方法时都传递新的盐,并支持盐的多个版本。
您可以在这里找到它:https : //github.com/promatik/jBCrypt