Тройной ключ DES Node.js - PullRequest
       48

Тройной ключ DES Node.js

0 голосов
/ 01 сентября 2018

Мне нужно скопировать код .NET в Node.js. Мое жесткое требование состоит в том, что шифрование Triple DES должно выполняться с 16-байтовым ключом и 16-байтовым IV. Тем не менее, я искал все, но не смог найти эту комбинацию ни с одним пакетом Node.js. Следующий код жалуется, что длина IV должна быть 8 байтов. И это работает, если я сделаю это 8 байтов.

const crypto = require('crypto');
const text = "4111111111111111";
const des_key = Buffer.from([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);
const des_iv = Buffer.from([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);
const cipher = crypto.createCipheriv("DES-EDE-CBC", des_key, des_iv);
const encryptedText = cipher.update(text,'utf8','base64') + cipher.final('base64');
console.log("EncryptedText: " + encryptedText);

Я попробовал другие алгоритмы, но не смог найти нужные комбинации длин. Смотрите мои выводы ниже.

DES-ECB -      Key: 8;  IV: 0
DES-CBC -      Key: 8;  IV: 8
DES-CFB -      Key: 8;  IV: 8
DES-CFB1 -     Key: 8;  IV: 8
DES-CFB8 -     Key: 8;  IV: 8
DES-EDE-CBC -  Key: 16; IV: 8
DES-EDE-CFB -  Key: 16; IV: 8
DES-EDE-OFB -  Key: 16; IV: 8
DES-EDE3-CBC - Key: 24; IV: 8
DESX-CBC -     Key: 24; IV: 8

Буду очень признателен за любую помощь, которую я могу получить.

...