Php 在AES 256位中使用带密钥派生的IV

Php 在AES 256位中使用带密钥派生的IV,php,security,encryption,Php,Security,Encryption,我正在开发一个php系统,其中所有数据都由一个来自用户密码的密钥加密。 我已经能够推导出密钥,但是使用AES加密数据需要密钥和IV。 这就是我产生怀疑的原因: 在这种情况下,我想我应该存储IV以便稍后解密数据。我在哪里购物?在数据库中还是在服务器上的文件中? 或者存储IV是不正确的,并且是否有其他方法可以为同一把钥匙获取相同的IV?不要从您获取钥匙的同一来源获取IV。您应该为每个加密操作使用随机生成的IV,并简单地将IV与密文一起存储 通常只需在密文前加上IV,以便在需要解密数据时轻松检索。IV

我正在开发一个php系统,其中所有数据都由一个来自用户密码的密钥加密。 我已经能够推导出密钥,但是使用AES加密数据需要密钥和IV。 这就是我产生怀疑的原因: 在这种情况下,我想我应该存储IV以便稍后解密数据。我在哪里购物?在数据库中还是在服务器上的文件中?
或者存储IV是不正确的,并且是否有其他方法可以为同一把钥匙获取相同的IV?

不要从您获取钥匙的同一来源获取IV。您应该为每个加密操作使用随机生成的IV,并简单地将IV与密文一起存储

通常只需在密文前加上IV,以便在需要解密数据时轻松检索。IV不需要保密,因此上述方法是完全安全的


重申一下,因为这一点很重要,不要从KDF或类似文件中派生IV,每次加密操作都要随机生成一个新的IV。不要从派生密钥的同一来源派生IV。您应该为每个加密操作使用随机生成的IV,并简单地将IV与密文一起存储

通常只需在密文前加上IV,以便在需要解密数据时轻松检索。IV不需要保密,因此上述方法是完全安全的


重申一下,因为这一点很重要,不要从KDF或类似文件派生IV,每次加密操作都要随机生成一个新的IV。

太好了,我明白了:)太好了,我明白了:)