java打包、加密、发布(源代码保护)

来源:互联网 发布:淘宝退货率怎么计算 编辑:程序博客网 时间:2024/06/05 20:25

如果你是一名java开发者,你应该知道java源文件编译后的class文件是十分轻易就可以反编译的,有很多java反编译工具都可以做到这一点,例如,jad,jd-gui等,所以如果你想保护你的java class文件不被其他人反编译的话,你需要使用一些java加密工具,不过并不是对java代码进行加密,因为加密的java文件是无法编译成可正常运行的class文件的,所以我们只能加密class文件,更专业一点的称谓,应该是说混淆java class,也就是对class文件进行模糊处理,目的是为了让反编译者无法获取正确的java源代码,而且又不会影响java class文件的使用。

目前有很多工具可以混淆java class,流行的一点大多要收费的,不过有一款开源的混淆工具,也是基于java编写的,十分好用,它就是proguard。因为我们发布java应用程序的时候,都是选择将class文件打包在jar或者war文件,所以proguard支持对jar里的所有class进行混淆,下面是它的使用方法。

1.定义混淆配置文件

proguard使用后缀为.pro的文件作为配置文件,在这个文件里配置需要混淆的jar文件,混淆后输出的jar文件,混淆需要引用的java类库等。下面是一个示例

1-injars C:/Program Files/Java/jdk1.6.0_21/bin/retrace.jar
2-outjars C:/Program Files/Java/jdk1.6.0_21/bin/retrace-obfuscated.jar
3-libraryjars C:/Program Files/Java/jdk1.6.0_21/jre/lib/rt.jar
4-libraryjars C:/Program Files/Java/jdk1.6.0_21/bin/proguard.jar
5-printmapping proguard.map
6-verbose
7-keep public class *

2.混淆

下载proguard后,解压将lib目录里的proguard.jar文件和pro配置文件复制到java安装目录的bin下,如果你设置了JAVA_HOME,也可以不用复制到该目录下,然后使用以下的命令来进行混淆,假设pro配置文件命名为myconfig.pro

1java -jar proguard.jar @myconfig.pro

3.验证

这时你可以使用jd-gui反编译工具来验证一下混淆结果,把混淆前和混淆后的jar拖到jd-gui工具,然后再对比源代码,你就可以知道混淆后反编译得到的与源代码差别很大。更重要的是,你要把混淆后的jar复制到你的项目,看是否还能够正常使用。



转自老K博客:http://www.laokboke.net/2012/01/19/java-class-obfuscate/

原创粉丝点击