我将使用oAuth从Google提取邮件和联系人。我不想让用户每次登录都获得访问 token 和密码。据我了解,我需要将它们与应用程序一起存储在数据库或SharedPreferences
中。但是我对此有点担心。我读到您可以加密和解密 token ,但攻击者很容易反编译apk和类并获取加密密钥。
在Android中安全存储这些 token 的最佳方法是什么?
最佳答案
将它们存储为shared preferences。默认情况下,这些是私有(private)的,其他应用无法访问它们。在具有root用户权限的设备上,如果用户明确允许访问尝试读取它们的某些应用程序,则该应用程序可能能够使用它们,但是您不能对此加以防范。至于加密,您要么要求用户每次都输入解密密码(从而破坏了缓存凭据的目的),要么将密钥保存到文件中,就会遇到相同的问题。
存储 token 代替实际的用户名密码有一些好处: