碎片
2023年12月11日大约 2 分钟
碎片
框架
- Google diff-match-patch 比对框架
- dumi 为组件研发而生的静态站点框架
- mdit-plugins markdown-it插件
代码保护
TrueLicense
通过TrueLicense实现Java工程的License机制——由授权方生成license文件,使用方通过license文件使用项目。可以实现使用时长约束、使用机器数量约束、使用IP约束、使用机器序列号约束等。
大致流程:
- 生成密钥对
- 授权者保留私钥,通过私钥对设置限制信息的license文件进行签名
- 使用者使用公钥验证license文件,客户端对license文件中存储的限制信息进行校验、处理。
代码混淆
相关信息
配置复杂,容易出错,近期(2023-08)有更新
ProGuard是一个Java字节码压缩和代码混淆工具,可以对Java应用程序进行预处理,以减小应用程序的大小并提高性能。ProGuard-Maven-Plugin是一个用于将ProGuard集成到Maven构建过程中的插件。
通过混淆类名、属性、方法来提供对代码的保护,混淆之后的内容经过反编译之后不具有可读性。
代码加密⭐
相关信息
配置简单,但很久没有更新。
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的配置文件。
参考文章: