用于用户凭证的Android钥匙串

Android上有没有和iOS的keychain等价的东西?

我对Preferences API的理解是它没有encryption。 对于我的应用程序来说,这些凭证是否持续存在于各种设备中并不重要(即与Android中iPhone类似的Keychain不同的用例)。

我也看了一下KeyStore API,但它似乎将用户凭据的实际存储保留给应用程序开发人员。

谢谢你的帮助!

简短的回答,没有一个。 但是你可以期望文件系统是安全的。

每个应用程序都在不同的用户下运行,用于存储应用程序数据的文件系统受到普通UNIX用户权限的保护。 所以每个应用程序的文件访问默认情况下都是沙盒的。 文件系统也可能被encryption。

开发人员网站上的这个页面可以更好地解释它: http : //developer.android.com/guide/topics/security/security.html

扩展@ DJPlayer的答案:

一些相关的文章。 第三个包括一个github应用程序,演示如何使用密钥库提供程序生成密钥,然后encryptionstring。

  • Android密钥库系统
  • 哪里是在您的Android应用程序中存储密码的最佳地点?
  • 如何使用Android密钥库来存储密码和其他敏感信息

另请参阅Android存储选项以获取存储encryption密码的方式 – 我的build议是共享首选项。

请注意,根据第二篇文章的root访问权限和关于应用程序如何使用密钥库的知识(可以从反编译你的apk文件中获得),可以劫持私钥并使用它来解密encryption的资料(例如:持久密码)

其实有:

通过将Smart Lock for Passwords集成到您的Android应用程序中,您可以使用已保存的凭据自动将用户login到您的应用程序。 用户可以同时保存用户名密码凭证和联合身份提供商凭证。

通过使用Credentials API在login中检索已保存的凭证,将Smart Lock的密码集成到您的应用程序中。 使用成功获取的凭证对用户进行签名,或通过部分完成应用的login或registry单,使用凭证API快速login新用户。 在login或注册后提示用户存储其凭据以供将来自动validation。

https://developers.google.com/identity/smartlock-passwords/android/