在Android上有与iOS的钥匙串等效的功能吗?
我对Preferences API的理解是未加密。对于我的应用程序来说,这些凭据是否可以在设备之间持久(例如,与Android中类似iPhone的Keychain不同的用例?)无关紧要
我还查看了KeyStore API,但似乎将用户凭据的实际存储留给了应用程序开发人员。
在Android上有与iOS的钥匙串等效的功能吗?
我对Preferences API的理解是未加密。对于我的应用程序来说,这些凭据是否可以在设备之间持久(例如,与Android中类似iPhone的Keychain不同的用例?)无关紧要
我还查看了KeyStore API,但似乎将用户凭据的实际存储留给了应用程序开发人员。
Answers:
简短的回答,没有答案。但是您可以期望文件系统是安全的。
每个应用程序在不同的用户下运行,并且用于存储应用程序数据的文件系统受常规UNIX用户权限的保护。因此,默认情况下,每个应用程序的文件访问都处于沙盒状态。文件系统也可以被加密。
开发者网站上的此页面对此进行了更好的解释:http : //developer.android.com/guide/topics/security/security.html
实际上有:
通过将Smart Lock for Passwords集成到您的Android应用中,您可以使用用户保存的凭据自动登录您的应用。用户可以同时保存用户名密码凭据和联合身份提供者凭据。
通过使用凭据API检索登录时保存的凭据,将Smart Lock for Passwords集成到您的应用程序中。使用成功检索到的凭据登录用户,或使用凭据API通过部分完成应用程序的登录或注册表单来快速吸引新用户。登录或注册后提示用户存储其凭据,以供将来进行自动身份验证。
https://developers.google.com/identity/smartlock-passwords/android/
扩展@DJPlayer的答案:
一些相关文章。第三个包含一个github应用程序,该应用程序演示了如何使用密钥库提供程序来生成密钥,然后对字符串进行加密。
另请参阅Android存储选项以了解存储加密密码的方法-我的建议是共享首选项。
请注意,根据第二篇具有root用户访问权限并且对应用程序如何使用密钥库有一定了解的知识(可以通过反编译apk来获得),可以劫持私钥并将其用于解密加密材料(例如:永久密码)