是否存储初始化向量-单独的字段?

web*_*orm 4 encryption aes aescryptoserviceprovider initialization-vector

使用.NET加密敏感信息时 AesCryptoServiceProvider库我为每个加密的值生成一个唯一的初始化向量(IV)。在保存加密数据的数据库记录中,我有一个名为“ IV”的字段,该字段存储用于稍后解密的初始化向量。

可以将初始化矢量与密文一起存储吗?通过将IV附加到密文中也许呢?如果是这样,是否有标准方法?

Art*_* B. 5

可以将初始化矢量与密文一起存储吗?通过将IV附加到密文中也许呢?

是的,您可以完全做到这一点。将其放在密文之前。

如果是这样,是否有标准方法?

不,没有标准。一种常见的方法是在IV之前添加。如果您正在应用加密消息标准(CMS),那么关于IV的存储方式会有一些了解。RFC3370

  • 没看过 IV通常具有预定义的长度。对于CBC模式,它始终与块大小相同。对于CFB模式,它与段大小相同;对于CTR模式,通常在64至96位之间。如果允许使用可变大小的CTR IV(技术上为随机数),则可以在IV之前添加一个字节,该字节表示IV的长度。 (2认同)