第三章 class 加密应用范例

本文探讨了Java类文件加密的应用场景与实现方法,并详细介绍了如何通过自定义ClassLoader来加载加密后的类文件。同时,文章还讨论了在实际应用中需要注意的问题,比如解密时间和性能的影响等。
在实际应用中,建议新的启动程序继续采用java.exe的参数调用格式, 即java [-options] class [args...],这样的话,一方面程序在开发版本(非加密)和发布版本(加密)时的调用方式就保持一致了,便于别人的理解,另一方面启动程序的制作也简单多了,只需改动java.c中的LoadClass方法了。

下面是一般应用的示意图:

如果调用的方式是这样的:class1调用class2,而由class2调用class3,其中class2有自己定制的 ClassLoader(非class3所用的ClassLoader),则这时应该在class2和class3之间加一层interface,由 interface调用class3相应的ClassLoader来装载class3, 而interface本身则不能加密。这种形式的典型应用是Tomcat上的web应用,Tomcat装载servlet类时,是采用自己的 ClassLoader来装载的, 如果对servlet加密,Tomcat则在装载servlet时不会装载成功,必须采用interface的方式!下面则是其应用示意图:

第四章 应用范围

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

要达到以上目的, ClassLoader必须对class加以判断,非加密的class调用JVM系统ClassLoader的LoadClass函数, 而对加密的才加以解密处理。建议:ClassLoader最好可配置!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值