gpt4 book ai didi

google-apps-script - 为什么我不能计算正确的 HMAC 签名?

转载 作者:行者123 更新时间:2023-12-04 11:55:21 25 4
gpt4 key购买 nike

我正在尝试在 Google Apps Script 中计算 HMAC 签名,但文档对于我需要如何传递参数并不是 100% 清楚,而且我无法获得预期的输出。

为了确定我是否得到正确的输出,我将结果与已知良好的 PHP 代码进行比较。该代码是:

$key = "a2V5"; # this is "key" base64-encoded
$value = "test";
$result = base64_encode(hash_hmac('sha512', $value, base64_decode($key), true));

我在 Google Apps Script 中的代码是:
key = "a2V5"; // this is "key" base64-encoded
value = "test";
result = Utilities.base64Encode(Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_512, value, Utilities.base64Decode(key)));

我期望收到的输出是:
KHoPuJp/vfpbVThjaRjlN6W4MGXk/zMSaLeqoRXd4EepsPT7W4KGCPwLYyfxAFX3Y3sFjp4Nu55piQGj5t1GHA==

但我得到的是:
mGXJ3X/nH5ZIFUAPtf1PsViY50pD3cfU7J8w2KAIEAqrAgZ3dpKcuy5V1yvH4/C5n1C9rFFsKc2JKHTwUqPscQ==

我在这里搞砸了什么?

最佳答案

我查看了您的代码,有一件事引起了我的注意:
Utilities.base64Decode(key)方法返回 Byte[]Utilities.computeHmacSignature(macAlgorithm, value, key)接受 3 个参数。 valuekey属于 string 类型.

也许这就是问题所在。您为什么不尝试以下操作并检查结果:

key = "a2V5"; // this is "key" base64-encoded
clearKey = "key";
value = "test";
result = Utilities.base64Encode(Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_512, value, clearKey));

我检查了 Google Apps 脚本 here .

关于google-apps-script - 为什么我不能计算正确的 HMAC 签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14006981/

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