在一个简单的html页面中使用javascript解密Rijndael 128 ecb

时间:2016-09-12 08:47:14

标签: javascript encryption rijndael ecb

我想使用Rijndael 128 ecb算法解密像4vEUkMYlT2qJq + 9J0GT8VQ ==这样的加密密码。我发现了一些库但没有正常工作。一些库只与nodejs一起使用,其他库与php一起使用。我只有一个简单的html页面,从ajax获取加密文本。我想使用相同的算法Rijndael 128 ecb解密。 (加密文本是4vEUkMYlT2qJq + 9J0GT8VQ ==解密结果是Novaphen) 每个人都能给我一个用javascript解密的解决方案吗?

1 个答案:

答案 0 :(得分:0)

最后我可以用这个链接做到这一点。 :Encrypt with PHP, Decrypt with Javascript 这是我的解密功能:

    function DecryptData(encryptedData) {
    var decryptedText = null;
    try {
        // Mcrypt pads a short key with zero bytes
        key = CryptoJS.enc.Utf8.parse('doctorlinktechno')

        iv = CryptoJS.enc.Utf8.parse('keee')

        // Keep the ciphertext in Base64 form
        ciphertext = '4vEUkMYlT2qJq+9J0GT8VQ=='

        // Mcrypt uses ZERO padding
        plaintext = CryptoJS.AES.decrypt(ciphertext, key, { iv: iv, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.ZeroPadding })

        // I ran this in nodejs
        return CryptoJS.enc.Utf8.stringify(plaintext);
    }
    //Malformed UTF Data due to incorrect password
    catch (err) {
        return "";
    }
}

关键是你必须根据你的工作包含依赖文件。例如,我想使用ecb模式和填充零,我包括以下文件:

<script src="scripts/aes/core.js"></script>
<script src="scripts/aes/enc-base64.js"></script>
<script src="scripts/aes/cipher-core.js"></script>
<script src="scripts/aes/aes.js"></script>
<script src="scripts/aes/mode-ecb.js"></script>
<script src="scripts/aes/pad-zeropadding.js"></script>