将纯密码转换为Laravel加密密码

时间:2017-03-04 16:48:51

标签: mysql laravel authentication encryption laravel-5.4

我有一个名为“users”的表格,其中包含我的用户的用户名和密码。

密码是纯文本。现在我用Laravel 5.4和Auth创建了一个新站点。

因此,如果用户想要登录我的网站,我需要将我的密码纯文本转换为加密的新密码。

如何从我的Auth获取“salt”以及从我的普通密码和“salt”获取加密密码的工具。原因是因为我在users表中创建了一个新列,所以我想在那里放置使用查询加密的密码。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

Laravel使用bcrypt()来散列密码。假设您在users.password中存储了纯文本密码,则只需循环遍历bcrpyt()

\App\User::get()->each(function ($user) {
    $user->password = bcrypt($user->password);
    $user->save();
});

上面的代码将使用散列值覆盖users.password中存储的纯文本值。执行此操作后,用户应该能够使用Laravel的auth登录。此外,您将无法检索用户的纯文本密码。这很好,并且是散列密码的重点。