Mat*_*nig 1 java hash android salt bcrypt
在上学的时候,我被要求使用bcrypt正确存储密码(隐藏在数据库中)。比较它们时,该方法始终返回false。我的代码如下所示:
寄存器:
String username = editTextUsername.getText().toString();
String password = editTextPassword.getText().toString();
String hashedPW = BCrypt.hashpw(password, BCrypt.gensalt());
User user = new User(username, hashedPW);
user.save();
Run Code Online (Sandbox Code Playgroud)
登录:
String username = editTextUsername.getText().toString();
String enteredPassword = editTextPassword.getText().toString();
String hashedPW = BCrypt.hashpw(enteredPassword, BCrypt.gensalt());
User u = usercontroller.getUser(username); //gets user object
String password = u.getPassword;
BCrypt.checkpw(password, hashedPW); //always returns false
Run Code Online (Sandbox Code Playgroud)
我希望有BCrypt专业人士可以为我提供帮助。先感谢您!
更改
BCrypt.checkpw(password, hashedPW);
Run Code Online (Sandbox Code Playgroud)
至
BCrypt.checkpw(enteredPassword, password);
Run Code Online (Sandbox Code Playgroud)
然后它将正确评估。
密码是否添加了salt并生成了哈希都没关系。
将相同密码的哈希值与不同盐的哈希值对照生成密码的哈希值评估为true时。
哈希是一种算法,这意味着我们无法通过哈希来重新计算密码。我们只能使用哈希算法将密码与密码的哈希值进行比较。哈希算法通常用于生成哈希值,并将其与生成的哈希值进行比较。我们使用哈希安全地存储密码
| 归档时间: |
|
| 查看次数: |
2737 次 |
| 最近记录: |