无法使用CryptoJS解密密码

时间:2015-07-27 06:48:48

标签: javascript encryption cryptography cryptojs

我正在尝试使用CryptoJS进行加密。加密似乎工作正常,但是当我解密密码时,我没有得到初始的纯文本密码。

这是我的JavaScript代码:

<script type="text/javascript">
var password = "";
function noSsl()
{
    $(document).ready(function()
    {
        $("#dialog").dialog({ show: 'fade', hide: 'fade' });
    });
}
function savePassword()
{
    password = document.getElementById("ap").value;
    alert("Initial password: " + password);
    enPassword = CryptoJS.AES.encrypt(password, <?php echo '"'.$currentAdk.'"'; ?>);
    $(document).ready(function()
    {
        $("#ap").slideToggle("slow");
        $("#sp").slideToggle("slow");
        $("#sp").remove();
    });
    alert("Encrypted: " + enPassword);
    var decrypted = CryptoJS.AES.decrypt(enPassword, <?php echo '"'.$currentAdk.'"'; ?>)
    alert("Decrypted: " + decrypted);
}
</script>

结果如下:

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

要使用CryptoJS获取解密的纯文本密码,您需要使用:

var decryptedPlaintextPassword = CryptoJS.AES.decrypt(enPassword, <?php echo '"'.$currentAdk.'"'; ?>).toString(CryptoJS.enc.Utf8);

答案 1 :(得分:0)

您可以使用纯Javascript进行同样的操作。

var message = "Test using crypto-js";
var passcode = "1234";

var encrypt = CryptoJS.AES.encrypt(message, passcode);
var decrypt = CryptoJS.AES.decrypt(encrypt, passcode);

// You need to use the toString() method to change back to plain text.
var text = decrypt.toString(CryptoJS.enc.Utf8);