background image

1.3

采用 ClassLoader 加密

JAVA 虚 拟 机 通 过 一 个 称 为 ClassLoader 的 对 象 装 来 载 类 文 件 的 字 节 码 , 而

ClassLoader 是 可 以 由 JAVA 程 序 自 己 来 定 制 的 。 ClassLoader 是 如 何 装 载 类 的 呢 ?
ClassLoader 根据类名在 jar 包中找到该类的文件,读取文件,并把它转换成一个 Class 对
象。该方法的原理就是,对需加密的类文件我们先行采用一定的方法(可以是 PGP, 
RSA

 

, MD5 等方法)进行加密处理,我们可以在读取文件之后,进行解密后,再转换成

一个 Class 对象。

对性能及稳定性的影响

2.1 加密过的程序会遇到的问题

由于解密需要一定的时间,如果不加区分的全部进行加密处理,势必会影响
到程序的速度和响应。所以应该在需要加密的地方才加密,比方说,用户密码
验证,专利算法,或者是数据库密码等等,这样的才不会导致系统的性能下
降。对于稳定性还没有看见有对稳定性影响的说明。

2.2 混淆过的程序会遇到的问题

通常效率会变差,更严重的情况是可能无法执行。对于稳定性还没有看见有对
稳定性影响的说明。

工具介绍

3.1 大名鼎鼎的 JODE

业内比较牛、开放源代码的反编译工具(附带一个 obfuscator 的工具包)。其

obfuscator 的工具包只有使用命令行的方式。
下载地址

http://sourceforge.net/projects/jode/