CN111737718A - 一种jar包的加解密方法、装置、终端设备和存储介质 - Google Patents
一种jar包的加解密方法、装置、终端设备和存储介质 Download PDFInfo
- Publication number
- CN111737718A CN111737718A CN202010691503.3A CN202010691503A CN111737718A CN 111737718 A CN111737718 A CN 111737718A CN 202010691503 A CN202010691503 A CN 202010691503A CN 111737718 A CN111737718 A CN 111737718A
- Authority
- CN
- China
- Prior art keywords
- file
- key
- jar
- management platform
- key file
- 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
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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
Abstract
本申请适用于信息安全技术领域,提出一种jar包的加解密方法、装置、终端设备和存储介质。在本申请中,jar包加解密使用的密钥文件在生成后存储于服务器端的密钥管理平台,终端本地可以采用java agent工具向该密钥管理平台发送请求,从而获取该密钥文件并完成该jar包的加密操作。另外,通过在终端本地生成并保存该密钥文件的溯源文件,之后当需要解密该jar包时,可以通过该溯源文件从密钥管理平台查找到该密钥文件。由此可见,本申请在jar包的加解密过程中,可以方便地管理用于加解密的密钥文件,提高密钥文件的安全性。
Description
技术领域
本申请属于信息安全技术领域,尤其涉及一种jar包的加解密方法、装置、终端设备和存储介质。
背景技术
为了保护代码数据的安全,开发人员在完成一个jar包的开发后,通常需要对该jar包进行加密。目前,对jar包进行加密的方法主要是基于jar包内资源的加密以及通过拓展ClassLoader来实现,这种加密方式无需侵入代码,完全由内存执行,具有较高的安全性。然而,用于加解密的密钥文件或字串的保存和使用是一个问题,难以保证该密钥文件的安全。
发明内容
有鉴于此,本申请提出一种jar包的加解密方法、装置、终端设备和存储介质,能够方便地管理用于加解密的密钥文件,提高该密钥文件的安全性。
第一方面,本申请实施例提供了一种jar包的加密方法,包括:
若检测到对待加密的jar包进行打包的操作,则使用java agent工具对所述打包的操作进行拦截,然后向服务器端的密钥管理平台发送密钥文件获取请求,
以指示所述密钥管理平台生成并返回所述jar包加解密使用的密钥文件,所述密钥文件在生成后存储于所述密钥管理平台;
在接收到所述密钥管理平台返回的所述密钥文件之后,采用所述密钥文件对所述jar包进行加密,并在加密后恢复所述打包的操作,得到所述jar包的加密压缩包文件;
在终端本地生成并保存所述密钥文件的溯源文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑。
jar包加解密使用的密钥文件在生成后存储于服务器端的密钥管理平台,终端本地可以采用java agent工具向该密钥管理平台发送请求,从而获取该密钥文件并完成该jar包的加密操作。另外,通过在终端本地生成并保存该密钥文件的溯源文件,之后当需要解密该jar包时,可以通过该溯源文件从密钥管理平台查找到该密钥文件。由此可见,本申请在jar包的加解密过程中,可以方便地管理用于加解密的密钥文件,提高密钥文件的安全性。
另外,java agent工具可以作为主操作之前的拦截器,通过该工具对jar包的打包操作进行拦截,优先执行向密钥管理平台获取密钥文件以及加密jar包的操作,待jar包加密后,再恢复执行文件打包的操作。通过这样设置,用户在打包一个jar包后,可以自动获得一个已加密的压缩包文件。
进一步地,所述溯源文件包含所述密钥文件的唯一标识,在终端本地生成并保存所述密钥文件的溯源文件之后,还包括:
若检测到执行所述溯源文件的操作指令,则向所述密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台返回与所述唯一标识对应的密钥文件。
当用户想要解压该jar包的加密压缩包文件时,可以点击执行该溯源文件,此时会向该密钥管理平台发送密钥文件获取请求,以指示该密钥管理平台返回与所述唯一标识对应的密钥文件,即在终端本地获取到该jar包的密钥文件。
进一步的,所述采用所述密钥文件对所述jar包进行加密可以包括:
提取所述密钥文件中的加密密钥;
采用所述加密密钥对所述jar包进行加密;
删除终端本地接收到的所述密钥文件。
在采用该密钥文件中的加密密钥对该jar包加密之后,可以删除终端本地接收的该密钥文件,进一步保证该密钥文件的安全。
第二方面,本申请实施例提供了一种jar包的解密方法,包括:
若检测到启动已加密的jar包的操作,则使用java agent工具对所述启动的操作进行拦截,然后执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑,所述溯源文件在所述jar包加密后生成并存储于终端本地,所述密钥文件在所述jar包加密前生成并存储于所述密钥管理平台;
在从所述密钥管理平台获取到所述密钥文件之后,采用所述密钥文件对所述jar包进行解密,并在解密后恢复所述启动的操作。
与本申请第一方面提出的jar包的加密方法相对应,在对jar包解密时,可以使用java agent工具执行终端本地保存的溯源文件,以从该密钥管理平台查找并获取该jar包的密钥文件,最后利用该密钥文件完成该jar包的解密操作。
进一步的,所述java agent工具的启动参数预设为指向所述溯源文件,所述溯源文件包含所述密钥文件的唯一标识,所述执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件可以包括:
向所述密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台返回与所述唯一标识对应的密钥文件;
在接收到所述密钥管理平台返回的所述密钥文件之后,将所述密钥文件存储于终端本地内存中。
该溯源文件中记录密钥文件的唯一标识,通过该唯一标识可以方便地从该密钥管理平台找到该jar包加解密使用的密钥文件。在从该密钥管理平台接收到该密钥文件之后,将该密钥文件保存于终端本地的内存中,以便后续执行jar包解密时使用。
进一步的,所述采用所述密钥文件对所述jar包进行解密可以包括:
提取所述密钥文件中的解密密钥;
采用所述解密密钥对所述jar包进行解密;
删除终端本地接收到的所述密钥文件。
在采用该密钥文件中的解密密钥对该jar包解密之后,可以删除终端本地接收的该密钥文件,进一步保证该密钥文件的安全。
第三方面,本申请实施例提供了一种jar包的加密装置,包括:
第一密钥文件获取模块,用于若检测到对待加密的jar包进行打包的操作,则使用javaagent工具对所述打包的操作进行拦截,然后向服务器端的密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台生成并返回所述jar包加解密使用的密钥文件,所述密钥文件在生成后存储于所述密钥管理平台;
Jar包加密模块,用于在接收到所述密钥管理平台返回的所述密钥文件之后,采用所述密钥文件对所述jar包进行加密,并在加密后恢复所述打包的操作,得到所述jar包的加密压缩包文件;
溯源文件生成模块,用于在终端本地生成并保存所述密钥文件的溯源文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑。
第四方面,本申请实施例提供了一种jar包的解密装置,包括:
第二密钥文件获取模块,用于若检测到启动已加密的jar包的操作,则使用java agent工具对所述启动的操作进行拦截,然后执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑,所述溯源文件在所述jar包加密后生成并存储于终端本地,所述密钥文件在所述jar包加密前生成并存储于所述密钥管理平台;
Jar包解密模块,用于在从所述密钥管理平台获取到所述密钥文件之后,采用所述密钥文件对所述jar包进行解密,并在解密后恢复所述启动的操作。
第五方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面提出的jar包的加密方法的步骤,或者实现如本申请实施例第二方面提出的jar包的解密方法的步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第一方面提出的jar包的加密方法的步骤,或者实现如本申请实施例第二方面提出的jar包的解密方法的步骤。
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的jar包的加密方法的步骤,或者实现如本申请实施例第二方面提出的jar包的解密方法的步骤。
上述第三方面至第七方面所能实现的有益效果,可以参照上述第一方面和第二方面的相关说明。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种jar包的加密方法的一个实施例的流程图;
图2是本申请实施例提供的一种jar包的解密方法的一个实施例的流程图;
图3是本申请实施例提供的一种jar包的加密装置的一个实施例的结构图;
图4是本申请实施例提供的一种jar包的解密装置的一个实施例的结构图;
图5是本申请实施例提供的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请提出一种jar包的加解密方法、装置、终端设备和存储介质,能够方便地管理用于加解密的密钥文件,提高该密钥文件的安全性。应当理解,本申请各个实施例提出的jar包的加密方法或解密方法的执行主体是各种类型的终端设备,比如手机、PC机、笔记本电脑、平板电脑等。
请参阅图1,本申请实施例中一种jar包的加密方法的一个实施例包括:
101、若检测到对待加密的jar包进行打包的操作,则使用java agent工具对所述打包的操作进行拦截,然后向服务器端的密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台生成并返回所述jar包加解密使用的密钥文件;
Jar是一种软件包文件格式,通常用于聚合大量的java类文件、相关的元数据和资源文件,以便开发java平台应用软件或库。Jar包是一种归档文件,以zip格式构建,用户可以使用JDK自带的jar命令创建或提取jar文件。
用户在开发完成一个jar包之后,可以对该jar包进行打包。终端设备在检测到对该jar包的打包操作后,会使用java agent工具对打包的操作进行拦截,优先执行向密钥管理平台发送密钥文件获取请求,以及根据获得的密钥文件对jar包进行加密的操作。在加密结束后,再恢复执行该jar包的打包操作。通过这样设置,用户在打包一个jar包后,可以自动获得一个已加密的压缩包文件。
密钥管理平台是部署于服务器端的一个用于管理jar包加解密所使用的密钥文件的系统平台,该密钥管理平台在接收到终端设备发送的密钥文件获取请求后,会生成一个密钥文件,供该jar包加解密时使用。该密钥文件包含加密密钥和对应的解密密钥,该密钥文件在生成后存储于该密钥管理平台。另外,该密钥管理平台在生成该密钥文件之后,还可以一同生成该密钥文件的唯一标识,比如文件名称或者编号等,后续若需要再次使用该密钥文件,则可以通过该唯一标识快速地查找到该密钥文件。
Java agent是JDK 1.5 以后引入的工具,也可以叫做Java代理,是运行在main方法之前的拦截器,它内定的方法名叫premain,也就是说先执行premain方法然后再执行main方法。
使用java agent的基本步骤如下:
(1)定义一个MANIFEST.MF文件,必须包含Premain-Class选项,通常也会加入Can-Redefine-Classes和Can-Retransform-Classes选项;
(2)创建一个Premain-Class指定的类,类中包含premain方法,方法逻辑由用户自己确定;
(3)将premain的类和MANIFEST.MF文件打成jar包;
(4)使用参数-javaagent启动要代理的方法。
在执行以上步骤后,JVM会向执行premain方法,大部分类加载都会通过该方法。也就是说,这个方法是在main方法启动前拦截大部分类的加载活动。
具体的,main方法为jar包的打包操作,使用java agent工具对打包操作进行拦截,先执行premain方法中设置的jar包加密操作。
102、在接收到所述密钥管理平台返回的所述密钥文件之后,采用所述密钥文件对所述jar包进行加密,并在加密后恢复所述打包的操作,得到所述jar包的加密压缩包文件;
终端设备在接收到该密钥管理平台返回的密钥文件之后,就可以采用该密钥文件对该jar包进行加密,从而得到加密后的jar包。加密过程可以是拓展Classloader来对jar包内资源以及代码加密,避免代码泄露及被反编译。加解密采用的算法可以使用现有技术中的各类加解密算法,本申请对此不做任何限定。
进一步的,所述采用所述密钥文件对所述jar包进行加密可以包括:
(1)提取所述密钥文件中的加密密钥;
(2)采用所述加密密钥对所述jar包进行加密;
(3)删除终端本地接收到的所述密钥文件。
在采用该密钥文件中的加密密钥对该jar包加密之后,可以删除终端本地接收的该密钥文件,从而进一步保证该密钥文件的安全。
103、在终端本地生成并保存所述密钥文件的溯源文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑。
在加密jar包结束后,在终端本地生成并保存该密钥文件的溯源文件。该溯源文件可以是一个以native方式实现的二进制启动执行包(比如一个lib文件或so包文件),该执行包实现获取密钥文件的逻辑,也即从所述密钥管理平台获取所述密钥文件的代码逻辑,具体可以是通过该密钥文件的唯一标识从密钥管理平台查找并获取该密钥文件。
具体的,在步骤103之后,还可以包括:
若检测到执行所述溯源文件的操作指令,则向所述密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台返回与所述唯一标识对应的密钥文件。
当用户想要解压该jar包的加密压缩包文件时,可以点击执行该溯源文件,此时会向该密钥管理平台发送密钥文件获取请求,以指示该密钥管理平台返回与所述唯一标识对应的密钥文件,即在终端本地获取到该jar包的密钥文件。
本申请实施例,jar包加解密使用的密钥文件在生成后存储于服务器端的密钥管理平台,终端本地可以采用java agent工具向该密钥管理平台发送请求,从而获取该密钥文件并完成该jar包的加密操作。另外,通过在终端本地生成并保存该密钥文件的溯源文件,之后当需要解密该jar包时,可以通过该溯源文件从密钥管理平台查找到该密钥文件。由此可见,本申请实施例在jar包的加解密过程中,可以方便地管理用于加解密的密钥文件,提高密钥文件的安全性。
请参阅图2,本申请实施例中一种jar包的解密方法的一个实施例包括:
201、若检测到启动已加密的jar包的操作,则使用java agent工具对所述启动的操作进行拦截,然后执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件;
在采用图1所示的jar包的加密方法,完成jar包的加密操作之后,若需要对该jar包进行解密,则可以采用本实施例提出的jar包的解密方法。
首先,终端设备获取已加密的jar包。用户可以于终端设备上操作,点击启动该已加密的jar包,触发jar包的解密流程。此时会使用java agent工具对所述启动的操作进行拦截,然后执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件。
其中,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑,所述溯源文件在所述jar包加密后生成并存储于终端本地,所述密钥文件在所述jar包加密前生成并存储于所述密钥管理平台。关于该密钥管理平台和该溯源文件的具体说明,可参照本申请上一个实施例的相关内容。
进一步的,所述java agent工具的启动参数预设为指向所述溯源文件,所述溯源文件包含所述密钥文件的唯一标识,步骤201可以包括:
(1)向所述密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台返回与所述唯一标识对应的密钥文件;
(2)在接收到所述密钥管理平台返回的所述密钥文件之后,将所述密钥文件存储于终端本地内存中。
该溯源文件中记录密钥文件的唯一标识,通过该唯一标识可以方便从该密钥管理平台找到该jar包加解密使用的密钥文件。java agent工具的启动参数预设为指向该溯源文件,则java agent启动时,会自动执行该溯源文件,从该密钥管理平台获取相应的密钥文件。在从该密钥管理平台接收到该密钥文件之后,将该密钥文件保存于终端本地的内存中,以便后续执行jar包解密时使用。
202、在从所述密钥管理平台获取到所述密钥文件之后,采用所述密钥文件对所述jar包进行解密,并在解密后恢复所述启动的操作。
终端设备在获取该jar包的密钥文件后,即可使用该密钥文件中的解密密钥,对该加密的jar包进行解密,并在解密后恢复启动该jar包的操作。解密时采用的算法和该jar包加密时采用的算法相互对应,在获取该密钥文件后,将密钥文件存储于本地内存中,然后使用内存中的密钥文件数据,解密并启动该jar包。
进一步的,所述采用所述密钥文件对所述jar包进行解密可以包括:
(1)提取所述密钥文件中的解密密钥;
(2)采用所述解密密钥对所述jar包进行解密;
(3)删除终端本地接收到的所述密钥文件。
在采用该密钥文件中的解密密钥对该jar包解密之后,可以删除终端本地接收的该密钥文件,以保证该密钥文件的安全。当终端设备下次需要再解密jar包时,可以重新从该密钥管理平台获取相应的密钥文件。
本申请的核心是利用java agent技术,在jar包启动之前,动态获取到解密所需要的密钥文件,然后解密执行jar包,所有解密操作均在内存中进行,最大程度上保证了代码的安全。另外,该溯源文件相关代码的核心逻辑采用native方法进行编写,故很难对该溯源文件进行破解和截获,可以保证密钥文件管理及解密过程的数据安全。
本实施例提出的jar包的解密方法与本申请上一个实施例提出的jar包的加密方法相对应,在对jar包解密时,可以使用java agent工具执行终端本地保存的溯源文件,以从该密钥管理平台查找并获取该jar包的密钥文件,最后利用该密钥文件完成该jar包的解密操作。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的jar包的加密方法,图3示出了本申请实施例提供的一种jar包的加密装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图3,该装置包括:
第一密钥文件获取模块301,用于若检测到对待加密的jar包进行打包的操作,则使用java agent工具对所述打包的操作进行拦截,然后向服务器端的密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台生成并返回所述jar包加解密使用的密钥文件,所述密钥文件在生成后存储于所述密钥管理平台;
Jar包加密模块302,用于在接收到所述密钥管理平台返回的所述密钥文件之后,采用所述密钥文件对所述jar包进行加密,并在加密后恢复所述打包的操作,得到所述jar包的加密压缩包文件;
溯源文件生成模块303,用于在终端本地生成并保存所述密钥文件的溯源文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑。
进一步的,所述溯源文件包含所述密钥文件的唯一标识,所述jar包的加密装置还可以包括:
第三密钥文件获取模块,用于若检测到执行所述溯源文件的操作指令,则向所述密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台返回与所述唯一标识对应的密钥文件。
进一步的,所述Jar包加密模块可以包括:
加密密钥提取单元,用于提取所述密钥文件中的加密密钥;
加密单元,用于采用所述加密密钥对所述jar包进行加密;
第一文件删除单元,用于删除终端本地接收到的所述密钥文件。
对应于上文实施例所述的jar包的解密方法,图4示出了本申请实施例提供的一种jar包的解密装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,该装置包括:
第二密钥文件获取模块401,用于若检测到启动已加密的jar包的操作,则使用javaagent工具对所述启动的操作进行拦截,然后执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑,所述溯源文件在所述jar包加密后生成并存储于终端本地,所述密钥文件在所述jar包加密前生成并存储于所述密钥管理平台;
Jar包解密模块402,用于在从所述密钥管理平台获取到所述密钥文件之后,采用所述密钥文件对所述jar包进行解密,并在解密后恢复所述启动的操作。
进一步的,所述java agent工具的启动参数预设为指向所述溯源文件,所述溯源文件包含所述密钥文件的唯一标识,所述第二密钥文件获取模块可以包括:
文件获取请求发送单元,用于向所述密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台返回与所述唯一标识对应的密钥文件;
文件存储单元,用于在接收到所述密钥管理平台返回的所述密钥文件之后,将所述密钥文件存储于终端本地内存中。
进一步的,所述Jar包解密模块可以包括:
解密密钥提取单元,用于提取所述密钥文件中的解密密钥;
解密单元,用于采用所述解密密钥对所述jar包进行解密;
第二文件删除单元,用于删除终端本地接收到的所述密钥文件。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如图1提出的jar包的加密方法的步骤,或者实现如图2提出的jar包的解密方法的步骤。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在终端设备上运行时,使得终端设备执行时实现如图1提出的jar包的加密方法的步骤,或者实现如图2提出的jar包的解密方法的步骤。
本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如图1提出的jar包的加密方法的步骤,或者实现如图2提出的jar包的解密方法的步骤。
图5是本申请一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机可读指令52。所述处理器50执行所述计算机可读指令52时实现上述jar包的加密方法实施例中的步骤,例如图1所示的步骤101至103,或者实现上述jar包的解密方法实施例中的步骤,例如图2所示的步骤201至202。或者,所述处理器50执行所述计算机可读指令52时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至303的功能,或者图4所示模块401至402的功能。
示例性的,所述计算机可读指令52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令52在所述终端设备5中的执行过程。
所述终端设备5可以是智能手机、笔记本、掌上电脑及云端终端设备等计算设备。所述终端设备5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备5还可以包括输入输出设备、网络接入设备、总线等。
所述处理器50可以是中央处理单元(CentraL Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (DigitaL SignaL Processor,DSP)、专用集成电路(AppLication Specific Integrated Circuit,ASIC)、现成可编程门阵列 (FieLd-ProgrammabLe Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure DigitaL, SD)卡,闪存卡(FLash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机可读指令以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种jar包的加密方法,其特征在于,包括:
若检测到对待加密的jar包进行打包的操作,则使用java agent工具对所述打包的操作进行拦截,然后向服务器端的密钥管理平台发送密钥文件获取请求,
以指示所述密钥管理平台生成并返回所述jar包加解密使用的密钥文件,所述密钥文件在生成后存储于所述密钥管理平台;
在接收到所述密钥管理平台返回的所述密钥文件之后,采用所述密钥文件对所述jar包进行加密,并在加密后恢复所述打包的操作,得到所述jar包的加密压缩包文件;
在终端本地生成并保存所述密钥文件的溯源文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑。
2.如权利要求1所述的加密方法,其特征在于,所述溯源文件包含所述密钥文件的唯一标识,在终端本地生成并保存所述密钥文件的溯源文件之后,还包括:
若检测到执行所述溯源文件的操作指令,则向所述密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台返回与所述唯一标识对应的密钥文件。
3.如权利要求1或2所述的加密方法,其特征在于,所述采用所述密钥文件对所述jar包进行加密包括:
提取所述密钥文件中的加密密钥;
采用所述加密密钥对所述jar包进行加密;
删除终端本地接收到的所述密钥文件。
4.一种jar包的解密方法,其特征在于,包括:
若检测到启动已加密的jar包的操作,则使用java agent工具对所述启动的操作进行拦截,然后执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑,所述溯源文件在所述jar包加密后生成并存储于终端本地,所述密钥文件在所述jar包加密前生成并存储于所述密钥管理平台;
在从所述密钥管理平台获取到所述密钥文件之后,采用所述密钥文件对所述jar包进行解密,并在解密后恢复所述启动的操作。
5.如权利要求4所述的解密方法,其特征在于,所述java agent工具的启动参数预设为指向所述溯源文件,所述溯源文件包含所述密钥文件的唯一标识,所述执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件包括:
向所述密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台返回与所述唯一标识对应的密钥文件;
在接收到所述密钥管理平台返回的所述密钥文件之后,将所述密钥文件存储于终端本地内存中。
6.如权利要求4或5所述的解密方法,其特征在于,所述采用所述密钥文件对所述jar包进行解密包括:
提取所述密钥文件中的解密密钥;
采用所述解密密钥对所述jar包进行解密;
删除终端本地接收到的所述密钥文件。
7.一种jar包的加密装置,其特征在于,包括:
第一密钥文件获取模块,用于若检测到对待加密的jar包进行打包的操作,则使用javaagent工具对所述打包的操作进行拦截,然后向服务器端的密钥管理平台发送密钥文件获取请求,以指示所述密钥管理平台生成并返回所述jar包加解密使用的密钥文件,所述密钥文件在生成后存储于所述密钥管理平台;
Jar包加密模块,用于在接收到所述密钥管理平台返回的所述密钥文件之后,采用所述密钥文件对所述jar包进行加密,并在加密后恢复所述打包的操作,得到所述jar包的加密压缩包文件;
溯源文件生成模块,用于在终端本地生成并保存所述密钥文件的溯源文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑。
8.一种jar包的解密装置,其特征在于,包括:
第二密钥文件获取模块,用于若检测到启动已加密的jar包的操作,则使用java agent工具对所述启动的操作进行拦截,然后执行终端本地保存的溯源文件,以从服务器端的密钥管理平台获取所述jar包加解密使用的密钥文件,所述溯源文件记录从所述密钥管理平台获取所述密钥文件的代码逻辑,所述溯源文件在所述jar包加密后生成并存储于终端本地,所述密钥文件在所述jar包加密前生成并存储于所述密钥管理平台;
Jar包解密模块,用于在从所述密钥管理平台获取到所述密钥文件之后,采用所述密钥文件对所述jar包进行解密,并在解密后恢复所述启动的操作。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的jar包的加密方法的步骤,或者实现如权利要求4至6中任一项所述的jar包的解密方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的jar包的加密方法的步骤,或者实现如权利要求4至6中任一项所述的jar包的解密方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010691503.3A CN111737718A (zh) | 2020-07-17 | 2020-07-17 | 一种jar包的加解密方法、装置、终端设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010691503.3A CN111737718A (zh) | 2020-07-17 | 2020-07-17 | 一种jar包的加解密方法、装置、终端设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111737718A true CN111737718A (zh) | 2020-10-02 |
Family
ID=72654898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010691503.3A Pending CN111737718A (zh) | 2020-07-17 | 2020-07-17 | 一种jar包的加解密方法、装置、终端设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737718A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199645A (zh) * | 2020-10-16 | 2021-01-08 | 国能日新科技股份有限公司 | 基于Springboot的Jar包加密方法及装置 |
CN112966229A (zh) * | 2021-05-14 | 2021-06-15 | 支付宝(杭州)信息技术有限公司 | 安全运行sdk的方法及装置 |
CN113238762A (zh) * | 2021-05-10 | 2021-08-10 | 深圳前海微众银行股份有限公司 | java应用远程部署方法、装置及设备 |
CN114531676A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种密钥处理方法、装置和终端设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722670A (zh) * | 2012-05-29 | 2012-10-10 | 中国联合网络通信集团有限公司 | 基于移动存储设备的文件保护方法、设备和系统 |
CN102819695A (zh) * | 2011-09-20 | 2012-12-12 | 金蝶软件(中国)有限公司 | 基于Jar文件的授权方法及应用服务器 |
CN103150494A (zh) * | 2013-03-05 | 2013-06-12 | 华为技术有限公司 | Java类对象的解扰运行方法、加扰形成方法及其装置 |
CN103530581A (zh) * | 2013-10-09 | 2014-01-22 | 中国联合网络通信集团有限公司 | 硬盘加密方法和操作系统 |
CN105022936A (zh) * | 2014-04-30 | 2015-11-04 | 北京畅游天下网络技术有限公司 | 一种类class文件加密解密方法和装置 |
CN110352413A (zh) * | 2017-03-16 | 2019-10-18 | 于俊 | 一种基于策略的实时数据文件访问控制方法与系统 |
-
2020
- 2020-07-17 CN CN202010691503.3A patent/CN111737718A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819695A (zh) * | 2011-09-20 | 2012-12-12 | 金蝶软件(中国)有限公司 | 基于Jar文件的授权方法及应用服务器 |
CN102722670A (zh) * | 2012-05-29 | 2012-10-10 | 中国联合网络通信集团有限公司 | 基于移动存储设备的文件保护方法、设备和系统 |
CN103150494A (zh) * | 2013-03-05 | 2013-06-12 | 华为技术有限公司 | Java类对象的解扰运行方法、加扰形成方法及其装置 |
CN103530581A (zh) * | 2013-10-09 | 2014-01-22 | 中国联合网络通信集团有限公司 | 硬盘加密方法和操作系统 |
CN105022936A (zh) * | 2014-04-30 | 2015-11-04 | 北京畅游天下网络技术有限公司 | 一种类class文件加密解密方法和装置 |
CN110352413A (zh) * | 2017-03-16 | 2019-10-18 | 于俊 | 一种基于策略的实时数据文件访问控制方法与系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199645A (zh) * | 2020-10-16 | 2021-01-08 | 国能日新科技股份有限公司 | 基于Springboot的Jar包加密方法及装置 |
CN114531676A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种密钥处理方法、装置和终端设备 |
CN114531676B (zh) * | 2020-10-30 | 2024-04-09 | 华为技术有限公司 | 一种密钥处理方法、装置和终端设备 |
CN113238762A (zh) * | 2021-05-10 | 2021-08-10 | 深圳前海微众银行股份有限公司 | java应用远程部署方法、装置及设备 |
CN112966229A (zh) * | 2021-05-14 | 2021-06-15 | 支付宝(杭州)信息技术有限公司 | 安全运行sdk的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737718A (zh) | 一种jar包的加解密方法、装置、终端设备和存储介质 | |
CN108229112B (zh) | 一种保护应用程序、应用程序的运行方法以及装置 | |
US20160203087A1 (en) | Method for providing security for common intermediate language-based program | |
CN109784007B (zh) | 一种字节码加密的方法、字节码解密的方法及终端 | |
CN107528865B (zh) | 文件的下载方法和系统 | |
CN108399319B (zh) | 源代码保护方法、应用服务器及计算机可读存储介质 | |
CN111143869A (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
KR101695639B1 (ko) | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 | |
US20140281499A1 (en) | Method and system for enabling communications between unrelated applications | |
CN115442032A (zh) | 一种数据处理方法、片上系统及可读存储介质 | |
CN113961226B (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
CN111417927B (zh) | 资源权限处理方法、装置、存储介质及芯片 | |
JP6698775B2 (ja) | 共有オブジェクトのコード保護のための保安提供装置と方法、及び保安実行装置と方法 | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 | |
KR101667774B1 (ko) | 스크립트 프로그램을 위한 보안 제공 장치 및 방법 | |
JP2008040853A (ja) | アプリケーション実行方法およびアプリケーション実行装置 | |
CN110109717A (zh) | 一种安卓插件的加载控制方法、装置和计算机设备 | |
JP2013045277A (ja) | プログラム難読化方法およびリモートデバッグシステム | |
CN107403103B (zh) | 文件解密方法和装置 | |
CN113141329B (zh) | 大数据挖掘方法、装置、设备和存储介质 | |
CN106648770B (zh) | 一种应用程序安装包的生成方法、加载方法及装置 | |
CN114139215A (zh) | 一种动态库文件加载方法及装置 | |
CN111460464B (zh) | 数据加解密方法、装置、电子设备及计算机存储介质 | |
CN109241180B (zh) | 一种基于日志的数据同步的方法及装置 | |
CN113553553A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201002 |