我正在尝试构建一个用于练习的 md5 破解器。在我继续之前,这里是我的代码:
def offline_wordlist_attack(list_path):
with fileinput.input(files=(list_path)) as wordlist:
for word in wordlist:
md5_hash_object = hashlib.md5() # constructing an md5 hash object
md5_hash_object.update(binascii.a2b_uu(word))
word_digest = md5_hash_object.digest() # performing the md5 digestion of the word
print(word_digest) # Debug
我的问题是md5_hash_object.update(binascii.a2b_uu(word))
. hashlib Python 3 文档指出传递给的字符串应该update()
是二进制表示。该文档m.update(b"Nobody inspects")
用作示例。在我的代码中,我不能简单地附加b
在变量前面word
。所以我尝试使用binascii库,但该库也在文档中注明:
笔记
编码和解码函数不接受 Unicode 字符串。只能处理 bytestring 和 bytearray 对象。
有人可以帮我解决这个问题吗?它对我越来越好。