在javascript中返回hmac密钥

凯文

从我的 api 提供者那里,我有一个代码可以生成一个 hmac 密钥。

<html>
<head>
</head>
<body>
<p id="demo"></p>
<script>var BuckarooHmac = (function () {
    var self = {};

    function getEncodedContent(content) {
        if (content) {
            var md5 = CryptoJS.MD5(content);
            var base64 = CryptoJS.enc.Base64.stringify(md5);
            return base64;
        }

        return content;
    }

    function getHash(websiteKey, secretKey, httpMethod, nonce, timeStamp, requestUri, content) {
        var encodedContent = getEncodedContent(content);

        var rawData = websiteKey + httpMethod + requestUri + timeStamp + nonce + encodedContent;
        var hash = CryptoJS.HmacSHA256(rawData, secretKey);
        var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);

        return hashInBase64;
    }

    function getTimeStamp() {
        return Math.floor((new Date).getTime() / 1000);
    }

    function getNonce() {
        var text = "";
        var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        for (var i = 0; i < 16; i++) {
            text += possible.charAt(Math.floor(Math.random() * possible.length));
        }
        return text;
    }

    self.GetAuthHeader = function (requestUri, websiteKey, secretKey, content, httpMethod) {
        var nonce = getNonce();
        var timeStamp = getTimeStamp();
        content = content ? content : "";
        var url = encodeURIComponent(requestUri).toLowerCase();
        return "hmac " + websiteKey + ":" + getHash(websiteKey, secretKey, httpMethod, nonce, timeStamp, url, content) + ":" + nonce + ":" + timeStamp;
    }
    return self;
     document.getElementById("demo").innerHTML = self.GetAuthHeader();
}());

</script>
</body>
</html>

我不习惯 javascript。我想弄清楚如何在我的屏幕上打印生成的密钥。我试过这个:

document.getElementById("demo").innerHTML = self.GetAuthHeader();

我知道我一定是做错了。我现在只需要朝着正确的方向推动。任何人都可以帮助我?

大卫

您试图在函数的 return 语句之后执行操作该代码将永远不会到达,因为该函数已返回。

相反,先做:

document.getElementById("demo").innerHTML = self.GetAuthHeader();
return self;

或者,更好的是,如果此代码是由供应商提供的,那么您可能不应该编辑它。更新将删除您的编辑,并且供应商支持将受到损害。相反,完全在代码之外执行您的操作:

var BuckarooHmac = (function () {
    // vendor code
}());

document.getElementById("demo").innerHTML = BuckarooHmac.GetAuthHeader();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Javascript中返回更改的密钥形式JSON

传递密钥并返回对象javascript

计算HMAC-SHA512在Java中的密钥

在 python 中创建 HMAC SHA256 密钥

Docusign:使用机密密钥从头响应中验证HMAC密钥

我有我的私钥和api密钥,如何使用javascript创建HMAC签名。实际上什么是HMAC签名?

HMAC解决方案中的密钥要使用什么(最佳/最佳实践)?

使用C#中的HMAC密钥将文件上传到Google Cloud Storage

Python和JavaScript中的HMAC SHA256

Java中的HMAC-SHA256产生的输出与JavaScript不同

在Javascript中创建C#生成的HMAC哈希

为什么我的hmac密钥关闭了?

HMAC无法检测到密钥的细微变化

javascript_include_tag 返回 nil 而不是 google api 密钥

如何从javascript中的json对象获取密钥

重复密钥已在Javascript Cookie中设置

使用javascript验证字段中的密钥输入

Javascript-USB令牌中的密钥/证书

如何从javascript中的嵌套对象访问密钥

为什么HMAC sha256在PHP和Javascript上返回不同的值

PHP访问对象中的受保护密钥返回空

如何返回在终端中输入ssh密钥密码

linux SSH密钥在puttygen中的使用返回错误

在JSON中搜索特定密钥并返回该数据

如何从python返回的json文件中获取某个密钥?

Javascript 中的链式返回

PHP 中的 HMAC sha256 不以十六进制和破折号 (-) 返回输出

更改 JSON 中的密钥,当密钥中存在 DASH“-”时 - nodeJS 或 JavaScript

返回在 Javascript 中返回未定义