Java安全:java防止反编译(JAVA加密锁)

来源:岁月联盟 编辑:zhuzhu 时间:2008-02-03

众所周知,java开发语言提供了很方便的开发平台,而且开发出来的程序很轻易在不同的平台上面进行移植,现在越来越多的人使用它开发软件。 Java有了它方便的一个方面,但是他同时也带给了开发者一个烦恼,这就是保护的办法不多,而且大多数不是很好用,这样自己辛劳开发出来的程序很轻易被人反编译过来而据为己有,一般情况下,大多数的人都是用混编器(java obfuscator)来把开发出来的程序进行打乱以达到没有办法来反编译观看源代码,但是这种办法在网上很轻易找到相关的软件来重新整理,那么这个混编只能控制一些本来也没有办法动您的软件的人,而对于一些把握工具的人几乎是透明的,还有就是利用硬件加密锁,但大多数公司提供的硬件加密锁只是提供了一些dll的连接或简单的api调用,只要反编译他们,就很轻易把一些api调用去掉,这样硬件加密锁也就不起作用了,但是现在到底有没有好的办法呢? 我公司的加密锁(HASP HL)提供的外壳加密工具中有一个叫做数据加密的功能,这个功能能更好的防止去除api的调用,各位都知道:硬件加密锁的保护原理就是要您被加密过的软件和加密锁的硬件要紧紧地结合在一起,而且不轻易被轻易的剔出原来的调用,这样才能更好的保证您的软件不被盗版,同时这种方式也很轻易被程序员把握,要对一个软件实现保护,只需要几分钟的时间就可以了,下面简单介绍一下他的原理: 运用外壳工具先把调用您的java解释器来进行加密,也就是说假如要运用这个解释器就需要有一把特定的加密锁存在,然后我们再运用它提供的外壳加密工具中的数据加密,把您写好的java程序(Class或JAR包)当作一个文件来处理而对他进行加密,这个加密是采用的锁里自带加密引擎(AES128位)进行加密,加密之后生成新的JAVA程序。这样您的软件就只能被您保护过的java解释器来进行解释,但是在没有加密锁的情况下就不能够运行您的软件,从而达到真正保护您的软件的目的。

(责任编辑:包春林)