Laravel 5 - 文本到加密密码

Posted

技术标签:

【中文标题】Laravel 5 - 文本到加密密码【英文标题】:Laravel 5 - Text to Encrypted Password 【发布时间】:2019-01-24 15:23:12 【问题描述】:

我有一个网站,密码以纯文本形式存储。现在我转换为 Laravel 5,我想将所有这些用户的普通密码转换为来自 phpMyAdmin 的 Laravel 加密密码。因此,我需要一条 SQL 语句将密码列中的所有密码转换为 Laravel 加密密码。

如果无法从 PhpMyAdmin 执行此操作,请说明另一种选择。

提前致谢。

【问题讨论】:

【参考方案1】:

你不加密密码,你散列它们。不会有一条 SQL 语句来执行应用程序级别的哈希、遍历所有用户并在 Laravel 中更新他们的密码:

User::all()->each(function($user) 
   $user->update(['password' => bcrypt($user->password)]);
);

注意:验证您的密码列的长度是否可以存储完整的哈希值。 (我建议只使用 varchar 255)

【讨论】:

OP 还请注意,由于现有密码是纯文本,因此应将其视为已泄露。进行此转换后,您应该强制所有用户更改密码。 普通密码已更改,但我无法登录。正如我在用户更新密码时看到的文件,然后使用Hash::make($new_password) 并在控制器顶部放置use Hash; Hash::make 与 bcrypt() 相同。

以上是关于Laravel 5 - 文本到加密密码的主要内容,如果未能解决你的问题,请参考以下文章

Laravel笔记-用户登录时密码进行RSA加密(提高系统安全性)

我想自学laraver,请诸位前辈给一些建议,谢谢

Laravel - 如何在忘记密码中添加自定义字段

Laravel 5.6和TCPDF公钥加密

将数组从 AuthController 传递到 Laravel 5 中的登录视图

laravel框架总结 -- blade模板引擎