2016-07-04 6 views
-3
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: 
     hs = hashlib.md5(new.encode()).hexdigest() 
     if hs == md: 
      print("MD5 HASH CRACKED : ", new) 

    print("Sorry :(Don't Cracked.") 

実行していません。 ワードリスト:MD5クラッカーが動作しないpython3

sadasda 
asdasda 
sdasd 
as 
da 
sdasd 
asd 
ahmet 
asdasf 
knknkjnbhb 
klasda 

出力:間違いをした

MD5 Hash: cdb5efc9c72196c1bd8b7a594b46b44f 
Wordlist: md.txt 
Sorry :(Don't Cracked. 

?私は見ることができません。しかし、ワードリストの場合のみ:

ahmet 

出力:

MD5 Hash: cdb5efc9c72196c1bd8b7a594b46b44f 
Wordlist: md.txt 
MD5 HASH CRACKED : ahmet 
Sorry :(Don't Cracked. 

答えて

2

ファイルからの行は、改行が含まれます。その改行は重要である:

>>> from hashlib import md5 
>>> md5(b'ahmet').hexdigest() 
'cdb5efc9c72196c1bd8b7a594b46b44f' 
>>> md5(b'ahmet\n').hexdigest() 
'ac5bd810592f14278b5e06fc20d88c23' 

は、最初の改行を削除します。

hs = hashlib.md5(new.rstrip('\n').encode()).hexdigest() 

ではなく、Pythonはちょうどバイナリモードでファイルを開いて、再びエンコードした後、あなたのファイルの行をデコードする必要があります。

with open(liste, 'rb') as ac: 
    for line in ac: 
     line = line.rstrip(b'\n') 
     hs = hashlib.md5(line).hexdigest() 
     if hs == md: 
      print("MD5 HASH CRACKED : ", line.decode('utf8')) 

私は印刷のために、あまりにもラインのデコードを追加しました:あなたは、直接ファイルをループ、ここfileobj.readlines()をコールする必要はありませんができます。

+0

が機能しません。 [http://i.imgur.com/DXiMnBN.jpg]、[http://i.imgur.com/n96oqQe.jpg] – Ahmet

+0

@Ahmet:あなたはまだエンコードしています。 '.encode()'呼び出しを削除してください。 –

+0

@Ahmet:実際には私のコードにもエラーがありました。私は 'bytes'オブジェクトを' bytes.rstrip() 'に渡すのを忘れていました。今修正されました。 –

関連する問題