在Android中存储用户令牌[重复]
Posted
技术标签:
【中文标题】在Android中存储用户令牌[重复]【英文标题】:Storing user token in Android [duplicate] 【发布时间】:2018-07-30 06:55:37 【问题描述】:您好,我目前正在为 android 应用程序构建登录系统(它连接到服务器并检索 Web 令牌),我对此事有多个问题:
在 Android 中本地存储此类令牌的首选方式是什么? 是否有一个库允许我对其进行加密并将其安全地存储在 SharedPrefs 上,而无需单独存储用于加密的 Key 和 Salt? 将令牌从 LoginActivity 发送到 Intent Extra 内的 AnotherActivity 是否安全?另外一个问题是,将电子邮件/密码组合从 LoginActivity 发送到 LoginViewModel 并最终发送到 DataSource(EndpointInterface 等)是否安全,方法是将它们作为参数传递给此类类的方法。
提前致谢!
【问题讨论】:
【参考方案1】:SharedPreferences 最适合在本地存储数据。当您的应用程序存在于系统中时,数据将显示,您可以轻松访问整个应用程序。
SharedPreferences mPreferences = context.getSharedPreferences(PREF_NAME,PRIVATE_MODE); mSharedEditor = mPreferences.edit(); 用于保存令牌
mSharedEditor.putString("FCM_TOKEN",fcmToken);
mSharedEditor.commit();
**获取令牌**
mPreferences.getString("FCM_TOKEN",null)
【讨论】:
【参考方案2】:-
共享首选项非常安全,只能由您的应用或 root 用户访问。
不确定库,但您可以使用一些简单的 ndk 方法来加密/解密数据。它会给你一些额外的安全点
如果你使用明确的意图,它是安全的
附:如果您的应用是银行客户,那么您不应该遵循这个答案
【讨论】:
【参考方案3】:在这种情况下使用客户经理。
https://developer.android.com/reference/android/accounts/AccountManager.html
您甚至可以跨应用共享您的客户经理,只要它们由相同的密钥库证书签名即可。
【讨论】:
以上是关于在Android中存储用户令牌[重复]的主要内容,如果未能解决你的问题,请参考以下文章