gpt4 book ai didi

c# - 在 python 中使用 key 应用 HMAC SHA-512 算法

转载 作者:搜寻专家 更新时间:2023-10-31 23:42:23 25 4
gpt4 key购买 nike

我正在尝试在 python 中使用 key 应用 HMAC SHA-512 算法,但我没有找到正确的签名方式。

我可以使用 nodejs 和 c# 但不能用于 python

在 Node 中

return crypto.createHmac('sha512', new Buffer(secretString, 'base64')).update(new Buffer(stringToSign)).digest('base64');

在 C# 中

byte[] secretkeyBytes = Encoding.UTF8.GetBytes(apiSecret);
byte[] inputBytes = Encoding.UTF8.GetBytes(stringToSign);
using (var hmac = new HMACSHA512(secretkeyBytes))
{
byte[] hashValue = hmac.ComputeHash(inputBytes);
signature = System.Convert.ToBase64String(hashValue);
}

但在 python 中,我没有想出一种方法来做到这一点。我已经尝试过:

b_secret_string=base64.b64encode(secret_string.encode('utf-8'))
hash = hmac.new(base64.b64encode(b_secret_string),'',sha512)
hash.update(string_to_sign.encode('utf-8'))
signature = base64.b64encode(hash.digest())

hashed = hmac.new(str(secret_string.encode('utf-8')),'',sha512)
hashed.update(string_to_sign.encode('utf-8'))
signature = base64.b64encode(hashed.digest())

但它不起作用。如果可能的话,有人可以给我一盏灯吗?我真的很感激。

更新:

还尝试了以下内容:

string_to_sign = string_to_sign.encode('utf-8')
secret_string = secret_string.encode('utf-8')
hash = hmac.new(secret_string, string_to_sign, hashlib.sha512)
signature = base64.b64encode(hash.digest())

也尝试过使用 hexdigest():

signature = base64.b64encode(hash.hexdigest())

如果有人想测试它。应该在 nodejs 中返回与此代码相同的结果。

var crypto = require('crypto');

a = new Buffer('PRIVATE_KEY', 'base64');
hash = crypto.createHmac('sha512', a)
stringToSign = 'Stack OverFlow Funtime';
hash.update(new Buffer(stringToSign));
console.log(hash.digest('base64'));

$ node example.js
ugmH0VdttdAxGdpzNJnaNn1KlVS4wBzoK//dsPuvK65Zsl8FgT+3aLGnsEubThlv5/3chfyMmsUH//LdS1MXqg==

最佳答案

我找到了一种在 python 中执行相同操作的方法。如果将来有人通过相同的问题,请在这里回答。

    hmac_key = base64.b64decode(secret_string)
signature = hmac.new(hmac_key, string_to_sign, hashlib.sha512)
signature_b64 = signature.digest().encode('base64')
signature_lines = signature_b64.splitlines()
signature_b64 = ''.join(signature_lines)

关于c# - 在 python 中使用 key 应用 HMAC SHA-512 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30034205/

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