java的jar包加密及使用

来源:互联网 发布:简单进销存软件 编辑:程序博客网 时间:2024/06/05 19:30

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

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

1. 直接修改jar文件:

具体步骤:

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

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

 

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

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

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

加密效果:

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

方法缺陷:

  如上

2.使用Proguard混乱工具

具体步骤:

  下载Proguard

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

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

  可以在CSDN上下载(http://download.csdn.net/download/kong_gu_you_lan/9637131)

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

  下载后解压,点开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是混淆类名

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

  

   左侧Shrinking,最上面的Shrink去掉

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

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

加密效果:

  还可以

方法缺陷:

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

 

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

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

转换步骤:

  下载IKVM转换工具http://weblog.ikvm.net/2015/08/26/IKVMNET81ReleaseCandidate0.aspx

  ! 注:下载地址有变化,原来的那个只适用于java7,会class format error 52.0的报错

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

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

 

参考博文:

  http://blog.csdn.net/a351945755/article/details/21953651  jar转换成dll