切換語言為:簡體

使用開源外掛為JAR/WAR包加密,支援機器碼,防止返編譯

  • 爱糖宝
  • 2024-05-15
  • 2149
  • 0
  • 0

使用class-final給JAR/WAR包加密

官方文件

https://gitee.com/roseboy/classfinal

加密流程

注:執行命令的jar/war包檔案不能在有中文的目錄下,會加密失敗

加密命令:java -jar classfinal-fatjar-1.2.1.jar -file xxx.jar -packages com -pwd 123456 -Y

結果: 生成 yourpaoject-encrypted.jar,這個就是加密後的jar檔案;加密後的檔案不可直接執行,需要配置javaagent。

引數說明
-file        加密的jar/war完整路徑
-packages    加密的包名(可為空,多個用","分割)
-libjars     jar/war包lib下要加密jar檔名(可為空,多個用","分割)
-cfgfiles    需要加密的配置檔案,一般是classes目錄下的yml或properties檔案(可為空,多個用","分割)
-exclude     排除的類名(可為空,多個用","分割)
-classpath   外部依賴的jar目錄,例如/tomcat/lib(可為空,多個用","分割)
-pwd         加密密碼,如果是#號,則使用無密碼模式加密
-code        機器碼,在繫結的機器生成,加密後只可在此機器上執行
-Y           無需確認,不加此引數會提示確認以上資訊

JAR執行

java -javaagent:xxx-encrypted.jar -jar xxx-encrypted.jar

生成機器碼命令

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

機器碼啟動

java -jar classfinal-fatjar-1.2.1.jar -file xxx.jar -packages com -pwd 123456 -code 48B05D2FA3FE324B30561703BB3424CCD41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E -Y

tomcat中執行加密後的JAR

將加密後的war放在tomcat/webapps下, tomcat/bin/catalina.bat 增加以下配置:

//linux下 catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -javaagent:classfinal-fatjar.jar='-pwd 0000000'";
export CATALINA_OPTS;

//win下catalina.bat
set JAVA_OPTS="-javaagent:classfinal-fatjar-1.2.1.jar= -nopwd"
將classfinal-fatjar-1.2.1.jar放到bin目錄下


//引數說明 
// -pwd      加密專案的密碼  
// -nopwd    無密碼加密時啟動加上此引數,跳過輸密碼過程
// -pwdname  環境變數中密碼的名字

windows中檢測是否配置成功,可以啟動 tomcat/bin/catalina.bat,如果專案正常啟動,配置完成

如果想在Tomcat中以服務的形式啟動,那麼進入tomcat/bin目錄,雙擊開啟tomcat8w.exe,在java啟動引數中加入

// 加密jar包的地址位絕對路徑-javaagent:classfinal-fatjar-1.2.1.jar= -nopwd


0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.