“cryptojs malformed utf-8 data”错误表明CryptoJS在尝试将输入数据(可能是密文或密钥)解释为UTF-8编码的字符串时失败了。这通常发生在数据本身不是有效的UTF-8编码字符串,或者在不适当的时候进行了编码/解码转换。 2. 识别常见原因 a. 输入数据格式不正确 如果输入的数据(如密文或密钥)已经是以Base64或其他编...
用CryptoJS解析时,发现程序报错:Malformed UTF-8 data 解决办法:去除换行符 or 空格,就可以了。
当您在解密时遇到“Malformed UTF-8 data”错误,这通常意味着您在解密过程中遇到了非法的UTF-8字符。在您的情况下,问题可能在于NoPadding和Pkcs7这两种填充方式的处理方式不同。 在CryptoJS.pad.Pkcs7模式下,加密的数据块大小会被调整到与密钥长度相匹配。也就是说,如果密钥长度为256位(32字节),那么每个数据块...
let encJson = cryptoJS.AES.encrypt(JSON.stringify(newUserInfo), 'aes').toString(); //对加密数据进行base64处理, 原理:就是先将字符串转换为utf8字符数组,再转换为base64数据 let encData = cryptoJS.enc.Base64.stringify(cryptoJS.enc.Utf8.parse(encJson)); localStorage.setItem('userInfo', encDat...
加解密mode为CryptoJS.mode.CBC、padding为CryptoJS.pad.Pkcs7,保持一致 出现Error: Malformed UTF-8 data报错解决方案: 使用CryptoJS.enc.Utf8.parse 对字符串进行base64编码 替换换行符和空格:字符串保存在localstorage中会存在换行符和空格,取出解码时需要将加密字符串中的空格去除或替换成+(重要 最终代码: /...
const bytes = CryptoJS.AES.decrypt(decodedData, secretKey); const decryptedData = bytes.toString(CryptoJS.enc.Utf8); const [username, id] = decryptedData.split(':'); // Split if (!username || !id) { throw new Error('Decryption error: Invalid data format'); } return { username, id...
let encJson = cryptoJS.AES.encrypt(JSON.stringify(newUserInfo), 'aes').toString(); //对加密数据进行base64处理, 原理:就是先将字符串转换为utf8字符数组,再转换为base64数据 let encData = cryptoJS.enc.Base64.stringify(cryptoJS.enc.Utf8.parse(encJson)); ...
CryptoJS.enc.Utf8); } catch (e) { console.log(e, "decrypt 的 err值为"); return data; } } }; 已经尝试解决方法:1.后台已经设置了 格式为 UTF-82.https://segmentfault.com/a/11...3.base64.decode 先解码再解密4.replace 替换data.replace(/"/g, "+")...