2 скрипта, возвращающие 2 разных хэша для одной и той же строки - PullRequest
0 голосов
/ 28 февраля 2012

Я пытаюсь создать «взломщик» 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)

Ответы [ 3 ]

2 голосов
/ 28 февраля 2012

Вам нужно создать новый объект md5 для каждой вещи, которую вы хотите хэшировать.В противном случае вы включаете предыдущую работу хеширования, когда вычисляете последующие хэши.

Учитывая список «яблоко», «банан», «груша», ваш процессор выдает хэши для «яблока», «applebanana "и" applebananapear ".

1 голос
/ 28 февраля 2012

Уберите слово перед хэшированием, а не выполняйте замену.

line = line.strip()
1 голос
/ 28 февраля 2012

Игнорируя тот факт, что два фрагмента кода, которые вы дали, совпадают, вы должны создать новый hashlib.md5, если вы хотите хэшировать новую строку, в противном случае обновление будет добавлено вместо существующего хэша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...