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