我打包好了一个jar文件,但是担心别人反编译,请问有什么方法可以加密么?谢谢

解决方案 »

  1.   

    还可以在关键代码处进行加工比如,我原先的代码int lenStartIndex = ENCODE_LENGTH - 2;
    int lengthInfo = Integer.valueOf(encodedPwd.substring(lenStartIndex), 16).intValue();
    int pwdLength = lengthInfo % (MIN_PWD_LENGTH + MAX_PWD_LENGTH);加工后,丧失极小部分的运行效率,但是即使不混淆,或者被反编译,对方也很难轻易得到算法
    int _1 = ENCODE_LENGTH;
    int $_idx = ((_1 << 1) - (-~_1) + _1) + ~_1; // 永远等价于 int $_idx = _1 - 2;但是却几乎无人能看出来
    int _ = 1;
    _ += (_ += (_ += (_ += _ << 1) << 1) << 1);
    char var = '\u0000';
    int O00 = (Character.digit(encodedPassword.charAt($_idx | var), _) << (_ >> 2))
            + (Character.digit(encodedPassword.charAt($_idx = ++$_idx | var), _));
    int _l = O00 % (MIN_PWD_LENGTH + MAX_PWD_LENGTH);类似还有把if-elsif,switch-case变为try-(if {throw})-catch-finally的方式,这样的代码反编译后,很有可能就变成了label:goto/break
      

  2.   

    io武汉武大吉奥信息工程技术有限公司
    地址:武汉东湖新技术开发区庙山小区武大科技园吉奥大厦
    邮编:430223
    email:[email protected]
    Http://www.geostar.com.cn