我有一个函数可以使用AES加密用户输入的关键文本。并根据要求解密。什么是维护AES加密的密钥和IV的理想方法(截至目前在应用程序中硬编码)。我每次都在数据库中保存加密数据。页面加载从数据库中检索加密值。单击按钮即可解密此值。有没有最好的我可以更好地使用键和IV。
答案 0 :(得分:5)
可以保存IV(或者可以甚至“公开”/公开传播);它是no 'secret'。密钥应该保密。因此,您可以保存/传输您的数据,例如<iv_here>;<encrypted_data_here>
。
请参阅wikipedia:
初始化向量(IV)是一个位块,由几种模式用于随机化加密,因此即使相同的明文被多次加密也会产生不同的密文,而不需要更慢的重新键入过程
初始化向量具有与密钥不同的安全性要求,因此IV通常不需要保密。但是,在大多数情况下,重要的是初始化向量永远不会在同一个密钥下重用。