2013-12-23 51 views
2

我想如下产生的crypto-js on node一个简单的测试:节点crypto-js AES加密 - >解密使用情况?

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

什么是正确的用法?

回答

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

哦.. 工作代码:

'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 
+0

ECR功能不返回一个字符串! ! – damphat

+0

感谢您的输入。你是对的。我通过修改发布另一个答案。 –