我需要用bcrypt储存盐吗?

时间:2008-11-10 04:14:55

标签: java encryption passwords salt bcrypt

bCrypt's 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");

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

1 个答案:

答案 0 :(得分:209)

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

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