【发布时间】:2011-09-18 04:38:17
【问题描述】:
当我需要选择一种方法来安全地将用户密码保存在数据库中并能够在用户登录网站时检查它们是否匹配时,我已经到了这样的地步。
我目前正在使用 Spring 2.5,但正在慢慢升级到 Spring 3。你会建议我什么来保证密码的安全?我知道这个问题已经在这里和那里以类似的形式得到了回答,但我希望看到一些关于如何做到这一点的准确、最新答案,这也可以防止今天的密码黑客攻击技术。
用盐散列密码的最合适方法是什么?我的意思是如果有的话最好使用什么算法?我应该改用bcrypt,而jBCrypt 是一个很好的库吗?有没有更好的方法来保护密码?使用Jasypt 怎么样?您使用什么技术来安全地存储用户密码?
编辑:尽管我没有得到非常有趣和详细的答案,但我还是选择了 bcrypt/jBCrypt,因为它似乎是最好的选择。欢迎讨论。
【问题讨论】:
-
这篇文章有一些关于用盐哈希密码的重要信息:owasp.org/index.php/Hashing_Java
-
如果
bcrypt建议不要使用盐的密码散列,你不觉得它已经过时了吗? -
我不确定,现在看 jbcrypt 看起来不是很成熟。我让其他人来回答。
-
@Richards:不,使用盐的散列并不是一种过时的技术。整个想法是您在密码+盐上使用单向功能。如果使用安全散列函数,这使得很难找到原始密码。并且永远不要将密码存储为明文!
-
@netrom,是的,很明显我不能将它们存储为纯文本! ;P 我想通过一个例子看到一些好的答案。 ://
标签: java security passwords hash