java加密運(yùn)行支持但不限于的框架:spring+struts+mybatis+hibernate+mysql+oracle+sqlserver+postgresql+springMVC+springboot+springcloud。
java加密運(yùn)行支持但不限于的系統(tǒng):window/linux/Mac/龍芯Linux系統(tǒng)/龍芯。
java加密運(yùn)行支持但不限于的項(xiàng)目:JavaWeb項(xiàng)目、Tomcat項(xiàng)目、SpringBoot項(xiàng)目、Spring微服務(wù)項(xiàng)目、單獨(dú)的Jar包項(xiàng)目、幾乎所有的Java項(xiàng)目都支持加密運(yùn)行,保護(hù)了源碼,無法反編譯.class、.jar包。
java加密運(yùn)行支持但不限于的容器:Docker、BlueData、ClusterHQ、CoreOS、Kismatic、PortWorx、Rancher Labs、Shippable、Sysdig Cloud、Tutum、Twistlock、Weaveworks;等等。
java加密運(yùn)行支持項(xiàng)目轉(zhuǎn)換成exe:SpringBoot項(xiàng)目、Spring微服務(wù)項(xiàng)目、單獨(dú)的Jar包項(xiàng)目等等。
1、公司開發(fā)的java web要項(xiàng)目打包成war包往外賣,怎么對war包進(jìn)行處理,防止其自己拷貝后往外出售呢,如果不通過加密的方式,還有其他方式防止其出售呢.
2、大家都知道的,class很好反編譯。出于對知識產(chǎn)權(quán)和自身軟件的保護(hù),不希望任何人都可以看到源代碼或者被反編譯工具進(jìn)行解密。
對于傳統(tǒng)的C或C++之類的語言來說,要在Web上保護(hù)源代碼是很容易的,只要不發(fā)布它就可以。遺憾的是,Java程序的源代碼很容易被別人偷看。只要有一個(gè)反編譯器,任何人都可以分析別人的代碼。Java的靈活性使得源代碼很容易被竊取。
有幾種技術(shù)可以“模糊”Java類文件,使得反編譯器處理類文件的效果大打折扣。然而,修改反編譯器使之能夠處理這些經(jīng)過模糊處理的類文件并不是什么難事,所以不能簡單地依賴模糊技術(shù)來保證源代碼的安全。
我們可以用流行的加密工具加密應(yīng)用,比如java-web加密解密工具。這時(shí),最終用戶在運(yùn)行應(yīng)用之前必須先進(jìn)行解密。但解密之后,最終用戶就有了一份不加密的類文件,這和事先不進(jìn)行加密沒有什么差別。
再說硬件加密鎖,大多數(shù)廠商提供的加密鎖只能進(jìn)行dll的連接或簡單的api調(diào)用,只要簡單地反編譯,就很容易把a(bǔ)pi去掉,這樣加密鎖根本起不了作用,那到底是否還有更好的解決辦法呢?
根據(jù)加密項(xiàng)目啟動運(yùn)行時(shí)獲取機(jī)器碼,機(jī)器碼發(fā)給項(xiàng)目管理員獲取項(xiàng)目授權(quán)reg.lic文件,把reg.lic文件放到項(xiàng)目所用的【java加密運(yùn)行-管理員-15.0.0.2.zip】解壓后的根目錄下(例如:**/ZJ_HOME/ZJ_HOME-5.2.x-15.0.0.2/**下)即可完成項(xiàng)目注冊
set ZJ_HOME=ZJ_HOME根目錄
set "JAVA_OPTS=%JAVA_OPTS% -agentpath:%ZJ_HOME%\jvmlib.dll"
set ZJ_HOME=C:\ZJ_HOME-5.2.x-15.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-15.0.0.2
JAVA_OPTS="$JAVA_OPTS -agentpath:$ZJ_HOME/jvmlib.so"
拷貝加密后的項(xiàng)目到tomcat的webapp中啟動項(xiàng)目了就可以了。
@echo off
set ZJ_HOME=D:\ZJ_HOME-5.2.x-15.0.0.2
java -agentpath:%ZJ_HOME%\jvmlib.dll -jar zjweb.min.jar
export ZJ_HOME=/ZJ_HOME-5.2.x-15.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-15.0.0.2
java -agentpath:%ZJ_HOME%\jvmlib.dll -jar zjweb.min.jar
export ZJ_HOME=/ZJ_HOME-5.2.x-15.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-15.0.0.2
java -agentpath:%ZJ_HOME%\jvmlib.dll -jar zjweb.min.jar
export ZJ_HOME=/ZJ_HOME-5.2.x-15.0.0.2
java -agentpath:$ZJ_HOME/jvmlib.so -jar server.jar api.MainApplication > api.log &
做法是比如已經(jīng)加密的AAA.jar包要提供給第三使用
1、把AAA.jar里面的所有實(shí)現(xiàn)全部刪除,只保留空方法供在開發(fā)中調(diào)用
2、編譯這些空方法無實(shí)現(xiàn)打包成ZZZ.jar,核心代碼都在已經(jīng)加密的AAA.jar,而ZZZ.jar只是供調(diào)用,方便在eclipse中編譯通過
3、把AAA.jar和ZZZ.jar給第三方就可以了
如果大家有此需求,可心聯(lián)系我,QQ:360901061,謝謝大家支持
本文為張軍原創(chuàng)文章,轉(zhuǎn)載無需和我聯(lián)系,但請注明來自張軍的個(gè)人博客http://www.dlhighland.cn
本文來源:軍軍小站|張軍博客