【发布时间】:2017-05-11 02:08:46
【问题描述】:
我发现有人写了一个演示页面,在客户端用 CryptoJS 加密数据,这里是:
https://github.com/odedhb/AES-encrypt
它只有一个加密功能,所以我添加了我认为是解密功能但结果完全不同的文本。
我的整个测试页面:
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
<br>text:<input id='text' type='text' value='0.1'/>
<br>password:<input id='pass' type='text' value='cool'/>
<br><button onclick="encrypt()">encrypt</button>
<br><button onclick="decrypt()">decrypt</button>
<br>encrypted:<br><input id='result'></input>
<br>decrypted:<br><span id="decode"></span>
<script>
function encrypt(){
var encrypted = CryptoJS.AES.encrypt(document.getElementById("text").value, document.getElementById("pass").value);
document.getElementById("result").value = encrypted;
}
function decrypt(){
var decrypted = CryptoJS.AES.decrypt(document.getElementById("result").value, document.getElementById("pass").value);
document.getElementById("decode").innerHTML = decrypted;
}
</script>
</html>
在此页面上,如果我输入Hi I'm Lucas 作为明文(不带引号),密码为passwd,我会收到这样的字符串:U2FsdGVkX1/S3TobCOdyJ7k7eaBhdFKRpJkDBTpV1D0=
如果我继续单击解密按钮,我不会收到任何错误,但我只会得到 48692049276d204c75636173 的结果。
显然,我做错了什么,希望在这里得到帮助:)
【问题讨论】:
标签: javascript encryption encoding aes cryptojs