以下是一个使用crypto-js库进行AES解密的示例:
const CryptoJS = require("crypto-js");
function aesDecrypt(ciphertext, key, iv) {
const encryptedHexStr = CryptoJS.enc.Hex.parse(ciphertext);
const raw = CryptoJS.enc.Hex.stringify(encryptedHexStr);
const keyHex = CryptoJS.enc.Hex.parse(key);
const ivHex = CryptoJS.enc.Hex.parse(iv);
const decrypted = CryptoJS.AES.decrypt(raw, keyHex, { iv: ivHex });
return decrypted.toString(CryptoJS.enc.Utf8);
}
const ciphertext = "3d5e3e1ebb724fe7f7ae7e9d1eb6fcb3";
const key = "f0c1616b4661a3d53caf0577bf8646af";
const iv = "a09d8f379c344d8ea6cfa9a3294c37cb";
console.log(aesDecrypt(ciphertext, key, iv)); // 输出 "Hello World!"
其中,传入的密文ciphertext、密钥key和初始向量iv都是16进制字符串。函数返回解密后的明文。请注意,该示例假定了密钥长度为128位、初始向量长度为128位。如果您的情况不同,请根据需要调整代码。
上一篇:AES解密在Go中的实现
下一篇:AES解密中出现异常信息“javax.crypto.BadPaddingException:Givenfinalblocknotproperlypadded.