【发布时间】:2012-10-21 02:38:56
【问题描述】:
我尝试使用 AES 算法为 android 开发一个加密应用程序,我应该将密钥存储在哪里。这个想法是用户提供密码并生成密钥。我怎样才能更安全地执行此过程。提前感谢
【问题讨论】:
标签: java android security encryption aes
我尝试使用 AES 算法为 android 开发一个加密应用程序,我应该将密钥存储在哪里。这个想法是用户提供密码并生成密钥。我怎样才能更安全地执行此过程。提前感谢
【问题讨论】:
标签: java android security encryption aes
我尝试使用 AES 算法为 android 开发一个加密应用程序,我应该将密钥存储在哪里。这个想法是用户提供密码并生成密钥
然后你不存储密钥。当用户提供密码(用于初始加密或稍后解密)时,您可以根据密码生成密钥。
【讨论】:
正如@CommonWare 所指出的,您应该从密码生成一个密钥。正确的方法是使用 PBKDF2 算法和盐 (*)。还有其他好的算法,例如 bcrypt 和 scrypt,但 PBKDF2 是最成熟的标准。对于 Android 实现,请参阅PBKDF2 function in Android。
(*) salt 是一个随机数,是 PBKDF2 算法的一部分。这种盐不是秘密;你可以以任何你喜欢的方式存储它。但是您需要跟踪它以供以后解密。通常,您在存储时将盐与 CBC 使用的随机 IV 一起添加到密文中。
【讨论】: