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
# 最好另存外面,然后把里面的删了再拖进来,貌似不能直接保存
加密效果:
好像解压后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 加密完成
加密效果:
还可以
方法缺陷:
无法对抗功能更加强大的反编译软件