gpt4 book ai didi

php - 使用sha256 python使用base64编码计算hmac值

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:28 24 4
gpt4 key购买 nike

我正在尝试将 php 代码转换为 python 语言。

php 函数使用 sha256 和 base64 编码计算 hmac 值。

我的 Php 函数:

<?php

define('SHOPIFY_APP_SECRET', 'some_key');

function verify_webhook($data)
{
$calculated_hmac = base64_encode(hash_hmac('sha256', $data,
SHOPIFY_APP_SECRET, true));
echo $calculated_hmac;
}

$data = "some_data";
$verified = verify_webhook($data);
?>

我的 Python 函数:

import base64
import hmac
import binascii
from hashlib import sha256

API_SECRET_KEY = "some_key"
data = "some_data"

def verify_webhook():
dig = hmac.new(
API_SECRET_KEY,
msg=data,
digestmod=sha256
).digest()
calculated_hmac = base64.b64encode(bytes(binascii.hexlify(dig)))
print(calculated_hmac)

verify_webhook()

即使我有相同的 key 和数据,我也会得到不同的输出。我仍然不知道我在这里错过了什么。请帮忙!

Python 输出:

YWM3NjlhMDZjMmViMzdmM2E3YjhiZGY4NjhkNTZhOGZhMDgzZDM4MGM1OTkyZTM4YjA5MDNkMDEwNGEwMzJjMA==

PHP 输出:

N7JyAyKocoDx/Opx36nGqAuUKdyGH+ROX+J5AJgQ+/g=

最佳答案

我能够使用 Python 3 匹配您的 php 输出:

>>> dig = hmac.new( bytes(API_SECRET_KEY,'ascii'), 
msg=bytes(data, 'ascii'), digestmod=sha256 )
>>> dig.digest()
b'7\xb2r\x03"\xa8r\x80\xf1\xfc\xeaq\xdf\xa9\xc6\xa8\x0b\x94)\xdc\x86\x1f\xe4N_\xe2y\x00\x98\x10\xfb\xf8'
>>> base64.b64encode(dig.digest())
b'N7JyAyKocoDx/Opx36nGqAuUKdyGH+ROX+J5AJgQ+/g='

关于php - 使用sha256 python使用base64编码计算hmac值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44664267/

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