jar包 加密 ----xjar (亲测可用)

jar包加密不支持,springBoot+jpa(hibernate)


有时候,大家东西要给客户部署,但是客户买的只是你的产品,而不是你的源码。这时候为了防止,别人获取你的核心科技,那么就得加密了,当然加密有很多,包含混淆,等等。(最后,注:加密技术只是提高别人获取你的代码的门槛。)

加密后,不影响运行,但是别人不能轻松的看到你的代码

加密过程

这个jar的原理是xjar,将xjar进一步的封装,省略了,你还得自己写代码构建的部分。

下载jar包:

https://github.com/yumingzhu/xjarDemo/blob/master/target/xjarDemo-1.0-SNAPSHOT.jarhttps://github.com/yumingzhu/xjarDemo/blob/master/target/xjarDemo-1.0-SNAPSHOT.jar

执行命令,123456是密码(自定义),f.jar是未加密的文件,f1是加密后的jar

java -cp .\xjarDemo-1.0-SNAPSHOT.jar XjarDemo 123456 .\f.jar .\f1.jar

启动方式

1.  测试jar的时候,使用,前台启动,之后输入密码,密码正确就能运行
 

java -jar /hadoop/f1.jar

2. 对于 nohup 或 javaw 这种后台启动方式,无法使用控制台来输入密码,推荐使用指定密钥文件的方式启动
 

nohup java -jar /hadoop/f1.jar --xjar.keyfile=/hadoop/xjar.key      > nohup.out 2>&1 & 

xjar.key的配置如下(类似properties格式):

password: 123456

jar包 加密 ----xjar (亲测可用)_第1张图片

 默认为读取完成后,自动删除密钥,下次启动,要么输入密钥,要么重新加密。

这样就避免了繁琐的docker,我就不太喜欢这种玩意,詹金斯,docker,在前期(创业初期),我认为是制造麻烦的根源。

结果展示:

启动jar启动后,密码错误,直接报错,

密码成功后,正常运行,并且反编译后,看不到代码

jar包 加密 ----xjar (亲测可用)_第2张图片

加密前 

jar包 加密 ----xjar (亲测可用)_第3张图片

加密后

jar包 加密 ----xjar (亲测可用)_第4张图片

参考:

使用xjar 对Spring-Boot JAR 包加密运行工具,避免源码泄露以及反编译_yumingzhu1的博客-CSDN博客_xjar

Java Jar 包加密 -- XJar - 弹琴不谈情 - 博客园

当然xjar是开源的,被破解的风险比较大,最后公司还是采取了商业模式(花钱找的,专门做代码加密的公司)的加密(精锐5)

你可能感兴趣的:(信息安全,jar,hibernate,java)