Python 中的 MD5 哈希

我得到了一个包含用户和密码的文件,格式为:$id$salt$hashed。


其中 ID 代表加密类型,id=1 代表 FreeBSD 风格的 MD5。


有一个例子,我知道密码=“alice”


jsmith: $1$kDHTx$WKRXXT1P7UtjvU7CQ9eWs/:10063:0:99999:7:::

所以我在 Python 中做了这个来检查


import hashlib


passw='alice'

salt='kDHTx'


hashed= hashlib.md5(salt+passw).hexdigest()


print('What i get is: '+hashed)

print('What i should: '+'WKRXXT1P7UtjvU7CQ9eWs')

但我什至没有正确获得格式:


What i get is: ba359e6dd36371c4dc5c187aac11e0d8

What i should: WKRXXT1P7UtjvU7CQ9eWs

我做错了什么?甚至从一开始就理解错误?


一只名叫tom的猫
浏览 200回答 1
1回答

catspeake

您需要使用该crypt库而不是hashlib.>>> import crypt>>> crypt.crypt('alice', crypt.METHOD_MD5)$1$tlyP8ine$I9F3AiUCIgOjREqbx6WUg0当您传入 .salt 时,该函数会生成盐crypt.METHOD_MD5。要重新创建现有哈希,您可以将其作为第二个参数传入:>>> crypt.crypt('alice', '$1$kDHTx$WKRXXT1P7UtjvU7CQ9eWs/')$1$kDHTx$WKRXXT1P7UtjvU7CQ9eWs/
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python