跳至主要內容

碎片

zzz大约 2 分钟收集

碎片

框架

代码保护

TrueLicense

通过TrueLicense实现Java工程的License机制——由授权方生成license文件,使用方通过license文件使用项目。可以实现使用时长约束、使用机器数量约束、使用IP约束、使用机器序列号约束等。

大致流程:

  1. 生成密钥对
  2. 授权者保留私钥,通过私钥对设置限制信息的license文件进行签名
  3. 使用者使用公钥验证license文件,客户端对license文件中存储的限制信息进行校验、处理。

代码混淆

相关信息

配置复杂,容易出错,近期(2023-08)有更新

proguard-maven-plugin插件open in new window

ProGuardopen in new window

ProGuard是一个Java字节码压缩和代码混淆工具,可以对Java应用程序进行预处理,以减小应用程序的大小并提高性能。ProGuard-Maven-Plugin是一个用于将ProGuard集成到Maven构建过程中的插件。

通过混淆类名、属性、方法来提供对代码的保护,混淆之后的内容经过反编译之后不具有可读性。

代码加密⭐

相关信息

配置简单,但很久没有更新。

classfinal-maven-plugin插件open in new window

ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译。

  • 无需修改原项目代码,只要把编译好的jar/war包用本工具加密即可。
  • 运行加密项目时,无需求修改tomcat,spring等源代码。
  • 支持普通jar包、springboot jar包以及普通java web项目编译的war包。
  • 支持spring framework、swagger等需要在启动过程中扫描注解或生成字节码的框架。
  • 支持maven插件,添加插件后在打包过程中自动加密。
  • 支持加密WEB-INF/lib或BOOT-INF/lib下的依赖jar包。
  • 支持绑定机器,项目加密后只能在特定机器运行。
  • 支持加密springboot的配置文件。

参考文章: