我目前有一小段代码可以在 R Studio 中获取授权字符串。我正在尝试在 App Script 中复制相同的功能,但我无法获得相同的结果。
R Studio 中的代码是:
library(digest)
library(openssl)
sec_key <- "secret-key"
checksum_string <- "checksum-string"
checksum <- base64_encode(hmac(sec_key, checksum_string, algo = "sha1", raw = T))
Result after hash: 32 e1 f7 da c6 5b 16 fe 02 5b 90 f9 98 65 2b 2c 2e 22 c9 ad
Result after base64 encode: "MuH32sZbFv4CW5D5mGUrLC4iya0="
同时,我在 AppScript 中使用的代码是:
function get_checksum{
var sec_key = "secret-key"
var checksum_string = "checksum-string"
var hash = Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_1, sec_key, checksum_string)
var checksum = Utilities.base64Encode(hash)
}
Result after hash: [107.0, -81.0, -127.0, -126.0, -93.0, 108.0, 110.0, -26.0, -29.0, 70.0, -90.0, -44.0, -100.0, -107.0, 25.0, 54.0, 86.0, 22.0, -82.0, -97.0]
Result after base64 encoding: "a6+BgqNsbubjRqbUnJUZNlYWrp8="
如您所见,我没有得到相同的结果。
我猜应该有一个函数用于哈希,以便我可以获得“原始”结果,但我不知道它并且无法找到它。
如果有人能指出我正确的方向,我将不胜感激。
根据文档,AppScript 中的 HMAC 函数采用相反的方式获取参数 - 键之前的消息。