web-dev-qa-db-fra.com

Python MD5 Cracker "TypeError: objet supportant l'API tampon requis"

Mon code ressemble à ceci:

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.")

Mais, j'obtiens cette erreur lorsque je l'exécute:

    hs = hashlib.md5(new).hexdigest()
TypeError: object supporting the buffer API required

Comment résoudre ce problème? "b" octets?

7
Ahmet

Quoi qu'il en soit, en appelant split() sur new vous créez un list objet et non un str; les listes ne prennent pas en charge l'API Buffer . Peut-être que vous cherchiez strip() afin de supprimer tout espace blanc à la fin/en tête?

Quoi qu'il en soit, le str résultant de new.strip() (ou split() si vous sélectionnez un élément de la liste résultante) doit être encodé puisque les objets unicode doivent être encodés avant de les alimenter dans un initialiseur d'algorithmes de hachage .

new = new.strip() # or new.split()[index]
hs = hashlib.md5(new.encode()).hexdigest()