Для класса шифрования, в котором я находится, нам было поручено сделать программу для проверки пароля, если компьютер знает следующую определенную информацию. Учитель дал нам рабочий набор фиксированной информации.
Я пытаюсь написать код python для verfiery заданного набора пользовательских данных на основе известных и фиксированных...
метод переваривания: HMAC-SHA256
раундов: 100000
соль: "e65814e4382759f85550029e723dc7e7"
пароль: "убирающий клюв губернатора"
для вывода полученных данных: "5f37a3bd08ac1c7d163294a3cb192ed1407b62bbc6a6259fee55f6e53f754273"
Это мой код для генерации выведенных для проверки против вышеприведенных...
key = hashlib.pbkdf2_hmac('sha256', b'governor washout beak', b'e65814e4382759f85550029e723dc7e7', 100000, dklen=32)
print(binascii.hexlify(key))
однако вместо этого я получаю "0ce7d2e654c0ba80e67348c9610ca1851312458166ee8c9e6d46666832a21b11". Я не понимаю, чего не хватает.
ошибка - это код принимает соль из ascii >> двоичный, а не hex >> двоичный, поэтому вы хотите использовать модуль binascii:
import binascii
hexstr = 'e65814e4382759f85550029e723dc7e7'
binascii.unhexlify(hexstr)
b"\xe6X\x14\xe48'Y\xf8UP\x02\x9er=\xc7\xe7"