gpt4 book ai didi

node.js - NodeJS 如何使用 crypto-js 或使用自定义 key 大小、iv、模式和填充以 UTF8 编码的加密包来加密(AES 算法)数据

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:08 24 4
gpt4 key购买 nike

我正在使用一个 API,该 API 要求我在使用自定义参数发送数据之前对数据进行加密,但我无法从服务器获得良好的响应。

我想确保此代码对于此操作是正确的,因为服务器的响应表明它无法处理我的请求。 “处理请求时出错”

下面是我从 Postman 集合中获取的示例代码。

CryptoJS = require('crypto-js');



AES_ENCRYPT = function(){
var key = "1234567";
var iv = "7654321";
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
const encryptData = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(rawData),
key,
{
keySize: 128 / 8,
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encryptData;
}

根据我的经验,加密完成后我们会得到一个字符串作为返回值,但在这种情况下,我没有得到一个字符串,并且我在返回值上尝试了 encryptData.toString() 但没有成功。

我想知道是否可以使用另一个 Node 包执行相同的操作以获得正确的结果,或者使用相同的 crypto-js 包以正确的方式执行此操作。

最佳答案

您应该使用内置模块,crypto因为它更容易使用并且在线资源更多。

var crypto = require('crypto');

var iv = 'some 16 byte iv';
var key = 'some 16 byte long key';
var plainText = 'some plain text';
var algo = 'aes-128-cbc'; // we are using 128 bit here because of the 16 byte key. use 256 is the key is 32 byte.

var cipher = crypto.createCipheriv('aes-128-cbc', new Buffer(key), new Buffer(iv));
var encrypted = cipher.update(plainText, 'utf-8', 'base64'); // `base64` here represents output encoding
encrypted += cipher.final('base64');

console.log('encrypted'); //returns encrypted data in base64 encoding

关于node.js - NodeJS 如何使用 crypto-js 或使用自定义 key 大小、iv、模式和填充以 UTF8 编码的加密包来加密(AES 算法)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56040627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com