小编典典

我需要用 bcrypt 存储盐吗?

all

bCrypt 的
javadoc
包含如何加密密码的代码:

String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt());

要检查明文密码是否与之前经过哈希处理的密码匹配,请使用 checkpw 方法:

if (BCrypt.checkpw(candidate_password, stored_hash))
    System.out.println("It matches");
else
    System.out.println("It does not match");

这些代码片段暗示我随机生成的盐被扔掉了。是这种情况,还是这只是一个误导性的代码片段?


阅读 58

收藏
2022-07-09

共1个答案

小编典典

salt 被合并到散列中(以 base64 样式格式编码)。

例如,在传统的 Unix 密码中,salt 存储为密码的前两个字符。其余字符代表哈希值。检查器函数知道这一点,并将散列分开以取出盐。

2022-07-09