在Android上存储密钥

时间:2010-04-20 01:20:47

标签: android

我的Android应用程序使用密钥生成令牌以进行身份​​验证。是否有更安全的方式来存储它,而不仅仅是将它放在数据存储中?我认为对于iPhone,我们将它存储在钥匙串中。我知道android.accounts.AccountManager,但这似乎给其他应用程序提供了访问密码的能力(如果用户选择了错误的选项),因此似乎不太安全。

4 个答案:

答案 0 :(得分:6)

Android(不幸的是)没有提供这样做的方法。我之前使用的方法是使用应用程序中生成的另一个密钥加密此令牌。

您的app键可以通过算法生成。但是,这只与您的算法一样安全。一旦知道,这相当于以纯文本形式存储令牌。

答案 1 :(得分:4)

您可以将密钥存储在应用的偏好设置中。由于Android系统的基础文件系统限制,这将保护密钥不被其他应用程序读取。

但这不会保护密钥不被用户自己读取。

答案 2 :(得分:1)

如果你可以在调试中运行apk工具,那么你将根据设备。当iOS越狱时,iOS上的钥匙串没有任何保护。

答案 3 :(得分:0)

You can store secret data by encrypting it with a key generated by Android Keystore System and then storing the result whether you like.