Я пытаюсь преобразовать код ниже Java в Nodejs.У меня есть одно требование, чтобы зашифровать текст ключом, используя алгоритм «DESede».В настоящее время код написан на Java, и теперь мне нужно перейти на Nodejs
Java-код -
public static void main(String args[]) throws Exception {
String myString = "the sample text to be encrypted";
EncryptData(myString);
}
public static byte[] EncryptData(String text) throws Exception {
String keyValue = "kbhgvfbjhgfcf87576hgv656" ;
final byte[] keyBytes = keyValue.getBytes("UTF8");
final DESedeKeySpec key = new DESedeKeySpec(keyBytes);
SecretKeyFactory keyFactory =
SecretKeyFactory.getInstance("DESede");
SecretKey key1 = keyFactory.generateSecret(key);
final Cipher cipher = Cipher.getInstance("DESede");
cipher.init(1, key1);
final byte[] plainTextBytes = text.getBytes("UTF8");
final byte[] cipherText = cipher.doFinal(plainTextBytes);
return cipherText;
}
Я пробовал использовать как NodeJS во встроенном модуле Crypto, так и CryptoJS.Но получаю другие результаты, чем то, что я получаю в JavaНевозможно понять, чего мне не хватает.
Использование CryptoJS [Google Code] -
function encrypt(message, key) {
var keyHex = CryptoJS.enc.Utf8.parse(key);
var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted;
}
Использование NodeJS Crypto -
let option = {
alg: 'des-ede3',
key: "kbhgvfbjhgfcf87576hgv656",
plaintext: "the sample text to be encrypted",
}
encrypt(option);
function encrypt(param) {
var key = new Buffer(param.key, 'utf8');
var plaintext = new Buffer(param.plaintext, 'utf8');
var alg = param.alg;
//encrypt
var cipher = crypto.createCipheriv(alg, key, '');
var ciph = cipher.update(plaintext, 'utf8');
ciph += cipher.final('utf8');
console.log(alg, ciph);
return ciph;
}
Я ожидаю, что результат будет -
[-15, 6, -31, 6, -99, 57, -90, -125, 121, 73, -107, 112, -68, 8, 66, 62, 116, 71, 118, -55, -50,-21, 96, -124, 63, -75, -96, -117, 108, -46, -72]
, но фактический результат равен - [5a ad e6 65 a1 будет b9 68 d5 bde4 9f 3c ca d6 6c 7e 71 и 84 c6 39 81 49 14 35 7e 5f de 64 da 40].