因此,任何人都有我存储用户的表,现在使用SHA1保存密码,我想升级密码以使用bcrypt。
这是最好的方法吗?
创建一个脚本,该脚本占用表中的每个用户并使用bcrypt密码更新表格?我更感兴趣的是如何将SHA1传递转换为bcrypt(php)
答案 0 :(得分:4)
您需要密码的明文版本才能对其进行加密,而单向散列的要点是您无法对其进行反转。现在,SHA1是一个弱哈希,所以你可能会强制它,但你可能最终得到一个碰撞并找到不正确的合适输入(并且它将需要大量的处理能力)。
重写您的逻辑,以便当有人登录时,如果您有密码,请检查加密的密码,如果您没有,则检查sha1密码。
提示用户在登录时更改密码,但仍有密码sha1。
考虑一段时间后从提示移动到坚持。
考虑强制重置密码,每个人仍然使用sha1密码并发送密码重置电子邮件。当你这样做时,请确保你看起来不像是网络钓鱼攻击!