【问题标题】:Storing user token in Android [duplicate]在Android中存储用户令牌[重复]
【发布时间】:2018-07-30 06:55:37
【问题描述】:

您好,我目前正在为 Android 应用程序构建登录系统(它连接到服务器并检索 Web 令牌),我对此事有多个问题:

  • 在 Android 中本地存储此类令牌的首选方式是什么?
  • 是否有一个库允许我对其进行加密并将其安全地存储在 SharedPrefs 上,而无需单独存储用于加密的 Key 和 Salt?
  • 将令牌从 LoginActivity 发送到 Intent Extra 内的 AnotherActivity 是否安全?

另外一个问题是,将电子邮件/密码组合从 LoginActivity 发送到 LoginViewModel 并最终发送到 DataSource(EndpointInterface 等)是否安全,方法是将它们作为参数传递给此类类的方法。

提前致谢!

【问题讨论】:

    标签: java android security jwt token


    【解决方案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】:
      1. 共享首选项非常安全,只能由您的应用或 root 用户访问。
      2. 不确定库,但您可以使用一些简单的 ndk 方法来加密/解密数据。它会给你一些额外的安全点
      3. 如果你使用明确的意图,它是安全的

      附:如果您的应用是银行客户,那么您不应该遵循这个答案

      【讨论】:

        【解决方案3】:

        在这种情况下使用客户经理。

        https://developer.android.com/reference/android/accounts/AccountManager.html

        您甚至可以跨应用共享您的客户经理,只要它们由相同的密钥库证书签名即可。

        【讨论】:

          猜你喜欢
          • 2018-06-24
          • 2011-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-07
          • 2020-12-21
          • 1970-01-01
          相关资源
          最近更新 更多