密码历史记录,以防止用户一次又一次地保留相同的密码

时间:2015-04-01 20:53:30

标签: laravel laravel-5 bcrypt

我正在使用PHP Laravel开发一个应用程序。它使用bcrypt加密来存储密码。我想在用户更改密码时保留哈希的历史记录。通过这样做,我想在某些情况下阻止用户输入以前的密码。保持哈希历史是否安全?

我正在使用内置函数。我对这种加密知之甚少。根据我的观察,如果用户更改了密码并保持与前一个密码相同,则哈希值会有所不同。如何阻止他保留以前历史记录中的相同密码?是否可以在使用bcrypt加密时使用?

2 个答案:

答案 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软件包

您可以安装并享受它。 它为您提供了事件侦听器,迁移,验证规则等。它还可以配置为检查历史记录中的某个深度。