gpt4 book ai didi

python - openssl hmac 与 python hmac 不同

转载 作者:太空狗 更新时间:2023-10-30 02:59:43 26 4
gpt4 key购买 nike

与:

KEY='7vgd39eyxald9sucClM7'
DATA='POST\nmultipart/form-data\nWed, 10 Jun 2015 07:27:43 GMT\n/1/classes/item\nx-wbs-uid:f886a495220975d724ff3679a5cc9cef04343076'

在命令行中

HASH_BIN=`echo -n "$DATA" | openssl dgst -sha256 -mac HMAC -macopt key:$KEY -binary`
openssl enc -e -base64 <<< $HASH_BIN
result: VmBdzRcNg0OJZVVLSgg1zcViflug9iqtb6Gsnjqf9F8K

在 python 中

import hmac, hashlib, base64
hash = hmac.new(KEY, DATA, hashlib.sha256).digest()
base64.encodestring(hash).strip()
result: u6Poj7Jqrz6+wvXDNyK88pVm5iKUF6RUmq2P2LtHmuE=

有人可以帮我吗???非常感谢。

最佳答案

应该是你的python代码中的DATA字符串定义引起的。

您需要添加rDATA 视为原始字符串,例如

DATA=r'POST\nmultipart/form-data\nWed, 10 Jun 2015 07:27:43 GMT\n/1/classes...'

使用rDATA 中的所有转义码都将被忽略。也就是说,'\n'将被视为换行符,而r'\n'将被视为字符\后跟n。在 Python 中,

'\n'  // 0x0d

r'\n' // 0x5c 0x6e

使用r,它会输出等于通过openssl输出的结果,

VmBdzRcNg0OJZVVLSgg1zcViflug9iqtb6Gsnjqf9F8K

关于python - openssl hmac 与 python hmac 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30974080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com