NodeJS Как зашифровать (алгоритм AES) данные, используя crypto-js, или криптопакет, закодированный в UTF8, используя пользовательский размер ключа, iv, режим и заполнение - PullRequest
1 голос
/ 08 мая 2019

Я работаю с API, который требует от меня шифрования данных перед отправкой с пользовательскими параметрами, и я не могу получить хороший ответ от сервера.

Я хочу убедиться, что этот код правильныйэта операция, потому что мой ответ от сервера говорит, что он не может обработать мой запрос."Error Processing Request"

Ниже приведен пример кода, который я получил из коллекции Почтальона.

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() для возвращаемого значения, но не повезло.

Я хочу знать, могу ли я выполнить эту же операцию, используя другой пакет узла, чтобы получить правильный результат или сделать это правильноспособ, используя тот же crypto-js пакет.

1 Ответ

3 голосов
/ 08 мая 2019

Вы должны использовать встроенный модуль, 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...