【发布时间】:2020-11-19 14:09:48
【问题描述】:
我在解密 AES256 编码 URL 的过程中遇到了一些问题。对于使用 CryptoJS 的解密过程,但是输出会抛出以下异常:
Malformed UTF-8 data
我错过了什么吗? 代码:
router.post("/signin/:eoLogin2", async (req, res) => {
const param = req.params.eoLogin2;
const key = "26kozQaKwRuNJ24tsfd22asdaD2f6232";
try {
// 1. DECODE URL, CONVERT DATA AND IV TO BASE64 atob()
const decodedURL = decodeURI(param);
const data = atob(decodedURL.split(":")[0]);
const IV = atob(decodedURL.split(":")[1]);
console.table(["Base64 decoded DATA: ", data]);
console.table(["Base64 decoded IV: ", IV]);
// 2. DECRYPT DATA
const decrypted = CryptoJS.AES.decrypt(data, key, {
iv: IV,
mode: CryptoJS.mode.CBC,
}).toString(CryptoJS.enc.Utf8);
console.log(decrypted);
return;
} catch (err) {
console.log(err.message);
res.status(500).send({ msg: "Internal server error" });
}
});
网址:
http://localhost:8000/api/v1/users/signin/dwmV7J2tAsk%2F%2F2cU6I1ce8NHtE0D55sXM6GL9eJQe744bp6RQZ2uvhaxa6%2Fvs8m5BtcbFcOpgY%2BpEP3gaKXgVe4QFPLfQTTgB0aeZTvyGOIk%2FdHyF%2B%2FNpZj0jHj6smq5QOyeYf4kZYTzBFxn9YLgZLigYl%2F0gvi1eOq5BMJRhFqKC8T5F9WrtWKhVgynSKT5roQYYRa2xXwNnoQezqx8xtd0BEneWxMN9Tm5XvRHkIOKmoSDD1b5WPAvSWi8%2FdK9%3ANjE3YjVkNjhkNTc0MTI3Mg%3D%3D
【问题讨论】:
标签: javascript node.js base64 aes cryptojs