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?
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()