如何修复';无效的密文大小';Javascript中的错误?(aes)
我正在尝试使用密钥和AES-JS库解密数据。 每当我输入一个16字节的密钥时,就会出现以下错误: 错误:“无效的密文大小(必须为16字节)” 我已尝试将密钥更改为非16字节值,但出现以下错误: 错误:“密钥大小无效(必须为16、24或32字节)” 以下是我目前的代码:如何修复';无效的密文大小';Javascript中的错误?(aes),javascript,html,encryption,vue.js,aes,Javascript,Html,Encryption,Vue.js,Aes,我正在尝试使用密钥和AES-JS库解密数据。 每当我输入一个16字节的密钥时,就会出现以下错误: 错误:“无效的密文大小(必须为16字节)” 我已尝试将密钥更改为非16字节值,但出现以下错误: 错误:“密钥大小无效(必须为16、24或32字节)” 以下是我目前的代码: export const getEventBlockData = (cm, eventBlockData) => { const encryptedBlockBuf = Buffer.from(eventBlockDat
export const getEventBlockData = (cm, eventBlockData) => {
const encryptedBlockBuf = Buffer.from(eventBlockData, 'base64');
const aes = new aesjs.AES(aesjs.utils.utf8.toBytes('1111111111111111'));
const decryptedBlockBuffer = new Buffer(aes.decrypt(encryptedBlockBuf));
};
生成错误的部分是带有aes.decrypt(…
注意:cm var应该是密钥,但出于测试目的,我将其替换为字符串“1111111111111”,eventBlockData是我试图解密的缓冲区,其形式如下:
Event Block Data :{"type":"Buffer","data":[49,56,53,50,55,51,53,49,50,50,48,48,48,49,48,48,48,48,49]} cm-service.js:61
Encrypted Block buff :{"type":"Buffer","data":[49,56,53,50,55,51,53,49,50,50,48,48,48,49,48,48,48,48,49]}
谢谢您的时间!:)事实上,错误显示
密文大小无效(必须为16字节)
,因此问题不在于键
,更改键
长度,就像您在帖子中所说的那样,不会解决问题,因为它与键无关
这是一种常见且已知的,与有关,当您使用长度不是16字节倍数的密码文本时,会发生这种情况
要解决这个问题,您需要为加密文本添加一个,有关更多详细信息,您可以阅读谢谢您的回答,我已经阅读了填充wikipedia页面,但我仍然不知道如何做。如果我理解正确,我需要向缓冲区添加字节:“加密块buff:{”type:“buffer”,“data:[2152061182391261172119109,52211,93,52211,77]}”,以便使其为16的倍数。但我不知道从哪里开始,也不知道字节使用哪种模式。谢谢:)@Quentin_otd很抱歉,我对这一问题没有更好的了解,我在用Java写这篇文章时遇到了同样的问题,我试图根据我读到的几篇文章给出答案。不是真的。任何有效的AES-CBC密文的长度都是16字节的倍数。因此他的密文在某种程度上被破坏了。这与填充无关。