好吧,让这个哈希生成器按照我想要的方式工作,除了它没有正确生成哈希。我已经检查了从我的脚本生成的一些哈希值到其他网站上找到的哈希值并且它们不匹配。它似乎是所有哈希的一个问题所以我认为它必须对hasher函数和data.encode(“utf8”)做一些事情。
答案 0 :(得分:2)
hash.update(arg)
使用对象arg更新哈希对象 必须可解释为字节缓冲区。重复通话 等同于单个调用与所有的串联 参数:
m.update(a); m.update(b)
相当于m.update(a+b)
。
所以你将所有组合连接在一起。
相反,您每次调用hasher
时都需要创建一个新的Hash对象:
Hashes = {
'MD5': hashlib.md5,
'SHA1': hashlib.sha1,
'SHA224': hashlib.sha224,
'SHA256': hashlib.sha256,
'SHA384': hashlib.sha384,
'SHA512': hashlib.sha512
}
...
return Hash(data.encode("utf8")).hexdigest()