Я пытаюсь адаптировать следующее решение в свое приложение Node для расшифровки поля, отправленного из клиентского браузера через POST:
Как расшифровать с помощью CryptoJS с помощью AES?
Кажется, что мы ходим по кругу в поисках значений, которые будут совпадать в консоли. Значения для шифрования «hello» совпадают как с сервером, так и с клиента (отправка «hello», однако теперь ни для одного из них не отображается значение дешифрования.
Код на стороне сервера в маршруте POST для узла:
var ENC_KEY = "c2VjcmV0"; //'secret'
app.post('/hello', function (req, res) {
console.log('POST /hello');
var key = CryptoJS.enc.Base64.parse(ENC_KEY);
console.log('key: ' + key);
console.log('client msg ("hello"): ' + req.body.msg_hello);
var encrypted = CryptoJS.AES.encrypt("hello", key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
console.log('server msg "hello" encrypted to: ' + encrypted);
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
console.log('server msg decrypted: ' + hex2a(decrypted));
var decryptedClient = CryptoJS.AES.decrypt(req.body.msg_hello, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
console.log('client msg decrypted: ' + hex2a(decryptedClient));
res.end(JSON.stringify('{ response: "response" }'));
});
Любая помощь приветствуется!
var decryptKey = ENC_KEY
отсутствует;
. Кроме того,CryptoJS.AES.decrypt
иCryptoJS.AES.encrypt
должны использовать один и тот же ключ .. в приведенном выше коде ключ! = ENC_KEY - person neildaemond   schedule 27.11.2014aes-128-ctr
илиaes-128-ecb
) и включать / выключать заполнение PKCS и т. Д. Он также предоставляет интерфейсы потоков узлов, чтобы вы могли подключить их к конвейеру. с другими потоками. - person mscdex   schedule 27.11.2014