BCrypt.checkpw不工作(Java)

时间:2015-01-19 02:31:10

标签: java mysql hash passwords bcrypt

我的网络应用使用BCrypt加密用户密码并将其保存到MySQL(列数据类型: varchar(255)

BCrypt.hashpw(password, BCrypt.gensalt(15));

但是,当用户登录时,BCrypt.checkpw无法匹配与注册时使用的密码相同的密码(在散列之前)。

boolean passwordMatch = BCrypt.checkpw(password, user.getPassword()); //false

我不知道发生了什么。有没有人知道我应该检查哪些?

2 个答案:

答案 0 :(得分:0)

我刚刚发现它似乎与BCrypt没有任何关系,因为我试图重新编译我的网络应用程序,登录工作,但是,我不明白为什么它需要重新编译。

答案 1 :(得分:0)

BCrypt.hashpw(password, BCrypt.gensalt(15));//this is when you insert
//********
boolean passwordMatch = BCrypt.checkpw( plainPassword , myPasswordOnDB); 

plainPassword是字符串密码,myPasswordOnDB是加密密码)

这是检查密码的正确方法。如果这对您不起作用,请尝试使mySQL列密码为char(60)。