【问题标题】:Storing Encryption Key in Application在应用程序中存储加密密钥
【发布时间】:2015-06-10 04:38:27
【问题描述】:

我的应用程序中需要一些我不想硬编码的字符串值(其中一个在用于网络通信的公钥中)。所以我用AES算法做了一个加密版本。现在每当我需要原始字符串时,我都需要使用我的密钥进行解密,那么我应该将这个密钥存储在哪里?将其存储为硬编码字符串似乎不合逻辑,我不想将我的密钥存储在服务器上。我该怎么办?

【问题讨论】:

  • 无论如何,您的 apk 都可以被反编译,并且通过一些努力来提取您的 sting 也没什么大不了的。

标签: android encryption public-key-encryption


【解决方案1】:

您可以使用 JCA。使用其基于密码的加密。 这样您就不必将密钥存储在任何地方。 每当您需要解密数据时,输入您的密码即可。

http://docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#PBEEx

注意:用于加密的相同盐和迭代计数必须用于解密。

【讨论】:

    【解决方案2】:

    在您的应用程序中加密和解密内容而不在代码中硬编码密码的一种好方法是在应用程序上使用 PIN 保护屏幕。这样做,您可以派生一个最终密钥来加密敏感数据,并使用相同的密钥解密所有内容。希望这个想法能帮助你弄清楚你必须做什么。

    【讨论】:

      猜你喜欢
      • 2016-04-03
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      相关资源
      最近更新 更多