java - 在 Java 中保护用户密码安全?

标签 java security passwords hash

我已经到了需要选择一种方法来安全地将用户密码保存在数据库中并能够在用户登录网站时检查它们是否匹配的时候。

我目前正在使用 Spring 2.5,但正在慢慢升级到 Spring 3。你会建议我什么来保证密码安全?我知道这个问题已经在这里和那里以类似的形式得到了回答,但我希望看到一些关于如何做到这一点的准确的、最新的答案,这也可以防止今天的密码黑客攻击技术。

用 salt 散列密码的最合适方法是什么?我的意思是什么算法可以更好地使用(如果有的话)?我应该改用 bcrypt 吗?jBCrypt 是一个很好的库吗?有没有更好的方法来保护密码?使用 Jasypt 怎么样?您使用什么技术来安全地存储用户密码?

编辑:虽然我没有得到非常有趣和详细的答案,但我还是选择了 bcrypt/jBCrypt,因为它似乎是最好的选择。欢迎讨论。

最佳答案

是的,你应该使用 bcrypt/jBCrypt。 bcrypt 专门设计为速度较慢,因此破解密码需要花费不可行的时间。

参见 this blog post除了使用 bcrypt 进行密码散列之外,您还可以使用额外的措施。

关于java - 在 Java 中保护用户密码安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403194/

相关文章:

java - 无法在多模块 Gradle 应用程序中 Autowiring HttpServletRequest

java - 这是在 MainActivity 中初始化 SQLite 的正确方法吗?

java - 明显的括号不好吗?

ajax - 如何在 mvc 的 ajax 操作链接中包含 AntiForgeryToken?

security - 如何演示CSRF攻击

java - 如何使用 Java Mail API 验证电子邮件和密码?

php - 这是将密码存储在数据库中并激活用户帐户的正确方法吗?

java - 使用准备好的语句进行 JDBC 更新

c# - ASP.NET MVC - 如何安全地保留用户的密码以进行 SQL Server 身份验证?

security - 从 pkcs7 (.p7b) 文件中提取私钥和证书