私のコードは次のようになります:
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」バイト?
どちらの場合でも、new
で split()
を呼び出すことにより、list
ではなくstr
オブジェクトを作成します。リストは The Buffer API をサポートしていません。たぶん strip()
を探して、末尾/先頭の空白を削除しましたか?
どちらの方法でも、new.strip()
から得られるstr
(結果のリストの要素を選択した場合はsplit()
)はencodedになるはずですオブジェクトは ハッシュアルゴリズムの初期化子に渡す前にエンコードする である必要があります。
new = new.strip() # or new.split()[index]
hs = hashlib.md5(new.encode()).hexdigest()