JAVA WEB 项目的代码混淆

前言

曾几何时认为世界多么的美好,可事实上虽有美好,但糟粕也是很多的,近期我们的项目,终端系统要部署到客户那里,让人没想到的是作为国内某知名专家的项目团队几乎原样将我们的宣传材料、业务流程照搬过去,着实令人汗颜,所以对项目源码的保护必须提上日程。项目为web项目。

一、选择加密工具

经过筛选,最终选择了proguard加密工具。

ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。

二、注意事项

具体的加密方法,这里不多做说明,网上资料还是很多的,可以参考一下,推荐文章:Android proguard 详解: http://blog.csdn.net/banketree/article/details/41928175 ,其实安卓与web很多地方都是差不多的。下面主要说明一下注意事项。

  1. spring 及springmvc配置,尽可能采用注解形式,如果采用XML方式,类名方法名等将无法混淆,混淆后工程是无法启动的,实在无法改为注解的部分需要保留。
  2. 自定义listener、servlet,改为注解形式,Servlet 3.0 以上版本都是支持注解的,相信现在大家用JDK5或以前的版本没有了吧。
  3. 关于全局静态变量,可能很多JSP页面会有引用,这个需要注意放到keep class里面。
  4. 关于jpa 实体类,需要keep 保留。

参考资料

  1.  proguard: http://baike.baidu.com/view/1834969.htm
  2. Android proguard 详解: http://blog.csdn.net/banketree/article/details/41928175

 

 

Leave a Reply


正在读取数据……