node crypto-js AES encrypt -> использование расшифровки?

Я пытаюсь создать простой тест crypto-js на узле следующим образом:

'use strict';

var AES = require('crypto-js/aes');
var key = 'passPhrase';
var ecr = function(str)
{
    return AES.encrypt(str, key);
};
var dcr = function(str)
{
    return AES.decrypt(str, key);
};

console.log(dcr(ecr('hello world')));
// expected result is:  hello world

Фактический результат:

{ words: [ 1751477356, 1864398703, 1919706117, 84215045 ],
  sigBytes: 11 }

Что такое правильное использование?


person Community    schedule 23.12.2013    source источник


Ответы (2)


Я изменил код для работы с любым объектом:

'use strict';

var CryptoJS = require('crypto-js');
var key = 'pass phrase';
var ecr = function(obj)
{
    return CryptoJS.AES.encrypt(JSON.stringify(obj), key);
};
var dcr = function(obj)
{
    return JSON.parse(CryptoJS.AES.decrypt(obj, key)
        .toString(CryptoJS.enc.Utf8));
};

var s = 'hello world';
console.log(dcr(ecr(s)));

var obj = {
    id: 'ken',
    key: 'password'
};
console.log(dcr(ecr(obj)));
person Community    schedule 23.12.2013

Ну ладно.. Рабочий код:

'use strict';

var CryptoJS = require('crypto-js');
var key = 'pass phrase';
var ecr = function(str)
{
    return CryptoJS.AES.encrypt(str, key);
};
var dcr = function(str)
{
    return CryptoJS.AES.decrypt(str, key)
        .toString(CryptoJS.enc.Utf8);
};

console.log(dcr(ecr('hello world')));

Результат:

hello world
person Community    schedule 23.12.2013
comment
Спасибо за отзыв. Ты прав. Я отправляю еще один ответ с модификацией. - person ; 23.12.2013