我尝试使用 aes256、aes-cross 和加密。 但是我无法解密使用带有 PKCS7 填充的 AES 256 (aes-256-ecb) 加密的密钥。我最终遇到了以下提到的错误。
错误:Decipheriv.createCipherBase 处的密钥长度无效(或)错误:Decipheriv.createCipherBase 处的 IV 长度无效
我找不到对我有帮助的 npm 包。
这是示例代码:
const crypto = require("crypto");
//Length of my key is 32
const key = Buffer.from("aaaaaabbbbbbccccccddddddssssssaa", "base64");
//_sek is the encrypted key
const _sek = "NEPkEuWaXZUawBHJZIcMjHJeKuPkaQezuRc3bjWEezlbHzmqCSyh2hazB+WeAJaU"
const cipher = crypto.createDecipheriv(
"aes-256-ecb",
Buffer.from(key, "base64"),
Buffer.from([])
);
return cipher.update(_sek, "base64", "utf8") + cipher.final("utf8");
如果有人可以帮助我在 nodejs 中提供基于代码的示例。它将帮助我清楚地理解。
更新:
function decrypt(encryted_key, access_key) {
var key = Buffer.from(access_key, "base64");
const decipher = crypto.createDecipheriv("aes-256-ecb", key, "");
decipher.setAutoPadding(false);
var decryptedSecret = decipher.update(encryted_key, "utf8", "base64");
decryptedSecret += decipher.final("base64");
return decryptedSecret;
}
decrypt(
"w2lI56OJ+RqQ04PZb5Ii6cLTxW2bemiMBTXpIlkau5xbmhwP4Qk3oyIydKV1ttWa",
"DvpMLxqKlsdhKe9Pce+dqTdNUnrofuOQPsgmSHhpxF8="
)
所需输出:“cdgLxoHvpeMoMd3eXISoMcgQFRxZeMSez5x3F2YVGT4=”
但是得到了这个:“G7z/eXQefnaeB7mYBq7KDrH+R4LtauNi6AU1v0/yObqoOidSOkIeW085DiMxdCDDjaI+hJiS2JRHDL1fdLrveg="
提前致谢。