如何使用sha512生成hmac?

2024-06-26 01:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在编写一个python程序,实际上是我的第一个“大”程序,在某一点上,需要从消息和密钥生成一个带有sha-512的hmac

假设我有:

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

但是,当我转到https://www.freeformatter.com/hmac-generator.html#ad-output时,它会给我另一个结果:

249667dabafbd3fa123b9749c6b23bc90c935e30e1372f26bbab2defa791fc915d60d406efe1b165befd4a1b6dc34fcf2f0975db08a7a2938964e99ea0419dcf

我知道一个事实是正确的,有人能解释为什么吗?我已经在网上找了几个小时了,但似乎我在兜圈子,或者我没有完全掌握hmac是如何工作的。 我将非常感谢你的帮助,这是我唯一缺少的一点来完成这个项目


Tags: key程序消息newstring密钥hmacencode
1条回答
网友
1楼 · 发布于 2024-06-26 01:34:27

sha3_512sha512不同,前者基于SHA-3,而后者基于the older SHA-2 standard。在创建hmac以使用SHA-2版本时,请改用sha512

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

相关问题 更多 >