51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> java >> 文章正文

如何给class文件加密

更新时间:2014-8-15:  来源:51代码网

发布给用户的是一个java工程
里面有一个包,包里有多个不能让用户查看的class文件(不能让用户轻易反编译获取源码)
现在想通过加密/混淆技术进行处理,但是,如果把这些class文件加密后,这个工程在调用这个包时想必是会出问题的。不知道有方法解决呢???
这个是不行的,java的运行jvm是需要明确的class文件的,除非你开发自己的运行环境,就可以在运行class之前进行预解析,否则很难实现。
并且,如果混淆了jar包里的class不光运行有问题,开发也会出现问题,原本明确的开放端口由于混淆了,所以会导致项目其他部分的类无法去正常调用。
有专门的class混淆器 大部分是收费的
jbuilder自带混淆器 
proguard混淆效果还行

加密基本不靠谱,大部分是通过定制classloader,而必然在代码里有解密过程,真想看到源码,只需找到classloader对应的解密过程即可
1、将代码使用混淆器混淆一下,但是如果仅仅只是混淆的话,高手还是能够看得懂的,所以还需要做下面的
2、自己开发一个类加载器,对二进制码进行一下加密,加密部分使用c之类的语言开发,通过jni进行调用,这样class是没有办法反编译的。

这样两种方法并用的话,想反编译那是非常难的。

赞助商链接
推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |