gpt4 book ai didi

java - 混淆 : hide hardcoded values in java

转载 作者:IT老高 更新时间:2023-10-28 23:34:39 27 4
gpt4 key购买 nike

Possible Duplicate:
hiding strings in Obfuscated code

我试图隐藏我的应用程序的一些静态字符串,以使其更难反编译,这样就像密码算法名称这样的常量更难在混淆代码中找到。

我考虑过类似的事情:

String CONCAT= "concat"+"string";
String RAW_STRING= "raw_string";
String FROM_BYTES=new String("from_bytes".getBytes());
String FROM_CHARS=new String(new char[]{'f','r','o','m','_','c','h','a','r','s'});
String FROM_CHAR2=new String(new char[]{102,114,111,109,95,99,104,97,114,115,95,50});

最后两个选项似乎比原始选项“更暗”,但我想有更好的方法可以做到这一点。

我该如何改进呢?谢谢

最佳答案

首先,你不应该只写

String FROM_CHAR2=new String(new char[]{102,114,111,109,95,99,104,97,114,115,95,50});

char 数组实际上是一个字符串,这简直是天方夜谭。

你可以做以下的组合:

  1. 将您的“字符串”放入 int[] 数组中
  2. 或者更好的是,将你的 String 分成几个 int 数组
  3. 在应用程序的各个阶段计算/操作数组的值,因此它的值只会在运行时的某个时间间隔内生效,保证不会被反编译代码一目了然地破译
  4. 在最终将数组转换为单个数组以传递给 String 构造函数之前,来回传递数组,通过局部变量,传回实例变量等
  5. 使用后立即将String设置为null,只是为了减少实际String在运行时存在的时间

关于java - 混淆 : hide hardcoded values in java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13101727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com