抱歉,如果已经有人提出了同样的问题,请原谅我的重复。问题是,我正在尝试将我的旧版PHP应用程序升级到更安全的密码哈希值。目前我使用MD5,但我想使用new password_hash()函数来使用bycript。我想到了一种方法,但我不知道它是否真的安全。这是一个简化的代码:
基本上,我想做的是在初始检查失败但MD5检查成功时重新生成密码。但是,如果有人输入了错误的密码并且:
if (password_verify($input_password, $user->password hash) === false) {
if (md5($input_password) === $user->password_hash) {
user->password_hash = password_hash(
$input_password,
$currentHashAlgoritm,
$currentHashOptions
);
$user->save;
} else {
throw new Exception('Invalid Password');
}
}
//Save login status to session
基本上,我想做的是在初始检查失败但MD5检查成功时重新生成密码。但是,如果有人输入了错误的密码并且:
md5($bad_password) == $user->password_hash (hashed by bycript)
用户输入错误密码的可能性非常小。
这是唯一的方式吗?还是有其他更好的方法?感谢所有人。对于糟糕的英语,我很抱歉。