javascript - 如何让 Google Apps 脚本执行 SHA-256 加密?

标签 javascript google-apps-script sha256 sha

我需要使用 TEXT 输入、1 轮、HEX 输出、SHA-256 加密来加密字符串。这应该是一个长度为64的字符串。
我在 Google Apps 脚本文档中尝试过的每个 SHA-256 加密模块都会返回一组数字。例如。

function SHA256() {
    var signature = Utilities.computeHmacSha256Signature("this is my input",
                                                 "my key - use a stronger one",
                                                 Utilities.Charset.US_ASCII);
Logger.log(signature);
    }

输出

[53, -75, -52, -25, -47, 86, -21, 14, -2, -57, 5, -13, 24, 105, -2, -84, 127, 115, -40, -75, -93, -27, -21, 34, -55, -117, -36, -103, -47, 116, -55, -61]

我没有在文档或其他地方看到任何指定我要在上面概述的 GAS 参数的内容。如果需要的话,我不介意从头开始对它进行更深入的解释。我正在加密信息以发送到 Facebook 以实现广告的离线转化。 Facebook 如何解密加密的字符串?
Google Apps 脚本文档
https://developers.google.com/apps-script/reference/utilities/utilities#computeHmacSha256Signature(String,String,Charset)

最佳答案

̶U̶t̶i̶l̶i̶t̶i̶e̶s̶.̶c̶o̶m̶p̶u̶t̶e̶H̶m̶a̶c̶S̶h̶a̶2̶5̶6̶S̶i̶g̶n̶a̶t̶u̶r̶e̶ U tilities.computeDigest() 返回字节数组(8 位整数)。如果您想将该数组转换为由十六进制字符组成的字符串,您必须手动执行,如下所示:

/** @type Byte[] */
var signature = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, value);

/** @type String */
var hexString = signature
    .map(function(byte) {
        // Convert from 2's compliment
        var v = (byte < 0) ? 256 + byte : byte;

        // Convert byte to hexadecimal
        return ("0" + v.toString(16)).slice(-2);
    })
    .join("");

关于javascript - 如何让 Google Apps 脚本执行 SHA-256 加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59381945/

相关文章:

javascript - 在 JavaScript 中交换两个对象

javascript - 如何从嵌套数组中拼接数组 - javascript

python - Python 的 pbkdf2_sha256.verify 的 NodeJS 实现

javascript - 切换jquery没有逆转

javascript - 如何通过命令行参数设置 Protractor chromeOptions

google-apps-script - 是否可以在 Google Apps 脚本中执行 ImportRange?

python - 在 python 中将 sha256 摘要转换为 UUID

c# - 使用 X509Certificate2 签署和验证 ECDSA-SHA256 签名

google-apps-script - 谷歌应用程序脚本 : Deploy as web app and get url without 302 redirects

google-apps-script - 尝试按照提到的日期和时间发送电子邮件