Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候。所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译。通常情况下,反编译可以利用现有的工具jd-gui.exe或者jad.exe。
(这两个反编译工具在我的资源里有下载:
有些情况下,为了保护java源码不被别人看到,通常会使用加密手段对java源码进行加密,加密的方式可以利用加密工具(比如java代码混淆工具)、使用加密算法(如DES算法)修改classloader对编译好的.class文件进行加密。
(注:这里推荐一款java代码混淆器,可以混淆函数变量、类、方法名以实现代码加密:proGuard:http://download.csdn.net/detail/dianacody/7760089)
一、用java混淆器工具proGuard实现加密
这里使用proGuard对jar包进行加密。
1. 解压下载的proguard,解压后进入lib文件把proguard.jar拷贝到自己新建的文件夹里如图:
2. 把需要混淆的jar和jar所依赖的包也放到新建的文件夹,都放在一起,如下图。