2

我尝试使用 AES 算法为 android 开发一个加密应用程序,我应该在哪里存储密钥。这个想法是用户提供密码并生成密钥。我怎样才能更安全地执行此过程。提前致谢

4

2 回答 2

3

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

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

于 2012-10-21T12:24:01.687 回答
1

正如@CommonWare 所指出的,您应该从密码中生成一个密钥。正确的方法是使用 PBKDF2 算法和盐 (*)。还有其他好的算法,例如 bcrypt 和 scrypt,但 PBKDF2 是最成熟的标准。对于 Android 实现,请参阅Android 中的 PBKDF2 函数

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

于 2012-10-23T01:56:03.910 回答