Хэш Python md5 продолжает генерировать неправильный хеш

Я использую онлайн-генератор md5, чтобы получить хэш-значение «футбол». Когда Python преобразует мой ввод футбольного мяча в командной строке, он генерирует другой хэш. Затем он генерирует другой хэш, совершенно отличный от слова «футбол», которое есть в моем списке. Так что нет совпадения, когда он сравнивает их. Я хэшировал слово «футбол» в разных онлайн-генераторах md5 и получаю тот же результат. Только в Python я продолжаю получать разные результаты. Спасибо за любую помощь.

import hashlib


def dictionary_attack(password_hash):

    dictionary = ['letmein', 'password', '12345', 'football']

    password_found = None

    for dictionary_value in dictionary:
        temp_value = hashlib.md5('dictionary_value'.encode('utf-8'))
        hashed_value = temp_value.hexdigest()

        if hashed_value == password_hash:
            password_found = True
            recovered_password = dictionary_value

    if password_found == True:
        print(f'Found match for hashed value: {password_hash}')
        print(f'Password recovered: {recovered_password}')
    else:
        print(f'password not found')


def main():
    objhash = input('Enter value: ')
    hashobj = hashlib.md5('objhash'.encode('utf-8'))
    password_hash = hashobj.hexdigest()
    dictionary_attack(password_hash)

 if __name__ == '__main__':
    main()

person snoopgrapes78    schedule 20.02.2021    source источник
comment
Вы генерируете хэш для строки 'dictionary_value', а не 'football'.   -  person bereal    schedule 21.02.2021
comment
Вы хэшируете str 'objhash', а не пользовательский ввод   -  person Chiheb Nexus    schedule 21.02.2021


Ответы (1)


Вы не вычисляете хэш "football". Вы вычисляете хэш строки "dictionary_value".

Изменить строку

temp_value = hashlib.md5('dictionary_value'.encode('utf-8'))

in dictionary_attack to

temp_value = hashlib.md5(dictionary_value.encode('utf-8'))

Точно так же в main измените

hashobj = hashlib.md5('objhash'.encode('utf-8'))

to

hashobj = hashlib.md5(objhash.encode('utf-8'))
person Brian    schedule 20.02.2021
comment
Большое спасибо. Очень ценю помощь там, братан. Хороший. - person snoopgrapes78; 21.02.2021