【发布时间】:2018-02-21 16:31:13
【问题描述】:
我的程序(用 Java 编写)中有一个变量:
String myPassword
用 Android Studio 编译代码后,我得到一个 android 应用程序,我想让其他人使用它。
但我很害怕:用户是否有可能从应用程序中获取变量值(密码)?
假设密码值为“myPass”。它的二进制是:
01101101 01111001 01010000 01100001 01110011 01110011
应用程序二进制文件中会包含这个序列吗?
【问题讨论】:
-
是的,可以通过检查编译后的二进制文件或在运行时在内存中查找它来实现。不要将敏感信息存储在任何可公开访问的地方。
-
非常感谢您的回复@AlexK。那我该怎么办?
-
您不能分发包含密码的应用程序并确保密码安全。这是不可能的。人们可以反编译你的代码;或者他们可以只观察应用程序正在做什么,然后等待它使用密码。
-
您需要想出一个不涉及在您的应用程序中硬编码密码的身份验证方案,例如Android: Storing username and password?
-
还有关于 Java 密码的有用信息:stackoverflow.com/questions/8881291/…
标签: java compilation