Google 应用脚本 HMAC-SHA-256 值错误
Google App Script HMAC-SHA-256 wrong value
我一直在与以下问题作斗争,想寻求帮助。
我正在尝试在 Apps 脚本中使用 HMAC-SHA-256 算法计算字符串的签名。
并尝试使用提供的输入和密钥示例重现示例 here
var input_string = "1KAD46OrT9HafiKdsXeg1588925778000"
var key_string = "4OHBOnWOqaEC1mWXOpVL3yV50s0qGSRC"
var test=Utilities.base64EncodeWebSafe(
Utilities.computeHmacSha256Signature(
input_string,
key_string
)
);
以上returns:
zqr7XM3C9yOp_T6R09IjjuDdmm18PDZd61D8KvJ3qoM=
而不是(如 signature example or from using this online tool 中所示):
ceaafb5ccdc2f723a9fd3e91d3d2238ee0dd9a6d7c3c365deb50fc2af277aa83
知道我做错了什么吗?
谢谢!!
base64EncodeWebSafe(data) accepts a string data to encode. While computeHmacSha256Signature(value, key) returns 表示输出签名的字节数组。
您需要将字节数组转换为十六进制字符串。
function test(){
var input_string = "1KAD46OrT9HafiKdsXeg1588925778000"
var key_string = "4OHBOnWOqaEC1mWXOpVL3yV50s0qGSRC"
var test = Utilities.computeHmacSha256Signature(input_string,key_string).reduce(function(str,chr){
chr = (chr < 0 ? chr + 256 : chr).toString(16);
return str + (chr.length==1?'0':'') + chr;
},'');;
Logger.log(test);
}
输出: ceaafb5ccdc2f723a9fd3e91d3d2238ee0dd9a6d7c3c365deb50fc2af277aa83
我一直在与以下问题作斗争,想寻求帮助。
我正在尝试在 Apps 脚本中使用 HMAC-SHA-256 算法计算字符串的签名。
并尝试使用提供的输入和密钥示例重现示例 here
var input_string = "1KAD46OrT9HafiKdsXeg1588925778000"
var key_string = "4OHBOnWOqaEC1mWXOpVL3yV50s0qGSRC"
var test=Utilities.base64EncodeWebSafe(
Utilities.computeHmacSha256Signature(
input_string,
key_string
)
);
以上returns:
zqr7XM3C9yOp_T6R09IjjuDdmm18PDZd61D8KvJ3qoM=
而不是(如 signature example or from using this online tool 中所示):
ceaafb5ccdc2f723a9fd3e91d3d2238ee0dd9a6d7c3c365deb50fc2af277aa83
知道我做错了什么吗?
谢谢!!
base64EncodeWebSafe(data) accepts a string data to encode. While computeHmacSha256Signature(value, key) returns 表示输出签名的字节数组。
您需要将字节数组转换为十六进制字符串。
function test(){
var input_string = "1KAD46OrT9HafiKdsXeg1588925778000"
var key_string = "4OHBOnWOqaEC1mWXOpVL3yV50s0qGSRC"
var test = Utilities.computeHmacSha256Signature(input_string,key_string).reduce(function(str,chr){
chr = (chr < 0 ? chr + 256 : chr).toString(16);
return str + (chr.length==1?'0':'') + chr;
},'');;
Logger.log(test);
}
输出: ceaafb5ccdc2f723a9fd3e91d3d2238ee0dd9a6d7c3c365deb50fc2af277aa83