【发布时间】:2019-02-22 13:40:06
【问题描述】:
我有一个包含 md5 哈希的数据库,我想将它们转换为另一种类型的哈希,以便用户可以登录到新网站。
我正在使用werkzeug.security 库来生成哈希。
我有什么办法吗??
【问题讨论】:
-
没有办法,md5和sha256都是单向哈希。让您的用户更改密码。
我有一个包含 md5 哈希的数据库,我想将它们转换为另一种类型的哈希,以便用户可以登录到新网站。
我正在使用werkzeug.security 库来生成哈希。
我有什么办法吗??
【问题讨论】:
【讨论】:
没有。哈希是不可逆的,所以你不能直接这样做。
解决这个问题的方法是,当老用户登录时,根据 md5 哈希验证他们的密码,如果匹配,则从纯文本密码创建 SHA256 哈希,在数据库中设置新的 SHA256 哈希(作为单独的字段或在哈希本身前面使用哈希类型标识符),然后删除 MD5 哈希值。
一段时间后(例如一年),您删除了所有现有的 MD5 哈希值,并让试图在没有有效哈希值的情况下登录的人通过现有方式重置其密码,然后仅填充 SHA256 字段。
【讨论】: