【发布时间】:2010-04-20 01:20:46
【问题描述】:
我的 Android 应用程序使用密钥来生成用于身份验证的令牌。有没有比把它放在数据存储中更安全的方法来存储它?我认为对于 iPhone,我们将其存储在钥匙串中。我知道 android.accounts.AccountManager,但这似乎使其他应用程序能够访问密码(如果用户选择了错误的选项),因此似乎不太安全。
【问题讨论】:
标签: android
我的 Android 应用程序使用密钥来生成用于身份验证的令牌。有没有比把它放在数据存储中更安全的方法来存储它?我认为对于 iPhone,我们将其存储在钥匙串中。我知道 android.accounts.AccountManager,但这似乎使其他应用程序能够访问密码(如果用户选择了错误的选项),因此似乎不太安全。
【问题讨论】:
标签: android
Android(很遗憾)没有提供这样做的方法。我之前使用的方法是使用应用程序中生成的另一个密钥来加密这个令牌。
您的应用密钥可以通过算法生成。但是,这仅与您的算法一样安全。一旦知道这一点,这相当于以纯文本形式存储令牌。
【讨论】:
您可以将密钥存储在应用程序的首选项中。由于 Android 系统的底层文件系统限制,这将保护密钥不被其他应用程序读取。
但这不会保护密钥不被用户自己读取。
【讨论】:
如果您可以运行 apk 工具,则它处于调试状态,您将要根设备。越狱后iOS中的钥匙串不再有任何保护
【讨论】:
您可以通过使用Android Keystore System 生成的密钥对其进行加密来存储秘密数据,然后根据需要存储结果。
【讨论】: