2016-07-04 1 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() 

보다는

파이썬 그냥 바이너리 모드로 파일을 열고 다시 인코딩 한 후, 파일 라인을 디코딩합니다. 직접, 필요 여기 fileobj.readlines()를 파일을 통해 루프를 호출하지 할 수 있습니다 라인의

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')) 

내가 추가 한 디코딩을 너무, 인쇄.

+0

이 작동하지 않습니다. [http://i.imgur.com/DXiMnBN.jpg], [http://i.imgur.com/n96oqQe.jpg] – Ahmet

+0

@ 아멧 : 아직 인코딩 중입니다. '.encode()'호출을 제거하십시오. –

+0

@Ahmet : 실제로 코드에도 오류가있었습니다. 나는'bytes' 객체를'bytes.rstrip()'에 전달하는 것을 잊었습니다. 지금 수정되었습니다. –