Как мне сгенерировать hma c с sha-512? - PullRequest
1 голос
/ 04 февраля 2020

Итак, я пишу python программу, фактически мою первую «большую», которая в определенный момент должна сгенерировать hma c с sha-512 из сообщения и ключа.

Допустим, у меня есть:

key = 'ff'
seed = '238973:a665f3e641d9a402df3f9d5d9a236cb8061a2437ee47de8b3c8091774484b8b3:238973'
bkey = key.encode()
bseed = seed.encode()
string = hmac.new(bKey, bSeed, 'sha3_512')
digest = string.hexdigest()
print(str(digest))
>>>92b6c5ccc654c21838cb72e932de0feaf898398300e9755b2c91553c9db0bea99a5139055b5471142b299361c6ece4b51f2f26777a6f18f0db27775625e6948f

Однако, когда я go до https://www.freeformatter.com/hmac-generator.html#ad -выход , это дает мне другой результат:

249667dabafbd3fa123b9749c6b23bc90c935e30e1372f26bbab2defa791fc915d60d406efe1b165befd4a1b6dc34fcf2f0975db08a7a2938964e99ea0419dcf

который я знаю по факту, чтобы быть правильным, может кто-нибудь объяснить мне, почему это так? Я искал онлайн несколько часов, но мне кажется, что я бегаю кругами, или я не совсем понимаю, как работает hma c. Я был бы очень признателен за вашу помощь, это единственный бит, который мне не хватает для завершения sh этой программы.

1 Ответ

1 голос
/ 04 февраля 2020

sha3_512 - это не та же реализация, что и sha512 - первая основана на SHA-3 , а вторая основана на более старого стандарта SHA-2 . Вместо этого используйте sha512 при создании hma c для использования версии SHA-2:

>>> hmac.new(b'ff', b'238973:a665f3e641d9a402df3f9d5d9a236cb8061a2437ee47de8b3c8091774484b8b3:238973', hashlib.sha512).hexdigest()
'249667dabafbd3fa123b9749c6b23bc90c935e30e1372f26bbab2defa791fc915d60d406efe1b165befd4a1b6dc34fcf2f0975db08a7a2938964e99ea0419dcf'
...