Я работаю над небольшой программой python, которая будет по существу грубой силой хешей md5 с использованием файла слов. Программа принимает ваш хэш, а затем вы можете выбрать файл для использования в качестве списка слов. Затем он будет идти по строкам в файле и сделать хеш-версию md5 для проверки того, что вы ввели. Если они совпадут, то он скажет вам слово, которое производит этот хеш. Проблема в том, что когда программа превращает строки в хэши, она не создает корректного распознаваемого хеша md5. Например, он говорит, что хэш-тест md5 - это d8e8fca2dc0f896fd7cb4cb0031ba249. Я пробовал несколько способов кодирования текста и еще много чего, но не могу найти правильный ответ. Что я делаю не так?Python hashlib не создает правильный хэш для md5
import hashlib
mainhash = raw_input("What hash would you like to try and break?")
filename = raw_input("What file would you like to use?")
times = 0
if filename == "":
print "A list file is required."
exit()
f = open(filename)
for line in iter(f):
times = times + 1
word = line
line = hashlib.md5(line.encode("utf")).hexdigest()
print line
if line == mainhash:
print "Matching Hash found. Word is:"
print word
print times
exit()
f.close()
print "Sorry no match was found. Please try a different word file or make sure the hash is md5."
print times
Что случилось с хэшем? – Cyphase
Извините мое невежество: есть ли значение по умолчанию для кодирования в UTF? Обычно я вижу 'utf-x', причем' x' обычно составляет 8 – Pynchia