1
鑑於這種代碼:AES-128-GCM在節點V6上驗證IV嗎?
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。
您所指的文章不是關於GCM模式,因此它不能完全適用。 IV只需要對具有相同密鑰的每次加密都是唯一的。他們所指的身份驗證除CTR/CBC模式外還有一個MAC。 –
因此,我不需要擔心它的一次性密鑰? –
請注意,IV應該是12個字節;不是16.不同大小的IV由GCM算法支持,但它們可能不太安全,並且NIST不鼓勵它們(所以它們可能不被所有平臺支持)。 –