使用现有用户帐户更改加密方法

时间:2013-06-06 18:12:23

标签: php cakephp bcrypt

我最近学习了很多cakePHP,我准备将我的实时网站基础设施转移到cakePHP。

问题是在我的实时网站上,我使用的bcrypt加密看起来像这样

$str = substr($username, 0, 3);
$salt = '$2a$12$soPld43fs5lo09lMsjU'.$str.'$';
$crypter_pass = crypt($password, $salt);

我会在数据库中保存 $ salt $ crypter_pass

现在我打算将bcrypt与cakePHP一起使用,但我真的不知道如何“合并”这两种方法,为用户提供平滑过渡。

我想到的一种方法只是使用“用户名”登录。无需密码。当用户登录时,他会立即被要求填写新的密码。

这种方法可行,因为我只有大约200名用户,因此其他人无法登录并破坏其他人的帐户。

虽然解决方案很棒,但我更需要找到正确的“术语”,我应该谷歌知道如何做到这一点。或者我需要学习的具体方法。

谢谢!

1 个答案:

答案 0 :(得分:1)

检查这些链接,CakePHP已经支持不同的散列方法和bcrypt。

如果您自己的哈希方法不同,最好的方法是使用旧的哈希方法验证针对保留哈希的登录哈希值。如果它真的使用普通密码并使用新的哈希方法对其进行散列并保存它并且您已经“动态”迁移它。如果旧的哈希检查失败,则检查第二个新的哈希方法。您可以将用户标记为已迁移,并在完成所有操作后停止使用这两项检查。