Python MD5 Cracker "TypeError: object supporting the buffer API required"

My code looks as follows:

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

But, I get this error when I run it:

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

How do I solve this? "b" bytes?

1 Answer

Whatever the case, by calling split() on new you create a list object and not an str; lists do not support the Buffer API. Maybe you were looking for strip() in order to remove any trailing/leading white space?

Either way, the resulting str from new.strip() (or split() if you select an element of the resulting list) should be encoded since unicode objects must be encoded before feeding it to a hashing algorithms' initializer.

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like