AFAIK Android 反编译允许从 apk 中提取每一位信息。 如何在 Java 或任何其他 XML 文件中存储 ftp 密码或其他 secret 字符串等信息?除了调用服务还有其他方法吗?
编辑问题:
String uname = "mks";
String part1="pass";
String part2="my";
String part3="word";
根据 David 的回答,我混淆了一个字符串,但在 dcompilation 之后我能够看到我的密码
String[] arrayOfString = new String[2]; arrayOfString[0] = "mks"; arrayOfString[1] = ("my" + "pass" + "word");
最佳答案
你在这里谈论混淆字符串。完成此操作的最简单方法之一是在代码中将其拆分为多个部分,然后将它们组合在一起以产生最终结果。您的所有琴弦仍然存在,但很难将它们重新组合起来。
例如,如果您要隐藏的密码是“102938475601”,这是一种方法:
// Declare the parts
String part2 = "3847";
String part1 = "1029";
String part3 = "5601";
// Log in to the server
ftpServer.sendLogin("username", part1+part2+part3);
这是一种非常简单的混淆形式。如果您更热衷于保护数据,可以尝试其他方法,例如使用非标准加密形式加密密码,并如上所述拆分 key 。
但最终您是对的 - 无法保证在 Android 应用程序中打包数据而不被反编译该应用程序的任何人访问。您所能做的就是让他们更难解释他们能找到的任何数据。
关于java - 有什么方法可以保证 Android apk 中的信息安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12614570/