当我存储我的哈希密码时,它会以29
个字符输入,但当我哈希进行密码验证时,它是64
。第一个29
个字符匹配,但我需要延长存储的哈希值或缩短验证哈希值。我已经环顾网络,但似乎无法明确地知道如何做到这一点。
哪种选择(延长或缩短)更可取,我将如何做到这一点?
这是我的哈希存储:
$hash = hash('sha256', $password1);
function createSalt(){
$text = md5(uniqid(rand(), true));
return substr($text, 0, 3);
}
$salt = createSalt();
$password = hash('sha256', $salt . $hash);
这是我的密码验证和哈希回合(不匹配):
$userData = mysql_fetch_array($result, MYSQL_ASSOC);
$hash = hash('sha256', $userData['salt'] . hash('sha256', $password) );
if($hash != $userData['password']) // Incorrect password.
{ echo $userData['password'];
echo $hash;
die ('incorrect password : ' . mysql_error());
}
感谢您的帮助,我真诚地感激它!