0

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

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

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

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

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

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

这种方法可以工作,因为我只有大约 200 个用户,所以其他人登录并破坏其他人的帐户的可能性不大。

虽然解决方案会很棒,但我更多的是寻找正确的“术语”,我应该用谷歌来弄清楚如何做到这一点。或者我需要学习的具体方法。

谢谢!

4

1 回答 1

1

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

如果您自己的散列方法不同,最好的方法是使用旧的散列方法验证登录时的散列与保留散列。如果它是真实的,请使用普通密码并使用新的哈希方法对其进行哈希处理并保存它,并且您已经“即时”迁移了它。如果旧的哈希检查未通过第二次检查,则使用新的哈希方法。您可以将您的用户标记为已迁移,并在他们全部完成后停止使用这两项检查。

于 2013-06-06T18:57:35.487 回答