我正在使用sha1函数将密码存储在mysql DB中。
$passwordHash = sha1($password);
从谷歌我得到了这个
来自用户注册
sha1( sha1(users_plaintext_password)+random string )
去检查
server computes sha1( users_hashed_password_in_database +
$_SESSION['random_string'] )
if $_POST['password'] ==
sha1( users_hashed_password_in_database + $_SESSION['random_string'] )
我的问题是如何检查验证?这是正确的方法吗?使用一些随机字符串作为盐是否可以为我的密码提供更多保护?
最佳答案
我将按如下方式进行:
$seed = 'some random string';
$passwordHash = sha1($password.$seed);
然后对用户输入的数据执行相同的操作:
$pass = $_POST['password'];
if(sha1($pass.$seed) == $passwordHash){
//log user in
}
种子是个好主意,因为用户通常会选择容易猜到的密码。另一个优点是,如果有人设法侵入自己的方式,则可以通过更改种子来恢复站点的安全性。
关于php - 基本mysql sha1密码有效检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16177209/