Я пытаюсь создать «взломщик» MD5 и использую для этого два разных скрипта, первый берет список слов из списка слов (огромный word list.txt), затем хеширует их и записывает их в другой файл (WordsHash.txt). Затем второй берет пользовательское слово, хэширует его и сравнивает с хешами в WordHash.txt, но я получаю разные хеш-коды для «одной и той же» строки.
первый скрипт:
import hashlib
hashes = open("WordsHash.txt", 'w')
m = hashlib.md5()
with open("huge word list.txt") as words:
words = words.readlines()
print "processing..."
for line in words:
line = line.replace("\n", "")
m.update(line)
word_hash = m.hexdigest()
line = "%s %s\n" % (line, word_hash)
hashes.write(line)
print "done."
hashes.close()
и второй скрипт:
import hashlib
f = open('WordsHash.txt')
p = '\'due'
password = hashlib.md5()
password.update(p)
password = password.hexdigest()
print "%r %r" %(password, p)
for line in f:
lines = line.split(" ")
lines[1] = lines[1].replace("\n", "")
word_hash = lines[1]
if word_hash == password:
print "found it, %s" % line
exit(0)