我将使用 oAuth 从 google 获取邮件和联系人。我不想每次都要求用户登录以获取访问令牌和秘密。据我了解,我需要将它们与我的应用程序一起存储在数据库中或SharedPreferences
。但我有点担心安全方面的问题。我读到您可以加密和解密令牌,但攻击者很容易反编译您的 apk 和类并获取加密密钥。
在 Android 中安全存储这些令牌的最佳方法是什么?
将它们存储为共同的偏好。这些默认情况下是私有的,其他应用程序无法访问它们。在 root 设备上,如果用户明确允许访问某些尝试读取它们的应用程序,则该应用程序可能能够使用它们,但您无法防止这种情况。至于加密,您必须要求用户每次都输入解密密码(从而破坏了缓存凭据的目的),或者将密钥保存到文件中,并且您会遇到同样的问题。
存储令牌而不是实际的用户名密码有一些好处:
- 第三方应用程序不需要知道密码,用户可以确保他们只将其发送到原始网站(Facebook、Twitter、Gmail 等)
- 即使有人窃取了令牌,他们也看不到密码(用户也可能在其他网站上使用密码)
- 令牌通常有生命周期,并在一定时间后过期
- 如果您怀疑令牌已被泄露,可以撤销令牌
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)