我有这种api示例,我想在nodejs中使用它。

/*
https://code.google.com/archive/p/crypto-js/
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/crypto-js/CryptoJS%20v3.1.2.zip
*/

<script type="text/javascript" src="./CryptoJS/rollups/hmac-sha256.js"></script>
<script type="text/javascript" src="./CryptoJS/components/enc-base64.js"></script>

function makeSignature() {
    var space = " ";                // one space
    var newLine = "\n";             // new line
    var method = "GET";             // method
    var url = "/photos/puppy.jpg?query1=&query2";   // url (include query string)
    var timestamp = "{timestamp}";          // current timestamp (epoch)
    var accessKey = "{accessKey}";          // access key id (from portal or Sub Account)
    var secretKey = "{secretKey}";          // secret key (from portal or Sub Account)

    var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, secretKey);
    hmac.update(method);
    hmac.update(space);
    hmac.update(url);
    hmac.update(newLine);
    hmac.update(timestamp);
    hmac.update(newLine);
    hmac.update(accessKey);

    var hash = hmac.finalize();

    return hash.toString(CryptoJS.enc.Base64);
}


但是问题是当我在Node.js中使用它时,我不知道如何要求这些CryptoJS。
例如,我通过Google下载了CryptoJS文件。它是按要求阅读的。
即使已阅读,我也不知道应该正确阅读哪个。
你能帮助解决这个问题吗?

const CryptoJS = require('./CryptoJS v3.1.2/components/enc-base64');

最佳答案

在NodeJS(最新版本)中,您甚至不需要下载外部库或从NPM安装。

Nodejs具有crypto内置库。



const crypto = require('crypto');

var space = " ";
var newLine = "\n";
var method = "GET";
var url = "/photos/puppy.jpg?query1=&query2";
var timestamp = "{timestamp}";
var accessKey = "{accessKey}";
var secretKey = "{secretKey}";

const hash = crypto.createHmac('sha256', secretKey)
                   .update(method)
                   .update(space)
                   .update(url)
                   .update(newLine)
                   .update(timestamp)
                   .update(newLine)
                   .update(accessKey)
                   .digest('hex');

console.log(hash);

关于node.js - 如何在Node.js中使用``脚本'',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58586071/

10-11 07:32