java - 在 Android 上本地安全地存储 key 或密码

标签 java android security keystore password-encryption

我正在制作一个 android 应用程序,目前,我的服务器用户名和密码在我的代码中写为常量(这不是很安全)。我已经在网上进行了研究,但我无法真正找到可以完全保护用户密码或至少防止黑客攻击的东西。谁能帮我解决如何在 android 本地安全存储密码的问题?谢谢!

最佳答案

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

如果设备可以读取它,那么设备可以读取它 - 不管它实际上是您的应用程序在读取,还是其他假装是应用程序.

您最多只能尝试混淆凭据,但这不太可能有用 - 那些可能有兴趣从您的应用程序中提取凭据的人也可能是那些有能力绕过这种混淆的人。

在不了解您的用例的情况下,我真的无法给您更具体的建议。对于远程 API,通常使用 API key ——但这需要用户创建一个帐户。对于无帐户应用程序,您想要的根本不可能。

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

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

关于java - 在 Android 上本地安全地存储 key 或密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30159371/

相关文章:

java - 以编程方式编写 gui,还是使用高级 gui 编辑器 (Java Swing)?

java - 从启动画面到实际的应用程序。不幸的是APP已停止

android ANativeWindow_lock api 不适用于 GLSurfaceView

java - 在 Joda Time 的帮助下使用夏令时的正确方法

mysql - 扫描网站数据库以查找黑客攻击迹象的方法

security - "shareable"url 安全指南

java - 如何获取数字的等效本地化字符串?

android - 更新版本 :gradle to 3. 3.0 时,Crashlytics 找不到 list

javascript - 这个受密码保护的下载脚本安全吗?

java - 无法使用 webdriver 找到 javascript 框架