在数据库中存储前缀为CipherText的AES IV是否安全?

Ter*_*nox 2 database cryptography initialization-vector

我想将AES加密数据存储在DB字段中.

在密文之前存储AES IV(每行唯一)是否安全?例如

IV_CipherText

两者都将在Base64中编码.

使用的密钥不会存储在数据库中.

Iva*_*vak 6

这很安全.初始化向量的目的是将一些随机性插入到生成的密码中(因此相同的消息不会导致相同的密码).它必须是不可预测的.

它可以公开存储在数据库中.通常它会附加到消息的第一个字节.如上所述,存在以避免统计攻击.

  • *"它必须是不可预测的."* - 是的,但这个建议并不适用于所有模式.针对CBC模式建议使用不可预测的IV,但CTR模式*需要*独特的IV(实际上称为nonce),就像几乎所有流模式一样. (3认同)