我想使用 Rijndael 128 ecb 算法解密像 4vEUkMYlT2qJq+9J0GT8VQ== 这样的加密密码。我找到了一些图书馆,但没有任何工作正常。一些库仅适用于 nodejs 其他库适用于 php。我只有一个简单的 html 页面,它从 ajax 获取加密文本。我想使用相同的算法 Rijndael 128 ecb 解密。(加密文本是 4vEUkMYlT2qJq+9J0GT8VQ== 解密结果是 Novaphen)每个人都可以给我一个用 javascript 解密的解决方案吗?
问问题
2228 次
1 回答
1
最后我可以用这个链接做到这一点。:用 PHP 加密,用 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>
于 2016-09-12T16:13:50.493 回答