【发布时间】:2015-12-04 13:50:15
【问题描述】:
场景
我有以下代码:
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<div id="decrypted">Please wait...</div>
Insert new note:<input type="text" id="new_note"><input type="button" id="enc_button" value="Save">
<script>
var password = "testpassword";
var encrypted_text = localStorage.getItem("encrypted");
var rawData = atob(encrypted_text);
var iv = rawData.substring(0,16);
var crypttext = rawData.substring(16);
var plaintextArray = CryptoJS.AES.decrypt(
{ ciphertext: CryptoJS.enc.Latin1.parse(crypttext) },
CryptoJS.enc.Hex.parse(password),
{ iv: CryptoJS.enc.Latin1.parse(iv) }
);
var decrypted = CryptoJS.enc.Latin1.stringify(plaintextArray);
document.getElementById("decrypted").innerHTML = decrypted;
document.getElementById("enc_button").onclick = function(){
var text = document.getElementById("new_note").value;
var encrypted = CryptoJS.AES.encrypt(text, password);
localStorage.setItem("encrypted",encrypted);
}
</script>
我的代码应该做什么
使用 CryptoJS 使用 AES 加密字符串;解密保存在本地存储中的加密文本并在 div 中显示结果
什么不工作
虽然字符串似乎已加密,但变量 decrypt 为空。 chrome 控制台中不会触发任何错误。
我的问题
我怎样才能成功地加密和解密我的文本?
【问题讨论】:
标签: javascript encryption cryptography cryptojs