当前位置:  开发笔记 > 编程语言 > 正文

我需要用bcrypt储存盐吗?

如何解决《我需要用bcrypt储存盐吗?》经验,为你挑选了1个好方法。

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> Greg Hewgill..:

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

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


盐被包含在密码中.所以你不必保存盐.
@Adam - 由于盐是随机生成的,这意味着您不需要有一种方法来关联数据库中的两件事.
谢谢 - 在Python文档中也没有提到过.
感谢那.我希望他们在javadoc :)中说(我已经查看了源代码并确认了 - 但我之前不知道我在寻找什么)
推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有