返回顶部
首页 > 资讯 > 后端开发 > Python >JavaClass加密工具ClassFinal详解
  • 730
分享到

JavaClass加密工具ClassFinal详解

java加密classJavaClass加密工具java加密工具 2023-03-20 11:03:51 730人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录jar包加密工具 ClassFinal介绍环境依赖使用说明示例Maven插件方式无密码模式机器绑定启动加密后的jar启动参数给密码不加密码参数直接启动1. 密码文件获取2. 交互

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输入模式,都不给密码,就报错退出了。

控制台输入

在这里插入图片描述

GUI输入

在这里插入图片描述

参考资料

Gitee: Https://gitee.com/roseboy/classfinal

到此这篇关于Java Class 加密工具 ClassFinal的文章就介绍到这了,更多相关java加密class内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaClass加密工具ClassFinal详解

本文链接: https://lsjlt.com/news/200519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaClass加密工具ClassFinal详解
    目录Jar包加密工具 ClassFinal介绍环境依赖使用说明示例maven插件方式无密码模式机器绑定启动加密后的jar启动参数给密码不加密码参数直接启动1. 密码文件获取2. 交互...
    99+
    2023-03-20
    java加密class Java Class 加密工具 java加密工具
  • Java Class加密工具ClassFinal怎么使用
    本篇内容主要讲解“Java Class加密工具ClassFinal怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Class加密工具ClassFinal怎么使...
    99+
    2023-07-05
  • Java 加解密工具类
    一、对称加密算法  加密和解密使用相同密钥的加密算法。常用的算法包括DES、3DES、AES、DESX、Blowfish、RC4、RC5、RC6。 DES(Data Encryption Standard):数据加密标准,速度较快,适用于加...
    99+
    2023-09-29
    java
  • 使用shc工具加密shell脚本详解
    Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束)...
    99+
    2022-06-04
    详解 脚本 工具
  • shell脚本加密工具shc使用详解
    shell脚本加密工具shc shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. 应用场景 用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本...
    99+
    2022-06-04
    shell脚本加密工具 shell脚本加密工具shc
  • Python制作钉钉加密/解密工具
    又是很久没有写技术博客了,盖因最近都在学习知识,也没有总结出什么值得分享的内容,所以一直停笔至今。最近的工作和钉钉的开发打上了交到,官方并没有提供任何Python的SDK,于是只能全部自己写。现在我将其中实...
    99+
    2022-06-04
    工具 Python
  • Java:Hutool工具箱之Hutool-crypto加密解密
    文档 https://hutool.cn/docs/#/crypto/概述 目录 1、摘要算法 digest2、对称加密 symmetric3、不对称加密 asymmetric 重点单词: symmetric [sɪ'me...
    99+
    2023-08-21
    java 开发语言
  • 超级简单加解密工具
    方案:读取文件头,提取特定长度进行加密,加密后加这一部分写入源文件,解密可逆。 #! /usr/bin/env python #coding=utf-8 #Edit:Sandy #时间:2019年1月27日13:57:04 #功能:文件...
    99+
    2023-01-30
    简单 工具 加解密
  • 国密算法 SM4 加解密 java 工具类
    👑 博主简介:知名开发工程师 👣 出没地点:北京 💊 2023年目标:成为一个大佬 ————————————————————————————————...
    99+
    2023-09-01
    算法 java 开发语言
  • Java中解密微信加密数据工具类
    当我们开发微信公众号,小程序等,微信返回给我们的数据往往是经过加密的,我们需要使用 sessionKey 配合解密,才能得到我们想要的数据 1、引入依赖 <!-- lomb...
    99+
    2024-04-02
  • C#程序加密工具.Net Reactor详细教程
    .NET具有较多的优点,如:标准集成,简化应用,对移动设备的支持等。但使用.NET编写的程序有个致命的缺点:易被反编译,且运行时占用较大的资源。 那么我们就需要用到加密工具 dotN...
    99+
    2024-04-02
  • php有哪些加密工具
    php中常用的加密工具有ZendGuard和ionCube两种ZendGuardZend Guard是一个对带有php标记或源码的文件进行加密的工具,使用Zend Guard可以对php脚本进行加密保护和对php产品进行商业许可证管理,但当...
    99+
    2024-04-02
  • 通过Golang编写一个AES加密解密工具
    目录前言AES加密介绍及实现原理AES用在哪里AES加密是如何实现的AES加密模式Go实现AES加密工具scode前言 本文包含如下两个内容: AES加密介绍及实现原理 Go实现AE...
    99+
    2024-04-02
  • 【教程】解决php微擎中的goto加密解密,一键解密工具
    今天,我将向大家揭秘一款神奇的工具——goto解密工具,轻松解密这个看似棘手的问题。 无数开发者都曾因为php中的goto功能而头疼不已。goto解密工具其中之一就是解密goto代码。通过精妙的算法和强大的解析能力,它能够解密被goto加密...
    99+
    2023-09-01
    php 开发语言
  • Android AES加密工具类分享
    1、AES加密工具类 java不支持PKCS7Padding,只支持PKCS5Padding。我们知道加密算法由算法+模式+填充组成,下一篇介绍iOS和Android通用的AE...
    99+
    2022-06-06
    工具类 aes加密 工具 aes Android
  • Unity3D 代码加密保护工具
    加密方式对于Unity3D的保护方式,主要是通过Virbox Protector Standalone对Unity3D程序的整个生成目录进行加密,可以保护Unity的主要代码逻辑不被反编译,最大程度保护软件开发商的合法权益,同时DSProt...
    99+
    2023-01-31
    代码 工具 Unity3D
  • 如何实现BAT加密工具
    小编给大家分享一下如何实现BAT加密工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!bat文件虽然好用,但安全性太脆弱 随便什么人都可以打开查看,甚至修改其中内...
    99+
    2023-06-09
  • GPP加密破解工具gpp-decrypt有什么用
    这篇文章主要介绍了GPP加密破解工具gpp-decrypt有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。GPP加密破解工具gpp-decryptGPP是Group P...
    99+
    2023-06-04
  • 怎么通过Golang编写一个AES加密解密工具
    本篇内容主要讲解“怎么通过Golang编写一个AES加密解密工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么通过Golang编写一个AES加密解密工具”吧!AES加密介绍及实现原理AES(...
    99+
    2023-06-30
  • PHP混淆加密以及常用的一些加密工具
    PHP混淆加密是一种将源代码转换为难以理解和阅读的方式,以保护代码的安全性。以下是一些常见的PHP混淆加密方法: 代码压缩:使用代码压缩工具(如UglifyJS)将PHP代码压缩为一行,去除空格、换行...
    99+
    2023-10-23
    php 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作