如何防止java代码被反编译


目前网上通用有几种方法:

  1. 直接屏蔽用户访问到程序代码(人为上,物理上)
  2. 程序封装,避免以jar包、war包的方式启动
  3. java类文件加密
  4.  java类文件混淆

1、程序封装

  windows部署,可以把jar包打包成exe文件,这样屏蔽了jar包直接暴露出来。网上有一些jar-to-exe的工具

  Linux部署,可以将jar包启动,配置成服务,用服务启动

2、java类文件加密

  这种是指,将类文件的内容通过加密,可以导致类文件无法被正常反编译。并且当加载类文件前,需要将类文件解密。

  • 将打包后的类文件,通过加密方法加密
  • 自定义classLoader,重写类加载方法,读取类文件内容后,先解密,再加载

3、代码混淆

  代码混淆是指,将程序类名、方法名、变量名等,进行重命名成随机的字符。这样反编译后的结果,你看到的代码可能是:类似a、b、c这样的代码,没有可读性。

  这样及时反编译成功了,也不能很方便的看懂代码的意义。从而达到目的。即使要看懂,也要花费很多时间。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM