我被告知不要创建自己的盐和哈希方法。由于java中已经存在的那些要优越得多。经过一番研究后,我不太明白以下内容;
- 创建哈希和验证哈希有什么区别?
- 如果盐每次都是随机的,那么除了用户名之外,是否还需要 token 来验证密码?
如何以现代方式为 Java Web 应用程序生成和验证散列和加盐密码?
最佳答案
这是使用哈希存储密码的常用方法。
What is the difference between creating the hash, and verifying it?
- 获取纯文本密码,添加随机盐,然后将盐和哈希密码存储在数据库中。
- 当用户想要登录时,您会获取他们提交的密码,添加其帐户信息中的随机盐,对其进行哈希处理,然后查看它是否等于存储的哈希密码及其帐户信息。
If the salt is random every time, don't you need a token to verify passwords other than the username?
如果您看到#2,则 session 可能需要 token ,但身份验证不需要 token (检查用户是否合法。)
关于java - Java Web 应用程序的哈希 + salt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50464969/