Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 480
Ahmet Avatar asked Jul 03 '16 23:07

Ahmet


1 Answers

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()
like image 57
Dimitris Fasarakis Hilliard Avatar answered Oct 19 '22 10:10

Dimitris Fasarakis Hilliard