admin管理员组

文章数量:1639678

发布给用户的是一个java工程

里面有一个包,包里有多个不能让用户查看的class文件(不能让用户轻易反编译获取源码)

现在想通过加密/混淆技术进行处理,但是,如果把这些class文件加密后,这个工程在调用这个包时想必是会出问题的。不知道有方法解决呢???

这个是不行的,java的运行jvm是需要明确的class文件的,除非你开发自己的运行环境,就可以在运行class之前进行预解析,否则很难实现。

并且,如果混淆了jar包里的class不光运行有问题,开发也会出现问题,原本明确的开放端口由于混淆了,所以会导致项目其他部分的类无法去正常调用。

有专门的class混淆器 大部分是收费的

jbuilder自带混淆器

proguard混淆效果还行

加密基本不靠谱,大部分是通过定制classloader,而必然在代码里有解密过程,真想看到源码,只需找到classloader对应的解密过程即可

1、将代码使用混淆器混淆一下,但是如果仅仅只是混淆的话,高手还是能够看得懂的,所以还需要做下面的

2、自己开发一个类加载器,对二进制码进行一下加密,加密部分使用c之类的语言开发,通过jni进行调用,这样class是没有办法反编译的。

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

本文标签: 文件加密Javaclass