我正在使用 BCRYPT 对数据库上的用户密码进行哈希处理,并且由于来自客户端的连接可能并不总是安全的,因此我想避免在身份验证时将其以纯文本形式发送到服务器。我们正在使用 Java/Spring 的 BCRYPT 实现。
- 有没有办法比较同源的两个哈希值?
- 如果否(可能是这种情况):实现类似安全级别的最佳解决方法是什么。
感谢您的建议。
最佳答案
你不能。
BCrypt 是一种单向函数。您可以运行 bcrypt("password")
两次,两次都会得到不同的结果,并且无法知道这两个哈希值是否用于相同的密码。
这是一项安全功能,而不是错误。
您应该专注于通过实现 SSL 和可能的 HSTS 来保护通信 channel 的安全,而不是尝试这种方法。
关于java - 比较两个相同来源的 BCRYPTed 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25866302/