我正在使用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/

10-13 23:27