首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将用户密码从盐渍SHA1升级到bcrypt

将用户密码从盐渍SHA1升级到bcrypt
EN

Stack Overflow用户
提问于 2013-10-03 14:26:19
回答 3查看 2.5K关注 0票数 8

我受雇于在新的PHP5.3服务器上使用Laravel 4重新构建一个构建在CodeIgniter 1.7.3 (PHP4.2服务器上)上的活跃使用的应用程序。

该系统有大约500个用户,其密码是用咸的SHA-1哈希加密的.我想使用bcrypt来增加应用程序的安全性,并与Laravel 4的认证系统集成。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-03 14:28:07

散列的全部要点是您无法恢复原始密码。

你有三个选择:

  • 存储SHA1散列的bcrypt散列,然后SHA1在每次登录前对每个密码进行散列。 这可能不是个好主意。
  • 下次用户登录时升级每个哈希。(这样就有了要散列的纯文本) 这是最好的选择,但您需要保留SHA1散列和转换代码,直到每个用户登录为止。
  • 将每个用户重置为一个随机的bcrypted密码,并强迫他们使用忘记的密码将其更改回来。 你可能不想这么做
票数 11
EN

Stack Overflow用户

发布于 2013-10-03 14:30:59

  • 向数据库中添加一个列,该列告诉系统使用了哪种散列算法。
  • 登录时,检查凭据是否正常。
  • 如果他们使用的是旧的,登录是成功的- bcrypt他们输入的密码,并更新他们的密码和算法在数据库中。
票数 7
EN

Stack Overflow用户

发布于 2013-10-03 14:34:45

您可以为每个用户创建一个随机密码,并发送一个通知电子邮件给每个人的新密码。但是,如果用户没有看到电子邮件,这将导致混乱。

我建议您为bcrypt值添加另一个db字段,然后在更改后用户首次登录时创建一个条目。您可以使用单独的字段或删除旧的哈希来跟踪。

当您的活动用户已经迁移,可以随意使用随机密码方法为您的其余的用户名完成迁移。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19161828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档