我的代码如下:
md = input("MD5 Hash: ")
if len(md) != 32:
print("Don't MD5 Hash.")
else:
liste = input("Wordlist: ")
ac = open(liste).readlines()
for new in ac:
new = new.split()
hs = hashlib.md5(new).hexdigest()
if hs == md:
print("MD5 HASH CRACKED : ",new)
else:
print("Sorry :( Don't Cracked.")
但是,当我运行它时出现此错误:
hs = hashlib.md5(new).hexdigest()
TypeError: object supporting the buffer API required
我该如何解决这个问题? “b”字节?
答案 0 :(得分:1)
无论如何,通过在new
上致电split()
,您可以创建list
个对象,而不是str
;列表不支持the Buffer API。也许您正在寻找strip()
以删除任何尾随/前导空格?
无论哪种方式,str
生成的new.strip()
(如果您选择结果列表的元素,则为split()
)应编码,因为unicode对象必须是encoded before feeding it to a hashing algorithms' initializer。
new = new.strip() # or new.split()[index]
hs = hashlib.md5(new.encode()).hexdigest()