Android Java Bcrypt库密码不';不匹配数据库加密密码

Android Java Bcrypt库密码不';不匹配数据库加密密码,java,android,sqlite,bcrypt,Java,Android,Sqlite,Bcrypt,所以我知道很多人问为什么他们的加密密码与输入不匹配,但我找不到任何关于我的情况的具体案例 我在我的Android Sqlite项目中使用的Bcrypt库 当我用他的例子如下: 它记录的很好,并且说它与密码匹配。但是,当我使用相同的密码从另一个方法调用此验证时,它总是显示“false”。有人能解释一下为什么会发生这种情况,我怎样才能解决它 String bcryptHashString = BCrypt.withDefaults().hashToString(12, password.toChar

所以我知道很多人问为什么他们的加密密码与输入不匹配,但我找不到任何关于我的情况的具体案例

我在我的Android Sqlite项目中使用的Bcrypt库

当我用他的例子如下:

它记录的很好,并且说它与密码匹配。但是,当我使用相同的密码从另一个方法调用此验证时,它总是显示“false”。有人能解释一下为什么会发生这种情况,我怎样才能解决它

String bcryptHashString = BCrypt.withDefaults().hashToString(12, password.toCharArray());
// $2a$12$US00g/uMhoSBm.HiuieBjeMtoN69SN.GE25fCpldebzkryUyopws6
    ...
BCrypt.Result result = BCrypt.verifyer().verify(password.toCharArray(), bcryptHashString);
// result.verified == true

您的问题是,每次调用以下行时都会生成一个新的salt:

String bcryptHashString=BCrypt.withDefaults().hashToString(12,password.tocharray());

您需要将其存储在某个位置,然后使用它来验证密码。通过使用新的salt,它将始终无法通过检查。

您也可以共享您自己的代码吗?我使用相同的示例,因此代码中没有任何差异。。。我在btn单击时调用verify方法