这什么代码,没法看了…

哈喽,大家好,我是指北君。,今天和大家一起学习下java中的代码混淆技术,后面你也可以让你的代码不再裸露在外了,让人轻易窥视,当需要阅读jar文件的内容时,可能你会使用一些反编译工具,比如jd-gui,但是否有遇到反编译后的内容和想象的不一样,但正常引用该jar又都是正常的?,前段时间,使用了docx4j的库来操作.docx文件进行一些复杂的操作,比如对多个docx文件进行合并,在网上找了很多的方式发现最终生成的文档都有很多多余的内容, 导致原本几兆的文件合并后有几十兆,记得docx4j官网有提供商业版本的方法,准备窥探下其源码来研究下,然而当我下载好jar后打开时,我蒙了…,图片,我们知道,一般情况下编译打包后的jar文件可以通过反编译工具看到jar中的接口、类、方法都是可以被,这样相关的代码实现很容易被模仿借鉴,企业的核心代码很可能被人盗用。特别是一些涉密较强或者商业性的行业软件,当被拿到jar并反编译后如同开源一般。那么通过对class文件进行字节码级别的混淆加密,就能够在一定程度防止技术被模仿或复用, 从而对java软件起到很好的保护作用。,今天主要介绍通过第3种方法实现代码混淆,这里主要使用了proguard工具对应的maven插件proguard-maven-plugin:,Proguard是一个Java类文件压缩器、优化器、混淆器、预校验器。压缩环节会检测以及移除没有用到的类、字段、方法以及属性。优化环节会分析以及优化方法的字节码。混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向(破解),比如我们基于Restful开发一个用户服务接口,通过命令mvn package打包后,结构是这样的:,图片,需要在pom.xml中build标签中加入插件,具体配置如下:,其中配置文件proguard.cfg如下:,图片,通过proguard来实现class内容的混淆相对比较简单,当然还有很多其他的技术方法,比如上面说到的对class进行加密这种更安全的技术手段,感兴趣的你可以继续探究。,此篇文章简单介绍了java中的代码混淆技术,我们可以根据具体的项目需求对编译后的代码进行混淆或加密处理,从而保护自己的劳动成果。开头看到的docx4j企业级功能提供 的jar具体是怎么实现代码保护的,目前还没发现其具体采用了什么技术实现,后面继续研究。

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/20970.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年3月5日 上午12:00
下一篇 2023年3月7日 下午10:34