我想建立一个系统,允许我将加密密码(哈希密码)从一个系统迁移到另一个系统。我该怎么做?
比如说 2 个月后,我发现了一种加密方法,其性能提高了 10 倍,并且当前的哈希函数已被毫无疑问地证明是完全脆弱的。我将如何将用户密码从一种哈希类型迁移到另一种类型(更好的哈希类型)。
You can slowly使用以下技术从一种方法迁移到另一种方法。我不能保证它的质量,所以请持保留态度(不是双关语)。
例如,考虑下表,该表存储用户:
id name password salt hashmethod
--------------------------------------------
1 alice ABC52... ABD... md5
2 bob 28DHF... Z+d... sha1
...
说你的outdatedhash方法是md5,你想用更安全的替换它sha1
, 这是你做的:
- A user logs in, you hash its password with the new method (sha1) and salt.
- a) 如果找到匹配项(相应的用户名和密码以及方法 sha1),则记录该用户。
- b) If a match is not found:
- 1) You hash with the old method (md5) and salt.
- a) 如果找到匹配项(对应的用户名和密码以及方法 md5),则使用以下命令对密码进行哈希处理new方法(sha1)和盐,并相应地更新数据库。用户已登录。
- b) 如果匹配是not发现凭据无效并且用户未登录。
此迁移可能需要很长时间,因此为了加快速度,您应该向用户发送电子邮件,要求他们登录或更改密码。
希望能帮助到你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)