CN111310218A - 一种java class核心文件的保护方法及装置 - Google Patents
一种java class核心文件的保护方法及装置 Download PDFInfo
- Publication number
- CN111310218A CN111310218A CN202010128819.1A CN202010128819A CN111310218A CN 111310218 A CN111310218 A CN 111310218A CN 202010128819 A CN202010128819 A CN 202010128819A CN 111310218 A CN111310218 A CN 111310218A
- Authority
- CN
- China
- Prior art keywords
- java class
- core file
- class core
- key
- classloader
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种java class核心文件的保护方法及装置,所述方法包括:获取java class核心文件及密匙,并将所述密匙保存至目标服务器;基于所述密匙,将所述java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;确定classloader,并将所述classloader放置于所述目标服务器;当需要使用所述java class核心文件时,通过所述classloader对所述加密后的java class核心文件进行加载,以得到所述java class核心文件。通过本发明的技术方案,java class核心文件中的代码不容易被反编译,这就不会造成核心代码的泄露。
Description
技术领域
本发明涉及文件保护技术领域,特别涉及一种java class核心文件的保护方法及装置。
背景技术
Java class文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。
Java class文件中的代码容易被反编译,这就造成核心代码的泄露,进而给公司带来不可估量的损失。
发明内容
本发明提供一种java class核心文件的保护方法及装置,所述技术方案如下:
根据本发明实施例的第一方面,提供了一种java class核心文件的保护方法,包括:
获取java class核心文件及密匙,并将所述密匙保存至目标服务器;
基于所述密匙,将所述java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;
确定classloader,并将所述classloader放置于所述目标服务器;
当需要使用所述java class核心文件时,通过所述classloader对所述加密后的java class核心文件进行加载,以得到所述java class核心文件。
在一个实施例中,所述当需要使用所述java class核心文件时,通过所述classloader对所述加密后的java class核心文件进行加载,以得到所述java class核心文件,包括:
从所述目标服务器中获取所述密匙和所述classloader;
所述classloader通过所述密匙对所述加密后的java class核心文件进行解密,以得到解密后的java class核心文件;
通过classloader将所述解密后的java class核心文件加载到目标地址,以得到所述java class核心文件。
在一个实施例中,所述从所述目标服务器中获取所述密匙和所述classloader,包括:
通过https协议进行身份认证,以得到身份认证结果;
根据所述身份认证结果判断认证是否通过,当认征通过时,从所述目标服务器中提取出所述密匙和所述classloader。
在一个实施例中,所述classloader通过所述密匙对所述加密后的java class核心文件进行解密,以得到解密后的java class核心文件,包括:
获取加载新类请求;
基于所述加载新类请求,所述classloader对所述加密后的java class核心文件执行读入操作;
当所述读入操作完成时,通过所述密匙对所述加密后的java class核心文件进行解密,以得到所述解密后的java class核心文件。
在一个实施例中,所述预设算法为对称加密算法。
根据本发明实施例的第二方面,提供了一种java class核心文件的保护装置,包括:
获取模块,用于获取java class核心文件及密匙,并将所述密匙保存至目标服务器;
加密模块,用于基于所述密匙,将所述java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;
确定模块,用于确定classloader,并将所述classloader放置于所述目标服务器;
加载模块,用于当需要使用所述java class核心文件时,通过所述classloader对所述加密后的java class核心文件进行加载,以得到所述java class核心文件。
在一个实施例中,所述加载模块,包括:
获取子模块,用于从所述目标服务器中获取所述密匙和所述classloader;
解密子模块,用于所述classloader通过所述密匙对所述加密后的java class核心文件进行解密,以得到解密后的java class核心文件;
加载子模块,用于通过classloader将所述解密后的java class核心文件加载到目标地址,以得到所述java class核心文件。
在一个实施例中,所述获取子模块,包括:
认证单元,用于通过https协议进行身份认证,以得到身份认证结果;
判断单元,用于根据所述身份认证结果判断认证是否通过,当认征通过时,从所述目标服务器中提取出所述密匙和所述classloader。
在一个实施例中,所述解密子模块,包括:
获取单元,用于获取加载新类请求;
执行单元,用于基于所述加载新类请求,所述classloader对所述加密后的javaclass核心文件执行读入操作;
解密单元,用于当所述读入操作完成时,通过所述密匙对所述加密后的javaclass核心文件进行解密,以得到所述解密后的java class核心文件。
在一个实施例中,所述预设算法为对称加密算法。
本发明的实施例提供的技术方案可以包括以下有益效果:
首先,获取java class核心文件及密匙,并将密匙保存至目标服务器;然后,将java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;进而,确定classloader,并将classloader放置于目标服务器;最后,当需要使用java class核心文件时,通过classloader对加密后的java class核心文件进行加载,以得到java class核心文件。本发明的技术方案,对核心文件进行加密,并且用于解密的classloader不在本地代码中,因此,即使java class核心文件被别人获取,也不容易进行反编译,这就不会造成核心代码的泄露,也不会给公司带来损失。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明一实施例中一种java class核心文件的保护方法的流程图;
图2为本发明一实施例中另一种java class核心文件的保护方法的流程图;
图3为本发明一实施例中一种java class核心文件的保护装置的框图;
图4为本发明一实施例中另一种java class核心文件的保护装置的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为本发明一实施例中一种java class核心文件的保护方法的流程图,如图1所示,该方法可被实施为以下步骤S11-S14:
在步骤S11中,获取java class核心文件及密匙,并将密匙保存至目标服务器;
在步骤S12中,基于密匙,将java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;
在步骤S13中,确定classloader,并将classloader放置于目标服务器;其中,目标服务器可以是web服务器。
在步骤S14中,当需要使用java class核心文件时,通过classloader对加密后的java class核心文件进行加载,以得到java class核心文件。
首先,获取java class核心文件及密匙,并将密匙保存至目标服务器;然后,将java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;进而,确定classloader,并将classloader放置于目标服务器;最后,当需要使用java class核心文件时,通过classloader对加密后的java class核心文件进行加载,以得到java class核心文件。本发明的技术方案,对核心文件进行加密,并且用于解密的classloader不在本地代码中,因此,即使java class核心文件被别人获取,也不容易进行反编译,这就不会造成核心代码的泄露,也不会给公司带来损失。
如图2所示,在一个实施例中,上述步骤S14可被实施为以下步骤S141-S143:
在步骤S141中,从目标服务器中获取密匙和classloader;
在步骤S142中,classloader通过密匙对加密后的java class核心文件进行解密,以得到解密后的java class核心文件;
在步骤S143中,通过classloader将解密后的java class核心文件加载到目标地址,以得到java class核心文件。其中,目标地址为java虚拟机。
首先,从目标服务器中获取密匙和classloader;之后,classloader通过密匙对加密后的java class核心文件进行解密,以得到解密后的java class核心文件;进而,通过classloader将解密后的java class核心文件加载到目标地址,以得到java class核心文件。classloader存储于目标服务器中,不在本地代码内,通过classloader进行解密的时候,更加的安全可靠。
在一个实施例中,所述从所述目标服务器中获取所述密匙和所述classloader,包括:
通过https协议进行身份认证,以得到身份认证结果;
根据所述身份认证结果判断认证是否通过,当认征通过时,从所述目标服务器中提取出所述密匙和所述classloader。
通过https协议进行身份认证,然后根据身份验证结果判断认证是否通过,认证通过时再提取密匙和classloader,通过本方案,增加了一个认证机制,提高了安全性。
在一个实施例中,所述classloader通过所述密匙对所述加密后的java class核心文件进行解密,以得到解密后的java class核心文件,包括:
获取加载新类请求;
基于所述加载新类请求,所述classloader对所述加密后的java class核心文件执行读入操作;
当所述读入操作完成时,通过所述密匙对所述加密后的java class核心文件进行解密,以得到所述解密后的java class核心文件。
通过根据加载新类进行后续操作,能够避免classloader执行不必要的操作。
在一个实施例中,所述预设算法为对称加密算法。
使用对称加密算法时计算量小、加密速度快、加密效率高。
对本发明实施例提供的上述一种java class核心文件的保护方法,本发明实施例还提供了一种java class核心文件的保护装置,如图3所示,该装置包括:
获取模块31,用于获取java class核心文件及密匙,并将所述密匙保存至目标服务器;
加密模块32,用于基于所述密匙,将所述java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;
确定模块33,用于确定classloader,并将所述classloader放置于所述目标服务器;
加载模块34,用于当需要使用所述java class核心文件时,通过所述classloader对所述加密后的java class核心文件进行加载,以得到所述java class核心文件。
如图4所示,在一个实施例中,所述加载模块34,包括:
获取子模块341,用于从所述目标服务器中获取所述密匙和所述classloader;
解密子模块342,用于所述classloader通过所述密匙对所述加密后的java class核心文件进行解密,以得到解密后的java class核心文件;
加载子模块343,用于通过classloader将所述解密后的java class核心文件加载到目标地址,以得到所述java class核心文件。
在一个实施例中,所述获取子模块,包括:
认证单元,用于通过https协议进行身份认证,以得到身份认证结果;
判断单元,用于根据所述身份认证结果判断认证是否通过,当认征通过时,从所述目标服务器中提取出所述密匙和所述classloader。
在一个实施例中,所述解密子模块,包括:
获取单元,用于获取加载新类请求;
执行单元,用于基于所述加载新类请求,所述classloader对所述加密后的javaclass核心文件执行读入操作;
解密单元,用于当所述读入操作完成时,通过所述密匙对所述加密后的javaclass核心文件进行解密,以得到所述解密后的java class核心文件。
在一个实施例中,所述预设算法为对称加密算法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种java class核心文件的保护方法,其特征在于,包括:
获取java class核心文件及密匙,并将所述密匙保存至目标服务器;
基于所述密匙,将所述java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;
确定classloader,并将所述classloader放置于所述目标服务器;
当需要使用所述java class核心文件时,通过所述classloader对所述加密后的javaclass核心文件进行加载,以得到所述java class核心文件。
2.如权利要求1所述的方法,其特征在于,所述当需要使用所述java class核心文件时,通过所述classloader对所述加密后的java class核心文件进行加载,以得到所述javaclass核心文件,包括:
从所述目标服务器中获取所述密匙和所述classloader;
所述classloader通过所述密匙对所述加密后的java class核心文件进行解密,以得到解密后的java class核心文件;
通过classloader将所述解密后的java class核心文件加载到目标地址,以得到所述java class核心文件。
3.如权利要求2所述的方法,其特征在于,所述从所述目标服务器中获取所述密匙和所述classloader,包括:
通过https协议进行身份认证,以得到身份认证结果;
根据所述身份认证结果判断认证是否通过,当认征通过时,从所述目标服务器中提取出所述密匙和所述classloader。
4.如权利要求2所述的方法,其特征在于,所述classloader通过所述密匙对所述加密后的java class核心文件进行解密,以得到解密后的java class核心文件,包括:
获取加载新类请求;
基于所述加载新类请求,所述classloader对所述加密后的java class核心文件执行读入操作;
当所述读入操作完成时,通过所述密匙对所述加密后的java class核心文件进行解密,以得到所述解密后的java class核心文件。
5.如权利要求1所述的方法,其特征在于,所述预设算法为对称加密算法。
6.一种java class核心文件的保护装置,其特征在于,包括:
获取模块,用于获取java class核心文件及密匙,并将所述密匙保存至目标服务器;
加密模块,用于基于所述密匙,将所述java class核心文件经过预设算法进行加密,得到加密后的java class核心文件;
确定模块,用于确定classloader,并将所述classloader放置于所述目标服务器;
加载模块,用于当需要使用所述java class核心文件时,通过所述classloader对所述加密后的java class核心文件进行加载,以得到所述java class核心文件。
7.如权利要求6所述的装置,其特征在于,所述加载模块,包括:
获取子模块,用于从所述目标服务器中获取所述密匙和所述classloader;
解密子模块,用于所述classloader通过所述密匙对所述加密后的java class核心文件进行解密,以得到解密后的java class核心文件;
加载子模块,用于通过classloader将所述解密后的java class核心文件加载到目标地址,以得到所述java class核心文件。
8.如权利要求7所述的装置,其特征在于,所述获取子模块,包括:
认证单元,用于通过https协议进行身份认证,以得到身份认证结果;
判断单元,用于根据所述身份认证结果判断认证是否通过,当认征通过时,从所述目标服务器中提取出所述密匙和所述classloader。
9.如权利要求7所述的装置,其特征在于,所述解密子模块,包括:
获取单元,用于获取加载新类请求;
执行单元,用于基于所述加载新类请求,所述classloader对所述加密后的java class核心文件执行读入操作;
解密单元,用于当所述读入操作完成时,通过所述密匙对所述加密后的java class核心文件进行解密,以得到所述解密后的java class核心文件。
10.如权利要求6所述的装置,其特征在于,所述预设算法为对称加密算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010128819.1A CN111310218A (zh) | 2020-02-28 | 2020-02-28 | 一种java class核心文件的保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010128819.1A CN111310218A (zh) | 2020-02-28 | 2020-02-28 | 一种java class核心文件的保护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111310218A true CN111310218A (zh) | 2020-06-19 |
Family
ID=71148403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010128819.1A Pending CN111310218A (zh) | 2020-02-28 | 2020-02-28 | 一种java class核心文件的保护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111310218A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238762A (zh) * | 2021-05-10 | 2021-08-10 | 深圳前海微众银行股份有限公司 | java应用远程部署方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124667A1 (en) * | 2010-11-12 | 2012-05-17 | National Chiao Tung University | Machine-implemented method and system for determining whether a to-be-analyzed software is a known malware or a variant of the known malware |
CN103544415A (zh) * | 2013-10-25 | 2014-01-29 | 苏州通付盾信息技术有限公司 | 一种移动平台应用软件的加固方法 |
CN104657635A (zh) * | 2013-11-20 | 2015-05-27 | 方正信息产业控股有限公司 | 一种应用处理方法、装置和服务器 |
CN105022936A (zh) * | 2014-04-30 | 2015-11-04 | 北京畅游天下网络技术有限公司 | 一种类class文件加密解密方法和装置 |
CN109194625A (zh) * | 2018-08-10 | 2019-01-11 | 厦门市美亚柏科信息股份有限公司 | 一种基于云端服务器的客户端应用保护方法、装置及存储介质 |
-
2020
- 2020-02-28 CN CN202010128819.1A patent/CN111310218A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124667A1 (en) * | 2010-11-12 | 2012-05-17 | National Chiao Tung University | Machine-implemented method and system for determining whether a to-be-analyzed software is a known malware or a variant of the known malware |
CN103544415A (zh) * | 2013-10-25 | 2014-01-29 | 苏州通付盾信息技术有限公司 | 一种移动平台应用软件的加固方法 |
CN104657635A (zh) * | 2013-11-20 | 2015-05-27 | 方正信息产业控股有限公司 | 一种应用处理方法、装置和服务器 |
CN105022936A (zh) * | 2014-04-30 | 2015-11-04 | 北京畅游天下网络技术有限公司 | 一种类class文件加密解密方法和装置 |
CN109194625A (zh) * | 2018-08-10 | 2019-01-11 | 厦门市美亚柏科信息股份有限公司 | 一种基于云端服务器的客户端应用保护方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
PATRICK CHAN 等: "《Java 2类库》", 31 January 2001 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238762A (zh) * | 2021-05-10 | 2021-08-10 | 深圳前海微众银行股份有限公司 | java应用远程部署方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102175117B1 (ko) | 인증 방법, 디바이스 및 인증 클라이언트 | |
EP3528149B1 (en) | Software repackaging prevention method and device | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
CN111884986B (zh) | 一种数据加密处理方法、装置及存储介质 | |
CN108021812B (zh) | 一种芯片的安全启动方法及装置 | |
CN113761482A (zh) | 一种程序代码保护方法和装置 | |
US20180067777A1 (en) | Application protection method, server, and terminal | |
CN111240709A (zh) | 一种基于android系统的POS设备的固件升级方法及系统 | |
CN108804913B (zh) | 应用程序的运行方法和装置 | |
CN113360913A (zh) | 一种恶意程序检测方法、装置、电子设备及存储介质 | |
CN111737718A (zh) | 一种jar包的加解密方法、装置、终端设备和存储介质 | |
CN110321678B (zh) | 一种虚拟系统的控制方法、装置、设备和介质 | |
CN111382447B (zh) | 安装包的加密方法、存储介质及计算机设备 | |
CN110837643B (zh) | 一种可信执行环境的激活方法和装置 | |
CN111310218A (zh) | 一种java class核心文件的保护方法及装置 | |
US20210248088A1 (en) | Cryptography module and method for operating same | |
CN104657635A (zh) | 一种应用处理方法、装置和服务器 | |
CN107995230B (zh) | 一种下载方法及终端 | |
CN110502900B (zh) | 一种检测方法、终端、服务器及计算机存储介质 | |
CN112231674A (zh) | 一种url地址的跳转验证方法、系统及电子设备 | |
CN116800535A (zh) | 多台服务器之间相互免密方法及装置 | |
CN107133539B (zh) | 智能卡个人化方法及相关装置与系统 | |
CN111522555B (zh) | apk文件的加固方法、解密方法及相关装置 | |
CN101175269A (zh) | 通信终端及通信终端系统自举的方法及装置 | |
CN116305005A (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 |
Application publication date: 20200619 |
|
RJ01 | Rejection of invention patent application after publication |