java - 比较两个相同来源的 BCRYPTed 密码

标签 java bcrypt

我正在使用 BCRYPT 对数据库上的用户密码进行哈希处理,并且由于来自客户端的连接可能并不总是安全的,因此我想避免在身份验证时将其以纯文本形式发送到服务器。我们正在使用 Java/Spring 的 BCRYPT 实现。

  • 有没有办法比较同源的两个哈希值?
  • 如果否(可能是这种情况):实现类似安全级别的最佳解决方法是什么。

感谢您的建议。

最佳答案

你不能。

BCrypt 是一种单向函数。您可以运行 bcrypt("password") 两次,两次都会得到不同的结果,并且无法知道这两个哈希值是否用于相同的密码。

这是一项安全功能,而不是错误。

您应该专注于通过实现 SSL 和可能的 HSTS 来保护通信 channel 的安全,而不是尝试这种方法。

关于java - 比较两个相同来源的 BCRYPTed 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25866302/

相关文章:

javascript - 用户登录时发送 header 后无法设置 header

mysql - Spring Security - Bcrypt 与 CAS、MySQL、SearchModeSearchDatabaseAuthenticationHandler 和 BasicDataSource

java - BCrypt:有没有办法在数据库中插入已经加密的密码?

python - Flask bcrypt.check_password_hash() 总是返回 False,无法缩小我的错误范围

ruby-on-rails - 是否可以单独访问bcrypt盐?

java - 打开 LED

java - 如何正确同步/锁定变量?

java - 加权随机数 : boundary case

java - 如何将 fasterxml.jackson.ObjectMapper @Inject 到 JAX-RS 资源中?

java - 如何将基类中的字段很好地复制到派生类中?