在应用程序中存储加密密钥

时间:2015-06-10 04:38:28

标签: android encryption public-key-encryption

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

2 个答案:

答案 0 :(得分:0)

您可以使用JCA。使用其基于密码的加密。 这样您就不必将密钥存储在任何位置。 每当您需要解密数据时,请键入密码,您就可以开始使用了。

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

注意:必须使用与加密相同的salt和迭代计数进行解密。

答案 1 :(得分:0)

在应用中使用PIN保护屏幕加密和解密应用中的内容而无需在代码中使用硬编码代码的好方法。执行此操作,您可以派生最终密钥来加密敏感数据,并使用相同的密钥解密所有内容。希望这个想法可以帮助你弄清楚你需要做什么。