Python MD5 Cracker“TypeError:支持所需缓冲API的对象”

时间:2016-07-03 23:17:15

标签: python python-3.x md5

我的代码如下:

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”字节?

1 个答案:

答案 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()