我正在将一个站点切换到rails.这是一个拥有5万多用户的大型网站.问题是,现有的密码哈希方法非常薄弱.我有两个选择:
1)切换到新算法,为每个人生成随机密码,然后通过电子邮件将这些密码发送给他们,并在之后立即要求更改
2)实现新算法但使用之前的旧算法然后散列结果.例如:
密码:abcdef =算法1 => xj31ndn =算法2 => $ 21aafadsada214
任何新的密码都需要通过原始算法(md5)然后如果有任何意义那么得到散列的结果?这有什么不利吗?
我正在将一个旧的PHP应用程序迁移到Laravel 5.2.该应用程序有一个巨大的用户表(约50K用户),密码都是MD5哈希.
显然这是不可接受的,而不是向所有50,000名用户发送电子邮件,要求他们重置密码,我想在后台将密码更改为bcrypt哈希.
为此,我想在其中创建一个old_password包含MD5哈希的列,然后每当用户登录时,我会根据MD5哈希(如果存在)检查密码,然后为下次创建一个新的bcrypt哈希,删除MD5哈希.
我已经看到了一些关于如何做到这一点的例子(比如这个和这个),但没有一个专门用于Laravel 5,也没有专门用于Laravel 5.2内置的auth.
有没有一种干净的方法来调整内置的auth来做到这一点,或者我最好在这种情况下编写自己的手动auth系统?