我正在使用PHP Laravel开发一个应用程序。它使用bcrypt加密来存储密码。我想在用户更改密码时保留哈希的历史记录。通过这样做,我想在某些情况下阻止用户输入以前的密码。保持哈希历史是否安全?
我正在使用内置函数。我对这种加密知之甚少。根据我的观察,如果用户更改了密码并保持与前一个密码相同,则哈希值会有所不同。如何阻止他保留以前历史记录中的相同密码?是否可以在使用bcrypt加密时使用?
答案 0 :(得分:1)
是的,完全省钱。您可以使用Hash::check()
将新密码与旧版哈希进行比较。例如像这样($hashes
是一个旧哈希数组)
$newPassword = 'secret';
foreach($hashes as $hash){
if(Hash::check($newPassword, $hash)){
exit('Sorry can\'t use the same password twice');
}
}
答案 1 :(得分:0)
有一个名为laravel-password-history的laravel软件包
您可以安装并享受它。 它为您提供了事件侦听器,迁移,验证规则等。它还可以配置为检查历史记录中的某个深度。