目前常见的所谓java 编译代码加密基本都是可破解加密,并不能真正的实现加密,因为java是开源的,使用密码加密必然存在运行时解密,只是增加了下解密难度而已,时间只有足够都是可以破译掉的。要么就修改jdk和jre底层技术,但是难度相当大。但是目前常用针对防止反编译还是有比较不错的方法的。此处不讨论加密狗、远程访问授权等加密方法,已经有人介绍过了,不再赘述,而且针对单机简单的部署并不好用,也不能让客户觉着我做个程序你还担心我反编译你的代码而使用加密狗。现在介绍两类个人觉着还行的方法。
一.运行时输入密码,密码隐藏不显示,也不记录到日志的方法
比如码云就有人贡献工具针对此方法:
***/roseboy/classfinal
主要支持三种模式 1.无密码模式 2.机器绑定 3.启动加密后的jar ,有意向的可以跳进链接看使用方法.
二.代码混淆技术
Allatori混淆技术,支持命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。对于教育和非商业项目来说这个混淆器是免费的。新版本支持war和ear文件格式,并且允许对需要混淆代码的应用程序添加有效日期。 此类混淆技术本人实际项目中正式测试验证比较不错,反编译后代码基本很难反推,甚至许多类文件反编译后为方法内容为空,效果很不错。
再有就是ProGuard等其它混淆技术,网上有很多教程可以查阅后抉择使用。
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/12053.html