我的程序(用Java编写)中有一个变量:
String myPassword
使用Android Studio编译代码后,我得到一个Android应用程序,我想让其他人使用它。
但我很害怕:用户是否可以从应用程序中获取变量值(密码)?
假设密码值是“myPass”。它的二进制文件是:
01101101 01111001 01010000 01100001 01110011 01110011
应用程序二进制文件中是否包含此序列?
答案 0 :(得分:2)
如果您使用javap -c -p -constants
反编译您的类,您会看到这些字符串:
public class DeleteMe {
private static final String test = "def";
public static void main(String[] args) {
String test = "abc";
}
}
会产生(重要的两行):
private static final java.lang.String test = "def";
ldc #2 // String abc
否则,在您的应用程序中存储密码非常糟糕,通常人们会使用某种类型的数据库来保存密码。
the must read关于密码String
和char[]
。