java pbkdf2盐渍哈希密码验证
我有一个用户数据库,里面有咸哈希密码和他们登录的Java应用程序,这样做更好吗
SELECT COUNT(*) FROM `--database--` WHERE `username`= ? AND `passwordHash`= ?;
然后让他们登录,如果计数是1,或者
SELECT `passwordHash` FROM `--database--` WHERE `username`= ?;
。。。然后在用户应用程序上进行本地验证
哪个更安全?-我通常会用第一种方法,但我一直看到第二种方法在这里和那里出现
作为参考,我使用的系统:https://codereview.stackexchange.com/questions/55900/password-hashing-method-in-java
# 1 楼答案
在我看来,数据库也会有salt,应用程序需要它来计算散列。因此你应该使用
并在应用程序级别执行比较
这种责任划分将在以后构建身份验证机制时派上用场,例如,如果添加lockout机制:
如果您没有使用特定于用户的salt或锁定,则可能存在安全问题。请参阅有关此主题的oWASP guidance