2013-12-23 49 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

感謝您的輸入。你是對的。我通過修改發佈另一個答案。 –