java~jar防止反編譯


對於jar包,如果是為客戶私有化部署的,會將jar包給客戶,這時就會有源代碼泄露的風險,你的一些加密算法,密鑰就公開了,所以我們需要為jar包進行加密,或者叫字節碼混淆。

classfinal

classfinal是一個字節碼混淆工具,我們可以直接把它集成到maven里,以插件的形式去使用它,下面是配置文件

            <plugin>
                <groupId>net.roseboy</groupId>
                <artifactId>classfinal-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <password>#</password><!-- #表示啟動時不需要密碼,事實上對於代碼混淆來說,這個密碼沒什么用,它只是一個啟動密碼 -->
                    <packages>com.pkulaw.test.register</packages><!-- 加密的包名,多個包用逗號分開-->
                    <excludes>org.spring</excludes>
                 </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>classFinal</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

進行maven install之后,會多生成一個jar文件,后綴是encrypted.jar,原來的jar文件還是明文的,以后可以用被加密的encrypted.jar
1

JD-GUI查看源碼

通過JD-GUI我們可以查看JAR的源代碼
2
而別一個文件,encrypted.jar后綴的,它的類里的方法都是空的,說明被保護了
3
另外,代碼混淆工具還有很多,大家也可以嘗試一下其它的工具。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM