为了账号安全,请及时绑定邮箱和手机立即绑定

如何在python中将md5 32字节哈希转换为相应的sha256

如何在python中将md5 32字节哈希转换为相应的sha256

狐的传说 2021-11-16 16:11:59
我有一个包含 md5 哈希的数据库,我想将它们转换为另一种类型的哈希,以便用户可以登录到新网站。我正在使用该werkzeug.security库来生成哈希。我有什么办法可以做到吗??
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

MD5 是一种单向散列函数,无法将其反转,因此可以将其重新编码为另一种类型的散列。

这个问题通常的处理方法是拦截登录过程,获取明文密码,并为新系统单独编码。确保您使用的是现代密码散列算法,例如bcryptscrypt,而不是 SHA256。


查看完整回答
反对 回复 2021-11-16
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

不。哈希是不可逆的,所以你不能直接这样做。

解决这个问题的方法是,当旧用户登录时,您根据 md5 哈希验证他们的密码,如果匹配,则从纯文本密码创建 SHA256 哈希,在数据库中设置新的 SHA256 哈希(或者作为单独的字段或通过在散列本身前面使用散列类型标识符),然后删除 MD5 散列值。

一段时间后(例如一年),您删除所有现有的 MD5 哈希值,并使尝试在没有有效哈希值的情况下登录的人通过现有方式重置其密码,然后仅填充 SHA256 字段。


查看完整回答
反对 回复 2021-11-16
  • 2 回答
  • 0 关注
  • 274 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信