java - 有什么方法可以保证 Android apk 中的信息安全?

标签 java android

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/

相关文章:

java - super 和 extends 组合用于 Java 中的泛型

android - 确定 Android 应用程序是否已崩溃或用户退出

java - 如何重命名展开 ListView (android)的子ID?

java - java中第二个jsp页面结果集为空时如何直接重定向到上一个jsp页面

java - 打印数组中设定值之间的所有数字

java - 如何使用构造函数注入(inject)来限定bean

Android ValueAnimator 在重复期间暂停

Android Root ICS for Panda Board

java - 非阻塞文件缓存(BitmapLruCache)实现?

java - Guice 和 Wicket : using SessionScoped injections