php - 将用户密码从加盐 SHA1 升级到 bcrypt

标签 php codeigniter laravel sha1 bcrypt

我受雇在新的 PHP 5.3 服务器上使用 Laravel 4 重建基于 CodeIgniter 1.7.3(在 PHP 4.2 服务器上)构建的活跃应用程序。

该系统有大约 500 名用户,他们的密码使用加盐 SHA-1 哈希加密。我想使用 bcrypt 来提高应用程序的安全性以及与 Laravel 4 的身份验证系统集成。

您建议如何迁移这些用户密码?

最佳答案

散列的全部意义在于您无法恢复原始密码。

你有三个选择:

  • 存储 SHA1 散列的 bcrypt 散列,然后在每次登录时对密码进行 bcrypt 之前对每个密码进行 SHA1 散列。
    这可能不是一个好主意

  • 在用户下次登录时升级每个散列。(以便您拥有要散列的纯文本)
    这是最佳选择,但您需要保留 SHA1 哈希值和转换代码,直到每个用户都登录为止

  • 将每个用户重置为随机 bcrypted 密码,并强制他们全部使用忘记密码来更改密码。
    你可能不想这样做

关于php - 将用户密码从加盐 SHA1 升级到 bcrypt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161828/

相关文章:

php - 通过 AJAX 将数据从 PHP 类传递到 PHPExcel

php - 这个符号.*是什么?在 PHP 中表示(HTML 解析)

php - 在执行员工搜索之前我收到以下错误

mysql - codeigniter sql表转换

php - PHP 中的数据库错误处理

javascript - 当我回显 id 但当我回显名称时,带有 laravel 的 ajax 返回未定义

php - 在 codeigniter 中编辑表单的独特验证

php - 如何使用 PHP 脚本唤醒 PC?

php - 如何在 Laravel 模型中将 String 转换为 int

javascript - Angular 两次渲染主视图而不是加载正确的模板