推荐一款加密工具: 加密jar包+设置机器码+使用demo

简介: 推荐一款加密工具: 加密jar包+设置机器码+使用demo


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

https://gitee.com/roseboy/classfinal

加密

生成机器码

java -jar classfinal-fatjar-1.2.1.jar -C

生成原始的jar包

mvn package -DskipTests=true

生成加密的jar包

注意: 指定密码,指定机器码

java -jar classfinal-fatjar-1.2.1.jar -file demo1-0.0.1-SNAPSHOT.jar  -packages com.example.demo1  -exclude com.example.demo1.Demo1Application -pwd 123456 -code C591A061AF277BF9C4A3A2D4B0B44F28D41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E -Y

-pwd 指定密码

-code 指定机器码

运行程序

java -XX:+DisableAttachMechanism -javaagent:demo1-0.0.1-SNAPSHOT-encrypted.jar="-pwd 123456" -jar demo1-0.0.1-SNAPSHOT-encrypted.jar

最好不写密码,在控制台中写:

java -XX:+DisableAttachMechanism -javaagent:demo1-0.0.1-SNAPSHOT-encrypted.jar -jar demo1-0.0.1-SNAPSHOT-encrypted.jar

在其他机器上运行效果 :

输错密码的情况下:

有效期设置

思路: 可以通过定时器的形式进行判断,如果超过有效期就退出程序(基于程序已经启动的情况下)

@Component
public class ExpirationCheck {
    //出厂时间
    private static final LocalDateTime expirationTime = LocalDateTime.of(2023, 12, 27, 14, 55);
    // @Scheduled(cron = "0 0 0 * * ?") // 指定每天的固定时间点(0点)
    @Scheduled(cron = "0 * * * * *") // 每分钟的第0秒执行一次
    public void checkExpiration() {
        System.out.println("-----进入定时任务中----");
        LocalDateTime currentTime = LocalDateTime.now();
        if (currentTime.isAfter(expirationTime)) {
            System.out.println("当前时间已超过有效期,程序即将退出");
            System.exit(0); // 退出程序
        }
    }
}

总结:

本文主要根据是根据开源加密工具: 实现jar包通过机器码限制机器启动,以及设置密码启动,并且可设置个有效期,限制程序的使用时间。

具体的内容去看请看看开源项目介绍。


相关文章
|
24天前
|
Java Docker 容器
|
1月前
|
运维 Java Shell
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
28 0
|
2月前
|
Java Maven 微服务
springboot项目开启远程调试-jar包
springboot项目开启远程调试-jar包
24 0
|
2天前
|
Java Maven
springboot jar包启动提示没有主清单属性
springboot jar包启动提示没有主清单属性
|
2天前
|
分布式计算 DataWorks Java
DataWorks产品使用合集之阿里云DataWorks专有云环境下,上传MaxCompute的UDF(用户自定义函数)的JAR包的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
11 0
|
13天前
|
Java
JSTL jar包版本错误attribute items does not accept any expressions
确保你在 `items` 属性中使用了一个实际的集合或数组变量,而不是表达式,以解决这个问题。
11 0
|
23天前
|
Java Android开发
读取jar包内外文件
读取jar包内外文件
|
24天前
|
Java Docker 容器
如何通过docker启动一个本地springboot的jar包
如何通过docker启动一个本地springboot的jar包
|
1月前
|
Java
java中jar启动设置内存大小java -jar 设置堆栈内存大小
java中jar启动设置内存大小java -jar 设置堆栈内存大小
13 1
|
1月前
|
监控 Java
Java项目jar性能监控工具CPU内存等
Java项目jar性能监控工具CPU内存等
12 0