如何使用AES算法存储用于加密文件中的密钥



im尝试通过使用AES算法为Android开发一个加密应用程序,我应该在哪里存储密钥。这个想法是用户提供密码并生成密钥。我怎么可以更安全地执行此过程。

我尝试通过使用AES算法为Android开发一个加密应用程序,我应该在哪里存储密钥。这个想法是用户提供密码,并生成密钥

然后您不存储密钥。当用户提供密码(用于初始加密或以后的解密)时,您会从密码中生成密钥。

@commonware表示,您应该从密码中生成一个键。正确的方法是将PBKDF2算法与盐一起使用(*)。还有其他良好的算法,例如BCRYPT和SCRYPT,但是PBKDF2是最确定的标准。对于Android实现,请参见Android中的PBKDF2功能。

(*)是作为PBKDF2算法一部分所需的随机数。这种盐不是秘密。您可以以任何方式存储它。但是您需要跟踪它以备以后解密。通常,您将盐以及CBC使用的随机静脉注射到储存时,将其储存到密文中。

最新更新