我需要用冰箱储存盐吗?

2022-08-31 06:21:15

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");

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


答案 1

盐被合并到哈希中(以base64样式的格式编码)。

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


答案 2

推荐