我有一个函数,使用AES加密从用户输入的关键文本,并在需要时解密。如何以理想的方式维护AES加密的密钥和IV(目前在应用程序中硬编码)?我每次都将加密数据保存在数据库中。在页面加载时,从数据库检索加密值。该值在单击按钮时被解密。是否有更好的方法来使用密钥和IV。
IV可以保存(或者甚至可以被“公开”/传输),它是no '秘密'的。密钥应该保持私密。所以,您可以像这样保存/传输数据:<iv_here>;<encrypted_data_here>。 请参阅wikipedia: 初始化向量(IV)是一组位,用于几种模式中随机化加密,从而产生不同的密文,即使加密多次相同的明文,也无需较慢的重新键入过程。 初始化向量具有与密钥不同的安全要求,因此IV通常不需要保密。但是,在大多数情况下,重要的是在相同的密钥下永远不要重复使用初始化向量。