你的位置:首页 > 软件开发 > Java > java的jar包加密及使用

java的jar包加密及使用

发布时间:2017-08-29 19:00:16
由于项目要求(虽然我觉得代码没什么机密可言...),写好的jar包需要做一定加密处理这里提供两种办法,一种奇葩,一种通用1. 直接修改jar文件:具体步骤:  在代码中插入一段不会运行的到的代码1 private class Invalid{2 private Invali ...

java的jar包加密及使用

由于项目要求(虽然我觉得代码没什么机密可言...),写好的jar包需要做一定加密处理

这里提供两种办法,一种奇葩,一种通用

1. 直接修改jar文件:

具体步骤:

  在代码中插入一段不会运行的到的代码

1  private class Invalid{2   private Invalid() {3    4   }5  }

 

  使用eclipse打包文件,右键export > java > JAR file > finish

  使用解压软件打开jar包。记事本打开...$Invalid.class文件,去掉里面的d

  # 最好另存外面,然后把里面的删了再拖进来,貌似不能直接保存

java的jar包加密及使用

加密效果:

  好像解压后class文件仍旧可以破解

方法缺陷:

  如上

2.使用Proguard混乱工具

具体步骤:

  下载Proguard

  推荐下载5.X版本,和java8更兼容,而4.X版本和java7兼容   

  # 不然会出现Unsupported class version number [52.0] 的错误

  可以在CSDN上下载 >  # 因为下这个做了好久的奖赏任务。。有个是邮箱验证成功出来的两个字是什么,直接填了“登录”,哈哈

  下载后解压,点开Proguard5.X>bin>proguardgui.bat

  使用Proguard

  左侧input/output,在右边add input添加需要加密jar包,add output自己命名一个导出jar包,下方的library中,有一个默认的rt.jar,如果没有引入什么自定义jar文件,直接这个默认就好

  左侧obfuscation,选择图中这几项即可,其中第2、3个勾勾对应的文件a.txt是混淆函数名,b.txt是混淆类名

  # 其实就是瞎编几个类名和函数名,一个名字占一行

  java的jar包加密及使用

   左侧Shrinking,最上面的Shrink去掉

  # 不然会如下报错,The output jar is empty. Did you specify the proper '-keep' options?

  其他默认,点击左侧Process > Process 加密完成

加密效果:

  还可以

方法缺陷:

  无法对抗功能更加强大的反编译软件

 

===================================================================

补:方才得知,合作方使用.net编程,jar包不能用,需要转换成dll格式,这里也顺便说了吧。。

转换步骤:

  下载IKVM转换工 >  解压,并设置系统 > 高级系统设置 > 环境变量 > 系统变量path:添加ikvm中bin文件路径

  转换命令:ikvmc -out:XXXX.dll XXX.jar  

 

参考博文:

   jar转换成dll

原标题:java的jar包加密及使用

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。