尝试以良好的方式对用户密码进行哈希处理,并且我在某些网站上阅读了这些内容并且我想出了这个,但我想知道这是否是一个很好的方法来做到这一点?
我知道他们的其他方式更简单,但仅仅是为了好奇心。
function SanitizePassword($data) {
$count = 255;
$algorithm = "sha256";
$length = 1000;
$salt = mcrypt_create_iv(100, MCRYPT_DEV_URANDOM);
$hash = hash_pbkdf2($algorithm, $data, $salt, $length, $count);
$key = "stackoverflow";
$secret = hash_hmac($algorithm, $hash, $key);
echo $secret;
}
答案 0 :(得分:1)
不要重新发明轮子,有更好的方法可以做到这一点,特别是从安全角度来看。 你绝对应该使用php password hashing函数,默认内置php函数来管理密码哈希。
密码散列API提供了一个易于使用的crypt()包装器,可以以安全的方式轻松创建和管理密码。
您可以轻松加密密码
$hash = password_hash("securePasswordChangeIt", PASSWORD_BCRYPT);
然后你可以检查你的密码
if (password_verify('securePasswordChangeIt', $hash)) {
echo "Yeah";
}
无论如何,这只适用于PHP >= 5.5.0
但PHP >= 5.3.7