2014-08-28 206 views
1

我想获得加密JS库加密/解密一个简单的信息,请参阅下面的jsfiddle(http://jsfiddle.net/6gunq2nx/解密 - 加密加密JS

<script> 
    var encrypted = CryptoJS.AES.encrypt("this is some test", "770A8A65DA156D24EE2A093277530142"); 
    var decrypted = CryptoJS.AES.decrypt(encrypted, "770A8A65DA156D24EE2A093277530142"); 
    alert(decrypted); 
</script> 

问题是,它是没有正确解密信息,我尝试过AES和DES,但两者都不起作用,我做错了什么?请看下面的截图

AES

+2

提示:的 “T”, “H” 的数字等值,“我”是116,104和105;在十六进制这是74,68,69. – Kevin 2014-08-28 12:55:14

回答

2

这几乎是正确的。你得到的字符串是你的原始字符串的十六进制表示。尝试将其转换是这样的:

var decrypted = CryptoJS.AES.decrypt(encrypted, "770A8A65DA156D24EE2A093277530142").toString(CryptoJS.enc.Utf8); 

分叉的jsfiddle:http://jsfiddle.net/1qgzk9j8/

+0

真棒,转换为字符串没有在例子中提到:)非常感谢! – 2014-08-28 12:59:22

1

试试这个: -

// Replace this with user input (only user should know the passphrase which can be used to decrypt the message) 
var passphrase = '770A8A65DA156D24EE2A093277530142'; 

// Some content that we want to crypt 
var content = 'this is some test'; 

// Use CryptoJS.AES to encrypt content using AES (Advanced Encryption Standard) 
var encryptedContent = CryptoJS.AES.encrypt(content, passphrase); 

// Use CryptoJS.AES also to decrypt content 
var decryptedContent = CryptoJS.AES.decrypt(encryptedContent, passphrase).toString(CryptoJS.enc.Utf8); 

alert(encryptedContent); 
alert(decryptedContent); 

Demo