CN112199645A - 基于Springboot的Jar包加密方法及装置 - Google Patents
基于Springboot的Jar包加密方法及装置 Download PDFInfo
- Publication number
- CN112199645A CN112199645A CN202011108197.2A CN202011108197A CN112199645A CN 112199645 A CN112199645 A CN 112199645A CN 202011108197 A CN202011108197 A CN 202011108197A CN 112199645 A CN112199645 A CN 112199645A
- Authority
- CN
- China
- Prior art keywords
- springboot
- secret key
- initial
- encrypted
- jar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004806 packaging method and process Methods 0.000 claims description 34
- 230000006837 decompression Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005336 cracking Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种基于Springboot的Jar包加密方法及装置,通过获取Springboot中待进行加密的初始Jar包,对初始Jar包进行解压后将解压文件存储至解压目录,根据初始Jar包携带的机器标识信息从秘钥动态库中获取对应的初始秘钥,并在初始秘钥中添加解压文件对应的解压秘钥和启动秘钥生成更新秘钥,根据更新秘钥对解压文件进行加密,并对加密后的解压文件进行打包获取加密Jar包。本发明实施例通过更新秘钥对解压文件进行加密,防止加密Jar包被反向编译,保证加密Jar包的安全,同时保证加密Jar包只能在对应机器上运行,防止加密Jar包被拷贝造成数据泄露的问题。
Description
技术领域
本发明涉及加密技术领域,尤其涉及一种基于Springboot的Jar包加密方法及装置。
背景技术
随着Web技术的发展,浏览器和服务器系统(Brower Server,简称BS系统)已经逐步从独立的Web容器(如:Tomcat、Jetty等)发展到基于Springboot内嵌容器的可执行Jar。
基于Springboot内嵌容器的可执行Jar具有如下优点:编码简单,开发周期缩短;配置简单,减少冗余配置;部署简单,加快工程部署;监控简单,对系统进行健康监控。然而,基于Springboot可执行Jar技术无加密,很容易被拷贝进行反编译破解造成资产丢失,而且基于Springboot可执行Jar运行环境复杂(如在Windows、Linux等跨平台运行)。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于Springboot的Jar包加密方法及装置。
具体地,本发明实施例提供了如下技术方案:
第一方面,本发明实施例提供一种基于Springboot的Jar包加密方法,包括:
获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录;
根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系;
根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录;
在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
进一步地,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包,包括:
根据所述更新秘钥,采用跨平台的加密算法对解压文件进行编译加密,并在解压文件中添加启动引导类后,对解压文件进行打包,生成加密Jar包。
进一步地,所述机器标识信息包括机器码;
相应地,所述初始秘钥的生成过程包括:
获取各Springboot服务器对应机器的物理地址和磁盘序列号,根据所述物理地址和磁盘序列号计算各Springboot服务器对应机器的机器码;
根据各Springboot服务器对应机器的机器码,生成各Springboot服务器对应机器的初始秘钥。
进一步地,所述对加密后的解压文件进行打包,包括:
按照Springboot打包规范,对加密后的解压文件进行打包。
第二方面,本发明实施例提供一种基于Springboot的Jar包加密装置,包括:
解压单元,用于获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录;
获取单元,用于根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系;
更新单元,用于根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录;
加密单元,用于在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
进一步地,所述加密单元,具体用于:
根据所述更新秘钥,采用跨平台的加密算法对解压文件进行编译加密,并在解压文件中添加启动引导类后,对解压文件进行打包,生成加密Jar包。
进一步地,所述机器标识信息包括机器码;
相应地,所述初始秘钥的生成过程包括:
获取各Springboot服务器对应机器的物理地址和磁盘序列号,根据所述物理地址和磁盘序列号计算各Springboot服务器对应机器的机器码;
根据各Springboot服务器对应机器的机器码,生成各Springboot服务器对应机器的初始秘钥。
进一步地,所述加密单元,用于对加密后的解压文件进行打包,包括:
按照Springboot打包规范,对加密后的解压文件进行打包。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述基于Springboot的Jar包加密方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述基于Springboot的Jar包加密方法的步骤。
本发明实施例提供的基于Springboot的Jar包加密方法及装置,通过获取Springboot中待进行加密的初始Jar包,对初始Jar包进行解压后将解压文件存储至解压目录,根据初始Jar包携带的Springboot服务器的机器标识信息从秘钥动态库中获取对应的初始秘钥,并在初始秘钥中添加解压文件对应的解压秘钥和启动秘钥生成更新秘钥,根据更新秘钥对解压文件进行加密,并对加密后的解压文件进行打包生成加密Jar包。本发明实施例通过更新秘钥对解压文件进行加密,防止加密Jar包被反向编译,保证加密Jar包的安全;同时更新秘钥基于初始秘钥生成,初始秘钥绑定有各Springboot服务器对应的机器信息,从而使Jar包能够实现跨平台加密,并且保证加密Jar包只能在对应机器上运行,防止加密Jar包被拷贝造成数据泄露的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一个实施例提供的基于Springboot的Jar包加密方法的流程示意图;
图2是本发明一实施例提供的基于Springboot的Jar包编译加密的流程示意图;
图3是本发明一实施例提供的基于Springboot的Jar包编译加密的编码示意图;
图4是本发明一实施例提供的又一基于Springboot的Jar包编译加密的编码示意图;
图5是本发明一实施例提供的Jar包编译加密的流程示意图;
图6是本发明一实施例提供的编译加密阶段流程示意图;
图7是本发明一实施例提供的平台加密阶段流程示意图;
图8是本发明一实施例提供的加密Jar包运行示意图;
图9是本发明第二个实施例提供的基于Springboot的Jar包加密装置的结构示意图;
图10是本发明第三个实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明第一个实施例提供的基于Springboot的Jar包加密方法的流程示意图,如图1所示,本发明第一个实施例提供的基于Springboot的Jar包加密方法,包括如下步骤:
步骤110、获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录。
在本步骤中,需要说明的是,Springboot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Springboot的项目以Jar包的形式进行打包,这种Jar包可以通过命令(java-jar xxx.jar)来运行,而且这种Jar包不能被其他项目所依赖,即使被依赖了也不能直接使用其中的类。普通的Jar包,解压后直接就是包名,包里就是代码,而Springboot打包成的可执行Jar解压后,在\BOOT-INF\classes目录下才是代码,因此无法被直接引用,可以内嵌容器直接运行。基于Springboot内嵌容器的可执行Ja编码简单,开发周期缩短;配置简单,减少冗余配置;部署简单,加快工程部署;监控简单,对系统进行健康监控。然而,基于Springboot可执行Jar技术无加密,很容易被拷贝进行反编译破解造成资产丢失。因此,本实施例通过在Java平台的编译阶段,对文件进行编译加密,生成加密Jar包,从而防止被拷贝以及反向编译。
具体地,本实施例获取Springboot中待进行加密的初始Jar包,对初始Jar包进行解压得到解压文件,并将解压文件存储至解压目录,从而可以对解压文件进行编译加密。其中,初始Jar包携带有Springboot服务器的机器标识信息,各Springboot服务器对应的机器存在有唯一对应的机器标识信息,从而根据机器标识信息可以唯一确定对应的机器。图2是本发明一实施例提供的基于Springboot的Jar包编译加密的流程示意图,如图2所示,基于Springboot的Jar包编译加密分为5个过程:①解包过程;②秘钥引入过程;③加密/启动引导类引入过程;④加密过程;⑤再打包过程。其中,解包过程包括对Springboot原始Jar包进行加载与解压,并将解压文件放到指定目录,其中解压文件包括class、xml等文件。
步骤120、根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系。
在本步骤中,由于初始Jar包携带的Springboot服务器的机器标识信息,并且秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系,从而根据初始Jar包携带的Springboot服务器的机器标识信息可以获取对应的初始秘钥。由于初始秘钥是根据各Springboot服务器的机器标识信息生成,即初始秘钥绑定有各Springboot服务器对应的机器信息,使得初始秘钥对应的Jar包只能在对应机器上运行,防止加密Jar包被拷贝造成数据泄露的问题,并且即使Jar包被拷贝至其它机器上,由于初始秘钥中没有该机器的机器信息,因此Jar包也无法在该机器上运行,保证了Jar包的数据安全。
步骤130、根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录。
在本步骤中,根据步骤120获取对应的初始秘钥后,根据解压文件,生成更新秘钥,其中更新秘钥包含了解压文件的解压秘钥及启动秘钥,并将更新秘钥引入解压目录。图3是本发明一实施例提供的基于Springboot的Jar包编译加密的编码示意图,如图3所示,对初始秘钥进行修改,添加解压秘钥和启动秘钥,用于防止Jar包被反向编译。图4是本发明一实施例提供的又一基于Springboot的Jar包编译加密的编码示意图,如图4所示,通过修改初始Jar包中对应的代码,生成加密Jar包。
步骤140、在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
在本步骤中,在Java平台的编译阶段,根据步骤130中生成的更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。例如,根据更新秘钥,对class、xml等文件进行加密处理,形成加密后的文件,再对加密后的文件进行打包,生成加密Jar包。由此可见,本实施例提供的方法可以支持跨平台加密,且加密过程简化,运行方式与原始Jar保持一致,减少工程实施难度。图5是本发明一实施例提供的Jar包编译加密的流程示意图,如图5所示,Jar包编译加密共分为4个阶段:①编码阶段;②平台加密库阶段;③编译加密阶段;④输出节点,其中编码阶段是对业务代码撰写,平台加密阶段是根据机器标识信息生成秘钥动态库,编译加密阶段是通过JNA读取动态秘钥库,对Jar包进行读取并加密,生成加密Jar包。其中,JNA(Java Native Access)提供一组Java工具类用于在运行期间动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
本发明实施例提供的基于Springboot的Jar包加密方法,通过获取Springboot中待进行加密的初始Jar包,对初始Jar包进行解压后将解压文件存储至解压目录,根据初始Jar包携带的Springboot服务器的机器标识信息从秘钥动态库中获取对应的初始秘钥,并在初始秘钥中添加解压文件对应的解压秘钥和启动秘钥生成更新秘钥,根据更新秘钥对解压文件进行加密,并对加密后的解压文件进行打包生成加密Jar包。本发明实施例通过更新秘钥对解压文件进行加密,防止加密Jar包被反向编译,保证加密Jar包的安全;同时更新秘钥基于初始秘钥生成,初始秘钥绑定有各Springboot服务器对应的机器信息,从而使Jar包能够实现跨平台加密,并且保证加密Jar包只能在对应机器上运行,防止加密Jar包被拷贝造成数据泄露的问题。
基于上述实施例的内容,在本实施例中,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包,包括:
根据所述更新秘钥,采用跨平台的加密算法对解压文件进行编译加密,并在解压文件中添加启动引导类后,对解压文件进行打包,生成加密Jar包。
在本实施例中,由于Jar运行环境需要跨平台(如Windows、Linux),所以加密Jar包的加密机制也要跨平台。因此,本实施例根据更新秘钥,采用跨平台的加密算法(如XXTEA加密算法)对解压文件进行编译加密,实现跨平台加密,同时引入启动引导类(如JarLancher相关解密启动引导类),用于对加密Jar包的启动时的解密启动,然后对加密后的解压文件进行打包,生成加密Jar包。
图6是本发明一实施例提供的编译加密阶段流程示意图,如图6所示,从秘钥动态库中获取对应的初始秘钥后,生成更新秘钥,通过编译加密模块进行加密,生成安全执行包sjar,sjar是Jar加密后的安全Jar,并且绑定了机器运行,无法反编译,可以跨平台运行。
本发明实施例提供的基于Springboot的Jar包加密方法,采用跨平台的加密算法对解压文件进行编译加密,并在解压文件中添加启动引导类后,对解压文件进行打包,生成加密Jar包,从而使得加密Jar包可以跨平台运行,并且防止被拷贝和反编译,保证数据的安全。
基于上述实施例的内容,在本实施例中,所述机器标识信息包括机器码;
相应地,所述初始秘钥的生成过程包括:
获取各Springboot服务器对应机器的物理地址和磁盘序列号,根据所述物理地址和磁盘序列号计算各Springboot服务器对应机器的机器码;
根据各Springboot服务器对应机器的机器码,生成各Springboot服务器对应机器的初始秘钥。
在本实施例中,机器标识信息包括机器码,通过机器码可以确定对应的初始秘钥。其中,初始秘钥的生成过程包括:获取各Springboot服务器对应机器的物理地址(mac地址)和磁盘序列号,根据物理地址和磁盘序列号计算各Springboot服务器对应机器的机器码,从而可以生成各Springboot服务器对应机器的初始秘钥。图7是本发明一实施例提供的平台加密阶段流程示意图,如图7所示,机器码模块通过获取mac地址、磁盘序列号等计算机信息算出机器码,通过平台授权模块并根据机器码生成秘钥动态库,秘钥动态库供编译加密阶段对jar加密。图8是本发明一实施例提供的加密Jar包运行示意图,如图8所示,运行加密后的Jar包,无法进行反编译。
本发明实施例提供的基于Springboot的Jar包加密方法,通过获取各Springboot服务器对应机器的物理地址和磁盘序列号,根据物理地址和磁盘序列号计算各Springboot服务器对应机器的机器码,生成各Springboot服务器对应机器的初始秘钥,从而使得初始秘钥绑定有对应的机器信息,防止Jar包被拷贝。
基于上述实施例的内容,在本实施例中,所述对加密后的解压文件进行打包,包括:
按照Springboot打包规范,对加密后的解压文件进行打包。
在本实施例中,对加密后的解压文件按Springboot打包规范再次打包,形成安全运行包sjar。
本发明实施例提供的基于Springboot的Jar包加密方法,通过按照Springboot打包规范,对加密后的解压文件进行打包,使得加密Jar包能够在对应机器上正常解压和启动。
图9是本发明第二个实施例提供的基于Springboot的Jar包加密装置的结构示意图,如图9所示,本发明第二个实施例提供的基于Springboot的Jar包加密装置,包括:
解压单元910,用于获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录;
获取单元920,用于根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系;
更新单元930,用于根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录;
加密单元940,用于在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
本实施例所述的基于Springboot的Jar包加密装置可以用于执行上述第一个实施例所述的基于Springboot的Jar包加密方法,其原理和技术效果类似,此处不再详述。
基于上述实施例的内容,在本实施例中,所述加密单元940,具体用于:
根据所述更新秘钥,采用跨平台的加密算法对解压文件进行编译加密,并在解压文件中添加启动引导类后,对解压文件进行打包,生成加密Jar包。
基于上述实施例的内容,在本实施例中,所述机器标识信息包括机器码;
相应地,所述初始秘钥的生成过程包括:
获取各Springboot服务器对应机器的物理地址和磁盘序列号,根据所述物理地址和磁盘序列号计算各Springboot服务器对应机器的机器码;
根据各Springboot服务器对应机器的机器码,生成各Springboot服务器对应机器的初始秘钥。
基于上述实施例的内容,在本实施例中,所述加密单元940,用于对加密后的解压文件进行打包,包括:
按照Springboot打包规范,对加密后的解压文件进行打包。
图10是本发明第三个实施例提供的电子设备的结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1010、通信接口(Communications Interface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑指令,以执行基于Springboot的Jar包加密方法,该方法包括:获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录;根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系;根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录;在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
此外,上述的存储器1030中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的基于Springboot的Jar包加密方法,该方法包括:获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录;根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系;根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录;在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的基于Springboot的Jar包加密方法,该方法包括:获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录;根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系;根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录;在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于Springboot的Jar包加密方法,其特征在于,包括:
获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录;
根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系;
根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录;
在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
2.根据权利要求1所述的基于Springboot的Jar包加密方法,其特征在于,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包,包括:
根据所述更新秘钥,采用跨平台的加密算法对解压文件进行编译加密,并在解压文件中添加启动引导类后,对解压文件进行打包,生成加密Jar包。
3.根据权利要求1所述的基于Springboot的Jar包加密方法,其特征在于,所述机器标识信息包括机器码;
相应地,所述初始秘钥的生成过程包括:
获取各Springboot服务器对应机器的物理地址和磁盘序列号,根据所述物理地址和磁盘序列号计算各Springboot服务器对应机器的机器码;
根据各Springboot服务器对应机器的机器码,生成各Springboot服务器对应机器的初始秘钥。
4.根据权利要求1所述的基于Springboot的Jar包加密方法,其特征在于,所述对加密后的解压文件进行打包,包括:
按照Springboot打包规范,对加密后的解压文件进行打包。
5.一种基于Springboot的Jar包加密装置,其特征在于,包括:
解压单元,用于获取Springboot中待进行加密的初始Jar包,对所述初始Jar包进行解压得到解压文件,并将所述解压文件存储至解压目录;
获取单元,用于根据所述初始Jar包携带的Springboot服务器的机器标识信息,从秘钥动态库中获取对应的初始秘钥;所述秘钥动态库中存储有根据各Springboot服务器的机器标识信息生成的初始秘钥,以及各Springboot服务器的机器标识信息与对应初始秘钥的映射关系;
更新单元,用于根据所述解压文件,在所述初始秘钥中添加解压文件对应的解压秘钥和启动秘钥,生成更新秘钥,并将所述更新秘钥添加至所述解压目录;
加密单元,用于在Java平台的编译阶段,根据所述更新秘钥,对解压文件进行编译加密,并对加密后的解压文件进行打包,生成加密Jar包。
6.根据权利要求5所述的基于Springboot的Jar包加密装置,其特征在于,所述加密单元,具体用于:
根据所述更新秘钥,采用跨平台的加密算法对解压文件进行编译加密,并在解压文件中添加启动引导类后,对解压文件进行打包,生成加密Jar包。
7.根据权利要求5所述的基于Springboot的Jar包加密装置,其特征在于,所述机器标识信息包括机器码;
相应地,所述初始秘钥的生成过程包括:
获取各Springboot服务器对应机器的物理地址和磁盘序列号,根据所述物理地址和磁盘序列号计算各Springboot服务器对应机器的机器码;
根据各Springboot服务器对应机器的机器码,生成各Springboot服务器对应机器的初始秘钥。
8.根据权利要求5所述的基于Springboot的Jar包加密装置,其特征在于,所述加密单元,用于对加密后的解压文件进行打包,包括:
按照Springboot打包规范,对加密后的解压文件进行打包。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述基于Springboot的Jar包加密方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述基于Springboot的Jar包加密方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011108197.2A CN112199645A (zh) | 2020-10-16 | 2020-10-16 | 基于Springboot的Jar包加密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011108197.2A CN112199645A (zh) | 2020-10-16 | 2020-10-16 | 基于Springboot的Jar包加密方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112199645A true CN112199645A (zh) | 2021-01-08 |
Family
ID=74009686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011108197.2A Pending CN112199645A (zh) | 2020-10-16 | 2020-10-16 | 基于Springboot的Jar包加密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199645A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547653A (zh) * | 2022-02-24 | 2022-05-27 | 科东(广州)软件科技有限公司 | 开发环境的加密方法、解密方法及装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015192637A1 (zh) * | 2014-06-17 | 2015-12-23 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
CN106845169A (zh) * | 2016-12-26 | 2017-06-13 | 北京握奇智能科技有限公司 | 一种Jar包加固方法及系统 |
CN110069905A (zh) * | 2019-04-26 | 2019-07-30 | 深圳智慧园区信息技术有限公司 | 一种Springboot程序加密和解密的装置及方法 |
CN111274611A (zh) * | 2020-02-04 | 2020-06-12 | 北京同邦卓益科技有限公司 | 数据脱敏方法、装置及计算机可读存储介质 |
CN111737718A (zh) * | 2020-07-17 | 2020-10-02 | 平安国际智慧城市科技股份有限公司 | 一种jar包的加解密方法、装置、终端设备和存储介质 |
-
2020
- 2020-10-16 CN CN202011108197.2A patent/CN112199645A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015192637A1 (zh) * | 2014-06-17 | 2015-12-23 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
CN106845169A (zh) * | 2016-12-26 | 2017-06-13 | 北京握奇智能科技有限公司 | 一种Jar包加固方法及系统 |
CN110069905A (zh) * | 2019-04-26 | 2019-07-30 | 深圳智慧园区信息技术有限公司 | 一种Springboot程序加密和解密的装置及方法 |
CN111274611A (zh) * | 2020-02-04 | 2020-06-12 | 北京同邦卓益科技有限公司 | 数据脱敏方法、装置及计算机可读存储介质 |
CN111737718A (zh) * | 2020-07-17 | 2020-10-02 | 平安国际智慧城市科技股份有限公司 | 一种jar包的加解密方法、装置、终端设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547653A (zh) * | 2022-02-24 | 2022-05-27 | 科东(广州)软件科技有限公司 | 开发环境的加密方法、解密方法及装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108229112B (zh) | 一种保护应用程序、应用程序的运行方法以及装置 | |
CN106415491B (zh) | 一种应用保护方法、服务器以及终端 | |
WO2021217980A1 (zh) | java代码的加壳方法与系统 | |
CN109598107B (zh) | 一种基于应用安装包文件的代码转换方法及装置 | |
CN110188555B (zh) | 一种磁盘数据保护方法、系统及相关组件 | |
CN109614772B (zh) | 基于应用安装包文件的代码转换方法及装置 | |
CN109787768B (zh) | 一种身份验证配置方法、装置及计算机可读存储介质 | |
CN108111622A (zh) | 一种下载白盒库文件的方法、装置及系统 | |
CN105279399A (zh) | 应用防破解方法和装置 | |
CN108134673A (zh) | 一种生成白盒库文件的方法及装置 | |
CN112115429A (zh) | 一种Java类加密、解密方法及计算机可读存储介质 | |
CN111857860A (zh) | 一种安全加载插件的实现方法及系统 | |
CN110309630B (zh) | 一种Java代码加密方法及装置 | |
CN112966227A (zh) | 代码加密解密方法和装置、存储介质 | |
CN112199645A (zh) | 基于Springboot的Jar包加密方法及装置 | |
CN111382447B (zh) | 安装包的加密方法、存储介质及计算机设备 | |
CN113849210A (zh) | 一种基于tee的固件升级方法及装置 | |
CN109992974B (zh) | 虚拟机字节码文件的保护方法、设备及可读存储介质 | |
CN112559980B (zh) | 一种可内嵌众多任意app的小程序运行时 | |
US8972745B2 (en) | Secure data handling in a computer system | |
CN117313046A (zh) | 一种代码加固方法、代码加载方法、设备及介质 | |
KR101863325B1 (ko) | 역공학 방지 방법 및 장치 | |
CN116257867A (zh) | 秘钥加密方法及装置 | |
CN113220314A (zh) | App资源加载及apk生成方法、装置、设备及介质 | |
CN114139117A (zh) | 应用程序加固方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |