代码之家  ›  专栏  ›  技术社区  ›  Casebash

在Android上存储密钥

  •  13
  • Casebash  · 技术社区  · 14 年前

    我的Android应用程序使用一个密钥来生成一个令牌以进行身份验证。有没有比将其放入数据存储区更安全的存储方法?我想对于iPhone,我们把它存储在钥匙链中。我知道android.accounts.accountmanager,但这似乎给其他应用程序潜在的访问密码的能力(如果用户选择了错误的选项),因此似乎不那么安全。

    4 回复  |  直到 7 年前
        1
  •  6
  •   Prashast    14 年前

    Android(不幸的是)没有提供这样做的方法。我以前使用的方法是用应用程序中生成的另一个密钥加密这个令牌。

    你的应用程序密钥可以通过算法生成。然而,这只是像您的算法一样安全。一旦知道了这一点,就相当于以纯文本形式存储令牌。

        2
  •  4
  •   Janusz Daniel Rindt    14 年前

    您可以将密钥存储在应用程序的首选项中。这将保护密钥不被其他应用程序读取,因为Android系统的底层文件系统限制。

    但这并不能保护密钥不被用户自己读取。

        3
  •  1
  •   bradleyT    13 年前

    如果您可以运行apk工具,那么它在调试中,您将要根设备。iOS的钥匙链在越狱时没有任何保护

        4
  •  0
  •   dchest    7 年前

    您可以通过使用生成的密钥对其进行加密来存储机密数据 Android Keystore System 然后存储结果,不管你喜欢不喜欢。