-1

我使用 Bcrypt 作为 Spring 安全项目的密码哈希算法。

当我尝试使用在线 Bcrypt 计算器时,它会为相同的纯文本密码生成不同的哈希值。这是由于我理解的盐渍。

但是对于真正的 Spring Security 应用程序中的身份验证,应用程序读取用户输入的密码并生成 bcrypt 哈希,然后将其与存储在数据库中的 bcrypt 哈希进行比较。如果匹配,则对用户进行身份验证。

如果 bcrypt 每次生成不同的值,它如何匹配。?

4

1 回答 1

0

散列方法生成一个包含散列本身和盐的字符串。

检查方法读取存储在字符串中的散列,并使用该散列对明文密码进行散列(与第一次散列密码时使用的相同)。

有关更详细的描述,请参见维基百科

于 2019-05-05T13:09:32.600 回答