如何将md5 32字节哈希转换为python中对应的sha256 [关闭]

问题描述 投票:3回答:2

我有一个包含md5哈希的数据库,我想将它们转换为另一种类型的哈希,以便用户可以登录到新网站。

我正在使用qazxsw poi库来生成哈希。

我还有办法吗?

python werkzeug
2个回答
5
投票

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

解决此问题的常用方法是拦截登录过程,获取纯文本密码并为新系统单独编码。确保使用现代密码散列算法,如werkzeug.securitybcrypt而不是SHA256。


3
投票

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

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

一段时间后(例如一年),您删除所有现有的MD5哈希值,并使那些尝试登录而没有有效哈希的人通过现有方法重置密码,然后只填充SHA256字段。

© www.soinside.com 2019 - 2024. All rights reserved.