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

时间:2012-10-21 02:38:57

标签: java android security encryption aes

我尝试使用AES算法为Android开发加密应用程序,我应该在哪里存储密钥。我的想法是用户提供密码并生成密钥。我可以提前做这个过程更安全。谢谢

2 个答案:

答案 0 :(得分:3)

  

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

然后你不存储密钥。当用户提供密码时 - 无论是初始加密还是以后解密 - 您都可以从密码生成密钥。

答案 1 :(得分:1)

如@CommonWare所示,您应该从密码生成密钥。正确的方法是使用PBKDF2算法和salt(*)。还有其他好的算法,如bcrypt和scrypt,但PBKDF2是最成熟的标准。对于Android实施,请参阅PBKDF2 function in Android

(*) salt 是一个随机数,是PBKDF2算法的一部分。这种盐不是秘密;你可以任何你喜欢的方式存储它。但是你需要跟踪它以便以后解密。通常,当您存储盐时,您会将盐与CBC使用的随机IV一起添加到密文中。