张军博客
视频介绍
java加密运行支持但不限于的框架:spring+struts+mybatis+hibernate+mysql+oracle+sqlserver+postgresql+springMVC+springboot+springcloud。
java加密运行支持但不限于的系统:window/linux/Mac/龙芯Linux系统/龙芯。
java加密运行支持但不限于的项目:JavaWeb项目、Tomcat项目、SpringBoot项目、Spring微服务项目、单独的Jar包项目、几乎所有的Java项目都支持加密运行,保护了源码,无法反编译.class、.jar包。
java加密运行支持但不限于的容器:Docker、BlueData、ClusterHQ、CoreOS、Kismatic、PortWorx、Rancher Labs、Shippable、Sysdig Cloud、Tutum、Twistlock、Weaveworks;等等。
java加密运行支持项目转换成exe:SpringBoot项目、Spring微服务项目、单独的Jar包项目等等。
1、公司开发的java web要项目打包成war包往外卖,怎么对war包进行处理,防止其自己拷贝后往外出售呢,如果不通过加密的方式,还有其他方式防止其出售呢.
2、大家都知道的,class很好反编译。出于对知识产权和自身软件的保护,不希望任何人都可以看到源代码或者被反编译工具进行解密。
对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很容易被窃取。
有几种技术可以“模糊”Java类文件,使得反编译器处理类文件的效果大打折扣。然而,修改反编译器使之能够处理这些经过模糊处理的类文件并不是什么难事,所以不能简单地依赖模糊技术来保证源代码的安全。
我们可以用流行的加密工具加密应用,比如java-web加密解密工具。这时,最终用户在运行应用之前必须先进行解密。但解密之后,最终用户就有了一份不加密的类文件,这和事先不进行加密没有什么差别。
再说硬件加密锁,大多数厂商提供的加密锁只能进行dll的连接或简单的api调用,只要简单地反编译,就很容易把api去掉,这样加密锁根本起不了作用,那到底是否还有更好的解决办法呢?
根据运行项目时获取机器码,机器码发给项目管理员获取项目授权reg.lic文件,把reg.lic文件放到项目所用的【java加密运行-管理员-15.0.0.3.zip】解压后,里面有ZJ_HOME的根目录下(例如:**/ZJ_HOME/ZJ_HOME-5.2.x-1.0.0.3/**下)即可完成项目注册
set ZJ_HOME=ZJ_HOME根目录
set "JAVA_OPTS=%JAVA_OPTS% -agentpath:%ZJ_HOME%\jvmlib.dll"
set ZJ_HOME=C:\ZJ_HOME-5.2.x-12.0.0.2
set "JAVA_OPTS=%JAVA_OPTS% -agentpath:%ZJ_HOME%\jvmlib.dll"
ZJ_HOME=ZJ_HOME根目录
JAVA_OPTS="$JAVA_OPTS -agentpath:$ZJ_HOME/jvmlib.so"
ZJ_HOME=/ZJ_HOME-5.2.x-12.0.0.2
JAVA_OPTS="$JAVA_OPTS -agentpath:$ZJ_HOME/jvmlib.so"
拷贝加密后的项目到tomcat的webapp中启动项目了就可以了。
@echo off
set ZJ_HOME=D:\ZJ_HOME-5.2.x-12.0.0.2
java -agentpath:%ZJ_HOME%\jvmlib.dll -jar zjweb.min.jar
export ZJ_HOME=/ZJ_HOME-5.2.x-12.0.0.2
java -agentpath:$ZJ_HOME/jvmlib.so -jar server.jar api.MainApplication > api.log &
@echo off
set ZJ_HOME=D:\ZJ_HOME-5.2.x-12.0.0.2
java -agentpath:%ZJ_HOME%\jvmlib.dll -jar zjweb.min.jar
export ZJ_HOME=/ZJ_HOME-5.2.x-12.0.0.2
java -agentpath:$ZJ_HOME/jvmlib.so -jar server.jar api.MainApplication > api.log &
@echo off
set ZJ_HOME=D:\ZJ_HOME-5.2.x-12.0.0.2
java -agentpath:%ZJ_HOME%\jvmlib.dll -jar zjweb.min.jar
export ZJ_HOME=/ZJ_HOME-5.2.x-12.0.0.2
java -agentpath:$ZJ_HOME/jvmlib.so -jar server.jar api.MainApplication > api.log &
做法是比如已经加密的AAA.jar包要提供给第三使用
1、把AAA.jar里面的所有实现全部删除,只保留空方法供在开发中调用
2、编译这些空方法无实现打包成ZZZ.jar,核心代码都在已经加密的AAA.jar,而ZZZ.jar只是供调用,方便在eclipse中编译通过
3、把AAA.jar和ZZZ.jar给第三方就可以了
如果大家有此需求,可心联系我,QQ:360901061,谢谢大家支持
本文为张军原创文章,转载无需和我联系,但请注明来自张军的个人博客http://www.zhangjunbk.com
本文来源:张军博客