BCrypt中哪里使用了2x前缀?BCrypt 变体

2022-08-30 14:42:45

问题是同一个标题,在BCrypt中哪里使用$ 2x $?

以下场景是正确的吗?

我们有一组密码,当服务器PHP版本更早时,已经用前缀进行了哈希处理。现在我们将PHP升级到 ,现在我们必须首先用算法验证以前的密码,然后用前缀重新哈希密码。没错?$2a$5.3.75.3.7+$2x$$2y$


答案 1

BCrypt 变体

$1$

BCrypt是由OpenBSD人设计的。它被设计为散列密码以存储在OpenBSD密码文件中。散列密码与前缀一起存储,以标识所使用的算法。BCrypt 得到了前缀 。$2$

这与其他算法前缀相反:

  • $1$: MD5
  • $3$: NTHASH
  • $5$: SHA-256
  • $6$: SHA-512
  • $7$:地下室

$2a$

最初的 BCrypt 规范没有定义如何处理非 ASCII 字符,也没有定义如何处理空终止符。规范已修订,以指定在散列字符串时:

  • 字符串必须采用 UTF-8 编码
  • 必须包含空终止符

$2x$, $2y$ (2011年6月)

crypt_blowfish 中发现了一个错误


答案 2

推荐