在Android上本地安全地存储密钥或密码

时间:2015-05-11 03:47:35

标签: java android security keystore password-encryption

我正在制作一个Android应用程序,目前,我的服务器用户名和密码在我的代码中写为常量(这不是很安全)。我在网上进行了研究,但我无法找到能完全保护用户密码或至少防止黑客入侵的内容。任何人都可以帮我解决如何在Android上安全地存储密码?谢谢!

1 个答案:

答案 0 :(得分:3)

看来你的问题实际上是“我可以限制服务器访问我的应用程序吗?”。这是不可能的。一旦客户端(例如用户设备)上存在应用程序或文件,就无法通过您的授权来阻止该客户端访问该应用程序或文件中的任何内容。

如果设备可以读取它,那么设备可以读取它 - 无论它实际上是您的应用程序正在读取,还是其他假装作为应用程序

您可以做的最多就是尝试对凭据进行模糊处理,但这不太可能有用 - 那些可能有兴趣从您的应用程序中提取凭据的人也可能是那些有能力绕过这种混淆的人。

在不知道你的用例的情况下,我真的无法给你一个更具体的建议。对于远程API,通常使用API​​密钥 - 但这需要用户创建帐户。对于无帐户的应用程序,您想要的是根本不可能的。

我还应该注意“防止黑客”并不是一个有意义的目标 - 这可能意味着许多事情。您需要了解威胁建模的工作原理,并准确确定您的“攻击者”是谁,他们的目标是什么以及他们的能力是什么。只有这样,你才能尝试找到针对它的解决方案。

编辑:只是想添加一个额外的警告:任何人告诉你混淆对于这种情况是“有效的”,试图向你推销一些东西。不幸的是,他们通常在这种尝试中相当成功。模糊模型不能不能工作。