节点encryption-js AESencryption – >解密使用情况?

我正在试图在节点上生成一个简单的crypto-jstesting,如下所示:

'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 } 

什么是正确的用法?

我修改了代码来处理任何对象:

 '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))); 

噢,工作代码:

 '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