鉴于此代码:
const bufIV = Buffer.alloc(16);
const cipher = crypto.createCipheriv(CIPHER, mykey, crypto.randomFillSync(bufIV));
let encrypted = cipher.update(doc, 'utf8', ENCODING);
encrypted += cipher.final(ENCODING);
IV也会通过身份验证吗? this article的结尾似乎表明它必须存在,但我真的不明白这是如何运作的。
使用良好的IV并不意味着您的加密是安全的。您还必须验证您的密文。当你这样做时,不要忘记验证IV。
答案 0 :(得分:1)
是的,AES-GCM将自动验证IV,验证标签的计算中包含IV的验证。
现在是坏消息:因为您需要使用setAuthTag
在NodeJS中显式设置收到的身份验证标记,所以将在您向我们展示的代码中进行验证。