中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java?Class加密工具ClassFinal怎么使用

發布時間:2023-03-20 11:14:17 來源:億速云 閱讀:397 作者:iii 欄目:開發技術

本篇內容主要講解“Java Class加密工具ClassFinal怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java Class加密工具ClassFinal怎么使用”吧!

Jar包加密工具 ClassFinal

介紹

  • ClassFinal 是一款 java class 文件安全加密工具,支持直接加密jar包或war包,無需修改任何項目代碼,兼容spring-framework;可避免源碼泄漏或字節碼被反編譯。

  • 加密后,原始的class文件中方法體被清空,當class被classloader加載時,真正的方法體會被解密注入。

  • 為兼容spring,swagger等掃描注解的框架,故而保留了方法參數、注解等信息;反編譯者只能看到方法名和注解;

  • 注意:為了保證項目在運行時的安全,啟動jvm時請加參數: -XX:+DisableAttachMechanism 。

此參數的含義是禁用JVM的附加機制。在JVM中,有一個附加機制可以讓外部進程通過Java Debug Wire Protocol(JDWP)協議附加到正在運行的Java進程上,從而獲得進程的調試信息。這個機制在調試和診斷Java應用程序時非常有用。
然而,在某些情況下,禁用這個機制可以提高Java應用程序的安全性。例如,如果您希望限制外部進程對正在運行的Java進程的訪問,或者想要確保Java進程不會被未經授權的用戶附加和調試,您可以使用這個參數來禁用JVM的附加機制。當使用這個參數時,JVM將不再響應任何附加請求,從而防止外部進程通過JDWP協議附加到正在運行的Java進程上。
例:java -XX:+DisableAttachMechanism -jar MyApp.jar

環境依賴

JDK 1.8 +

使用說明

下載

點此下載

加密 命令行

執行以下命令

java -jar classfinal-fatjar.jar -file jerry.jar -libjars a.jar,b.jar -packages com.jerry1,com.jerry2 -exclude com.jerry.Main -pwd 123456 -Y

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

結果: 生成加密后的jar文件 jerry-encrypted.jar。執行時需帶 javaagent 參數。

注: 也可以直接執行 java -jar classfinal-fatjar.jar 以交互式操作。

示例

我的jar包:jerry.jar,密碼123456

java -jar classfinal-fatjar-1.2.1.jar -file jerry.jar -packages com.jerry -pwd 123456 -Y
=========================================================
=                                                       =
=      Java Class Encryption Tool v1.2.1   by Mr.K      =
=                                                       =
=========================================================
加密信息如下:
-------------------------
1. jar/war路徑:      jerry.jar
2. lib下的jar:
3. 包名前綴:          com.jerry
4. 排除的類名:
5. 加密配置文件:
6. ClassPath:
7. 密碼:             123456
8. 機器碼:
-------------------------

處理中...
加密完成,請牢記密碼!
==>jerry-encrypted.jar

maven插件方式

在要加密的項目pom.xml中加入以下插件配置,目前最新版本是:1.2.1。

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <!-- https://gitee.com/roseboy/classfinal -->
                <groupId>net.roseboy</groupId>
                <artifactId>classfinal-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <!-- 加密打包之后pom.xml會被刪除,不用擔心在jar包里找到此密碼-->
                    <password>jerry</password>
                    <!-- 需要加密的包。多個以逗號,分割 -->
                    <packages>com.classfinal</packages>
                    <!-- 需要加密的配置文件。多個以逗號,分割 -->
                    <cfgfiles>bootstrap.yml,application.yml</cfgfiles>
                    <!-- 不想要加密的jar包。多個以逗號,分割 -->
                    <excludes>org.spring</excludes>
                    <!-- 加密依賴的第三方jar包。多個以逗號,分割 -->
                    <libjars>jerry-common-core-0.0.1.jar,jerry-common-redis-0.0.1.jar</libjars>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>classFinal</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

運行mvn package時會在target下自動加密生成yourpaoject-encrypted.jar
maven 插件的參數名稱與直接運行的參數相同,請參考上節的參數說明。

無密碼模式

  • 加密時-pwd參數設為#,啟動時可不用輸入密碼;

  • 如果是war包,啟動時指定參數 -nopwd,跳過輸密碼過程。

機器綁定

機器綁定只允許加密的項目在特定的機器上運行;
加密時用 -code 指定機器碼。機器綁定可同時支持機器碼+密碼的方式加密。
在需要綁定的機器上執行以下命令,生成機器碼

java -jar classfinal-fatjar.jar -C

啟動加密后的jar

加密后的項目需要設置 javaagent來啟動,項目在啟動過程中解密class,完全內存解密,不留下任何解密后的文件。

解密功能已經自動加入到 yourpaoject-encrypted.jar 中,所以啟動時 -javaagent-jar 相同,不需要額外的jar包。

密碼讀取順序:
參數獲取 >> 環境變量獲取 >> 密碼文件獲取 >> 控制臺輸入 >> GUI輸入 >> 退出

啟動參數給密碼

啟動jar項目執行以下命令:注意:如果是win系統 "-pwd 0000000" 這里要用雙引號。

java -javaagent:jerry-encrypted.jar="-pwd 0000000" -jar jerry-encrypted.jar

//參數說明
// -pwd      加密項目的密碼  
// -pwdname  環境變量中密碼的名字

不加密碼參數直接啟動

1. 密碼文件獲取
java -javaagent:yourpaoject-encrypted.jar -jar yourpaoject-encrypted.jar

不加 pwd 參數直接啟動,優先從密碼文件讀取。
在同級目錄下的classfinal.txtjerry-encrypted.classfinal.txt中寫入密碼。

直接給密碼:classfinal.txt

123456

參數化配置啟動后刪除:classfinal.txt

--pwd 123456 --del yes

這里的del只要不給falseno都會刪除。

項目讀取到密碼后會清空此文件。

2. 交互輸入

沒有找到 密碼文件 就會進入交互輸入模式:先控制臺輸入還是沒給密碼就會進入 GUI輸入模式,都不給密碼,就報錯退出了。

控制臺輸入

Java?Class加密工具ClassFinal怎么使用

GUI輸入

Java?Class加密工具ClassFinal怎么使用

到此,相信大家對“Java Class加密工具ClassFinal怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大同县| 额济纳旗| 濉溪县| 盐津县| 马尔康县| 城市| 株洲县| 濮阳县| 遂昌县| 景宁| 常德市| 枣强县| 冀州市| 蒙山县| 固安县| 临邑县| 蒙自县| 扎兰屯市| 鄢陵县| 内乡县| 阳西县| 伽师县| 额尔古纳市| 柯坪县| 融水| 城市| 夏河县| 华坪县| 池州市| 吉林省| 鄂尔多斯市| 黑山县| 吴旗县| 清远市| 阜南县| 满城县| 射洪县| 扎兰屯市| 营山县| 交城县| 湖北省|