CN114943062B - 数据处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114943062B CN114943062B CN202210555771.1A CN202210555771A CN114943062B CN 114943062 B CN114943062 B CN 114943062B CN 202210555771 A CN202210555771 A CN 202210555771A CN 114943062 B CN114943062 B CN 114943062B
- Authority
- CN
- China
- Prior art keywords
- data packet
- code file
- program
- decryption
- target data
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000004806 packaging method and process Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 description 11
- 238000012795 verification Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000012856 packing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000005336 cracking Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000004898 kneading Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer 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/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备及计算机可读存储介质,涉及数据处理技术领域。该方法包括:采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一解密算法打包,获得目标数据包;采用第二加密算法,对第一秘钥进行加密得到第二秘钥;生成包含解密信息的启动引导程序,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。本申请实施例实现了将字节码形式的代码文件进行加密,无法被反编译,启动引导程序为非字节码的二进制文件,进一步防止代码文件被反编译。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,本申请涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。
背景技术
Java语言具有优秀的跨平台能力和高移植性,因为Java的平台无关性和高移植性使得用Java编写的程序可以在任何安装了Java虚拟机的计算机上正确的运行。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译,Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改地运行,Java虚拟机在执行字节码时,把Java字节码解释成具体平台上的机器指令执行。
Java字节码独立于计算机硬件及操作系统,在运行时由Java虚拟机负责解释并即时生成本机机器代码而执行。Java字节码非常容易被各类反编译工具分析并反编译还原为Java源程序代码,这就导致了各类Java应用软件在版权保护、防止盗版破解等方面的能力变得异常薄弱。一些技术为了阻止对Java字节码进行反编译,在最初编译Java字节码文件时,对Java字节码进行混淆,生成混淆后的java字节码文件,并将混淆后的java字节码文件打包成jar包,运行时通过java-jar的方式启动,由java虚拟机将jar包读入内存,并进行解释运行。
虽然在编译java字节码时,对java字节码进行了混淆,混淆仅仅是降低了反编译后得到的java源码的可读性,代码逻辑仍然是可见的,仍然可以使用JD-gui等反向工程工具对java字节码进行反编译,轻松的将jar包中java字节码文件反编译为java源码,因此,仅对java字节码进行混淆无法对java源码起到实质性的保护作用,仍不能有效阻止对java字节码的反编译。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,可以解决java字节码容易被反编译的问题。所述技术方案如下:
根据本申请实施例的第一方面,提供了一种数据处理方法,该方法包括:
采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;
采用第二加密算法,对第一秘钥进行加密得到第二秘钥;
生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;
生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。
在一个可能的实现方式中,得目标数据包之后,还包括:
基于目标数据包的属性信息,生成第一摘要值,第一摘要值用于校验目标数据包是否被篡改。
在一个可能的实现方式中,基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件,包括:
在目标运行平台根据目标数据包的属性信息,生成第二摘要值;
根据第一摘要值对第二摘要值进行校验,并在校验通过后根据第二解密算法对第二秘钥进行解密,得到第一秘钥;
根据第一解密算法以及第一秘钥,对加密后的代码文件进行解密,获得代码文件;
指示虚拟机解释运行代码文件。
在一个可能的实现方式中,生成包含解密信息的启动引导程序,包括:
将第一摘要值以及解密信息作为全局变量编译至待生成的启动引导程序的源码;
通过预设的交叉编译器将待生成的启动引导程序的源码编译为应用于目标平台的启动应用程序。
在一个可能的实现方式中,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,包括:
将第一加密算法对应的第一解密算法配置于初始应用程序的类加载器中,并将加密后的代码文件和类加载器打包。
在一个可能的实现方式中,第二加密算法为预设的动态加密算法;动态加密算法包括UUID加密算法。
在一个可能的实现方式中,基于目标数据包的属性信息,生成第一摘要值,包括:
确定目标数据包的属性信息,属性信息包括数据包名称、数据包大小、数据包路径中的至少一种;
确定属性信息的位长,将属性信息的位长调整至预设位长;
提取第一预设比特位至第二预设比特位的数值,将第一预设比特位至第二预设比特位的数值的和作为第一摘要值。
根据本申请实施例的第二方面,提供了一种数据处理装置,该装置包括:
第一加密模块,用于采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;
第二加密模块,用于采用第二加密算法,对第一秘钥进行加密得到第二秘钥;
启动引导程序生成模块,用于生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;
目标应用程序生成模块,用于生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。
根据本申请实施例的第三方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
根据本申请实施例的第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;采用第二加密算法,对第一秘钥进行加密得到第二秘钥;生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。本申请实施例一方面实现了将字节码形式的代码文件进行加密,得到目标数据包,目标数据包中的代码文件是加密的,无法被反编译,另一方面,本申请实施例生成的目标应用程序中的目标数据包是字节码文件,而启动引导程序是字节码的二进制文件,二者是不同的格式能够有效保护代码文件,防止代码文件被反编译。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的一种解密目标数据包的流程示意图;
图3为本申请实施例提供的打包平台和目标运行平台上的目标应用程序的交互过程的示意图;
图4为本申请实施例提供的一种数据处理装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
字节码(Byte-code)是一种包含执行程序、由一序列op代码/数据对组成的二进制文件。字节码是一种中间码,它比机器码更抽象。
本申请提供的数据处理方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供了一种数据处理的方法,如图1所示,该方法包括:
步骤S101,采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件。
本申请实施例执行主体可以为打包平台。
可以理解的是,一般的高级语言生成的应用程序如果要在不同的平台上运行,至少需要编译成不同的代码,而java语言则无需如此,java语言具有优秀的跨平台能力和高移植性,Java语言在不同平台上运行时不需要重新编译,Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改地运行,Java虚拟机在执行字节码时,把Java字节码解释成具体平台上的机器指令执行。
本申请实施例初始应用程序的代码文件即为使用java字节码文件,使用java语言编译的源码文件(即扩展名“.java”的文件)经过编译器编译后生成扩展名为“.class”的字节码文件,即本申请实施例的初始应用程序的代码文件为易被反编译的字节码文件。
本申请实施例代码文件为按照一定规则混淆的目标应用程序的字节码文件,即在对java语言编译的源码进行编译的过程中对生成的字节码进行混淆,得到混淆的字节码,对混淆后的字节码进行反编译得到的代码的可读性较差,在一定程序上可防止反编译,本申请对混淆的具体的混淆方式不作限制。
本申请实施例第一秘钥是动态随机生成的秘钥,可以是高强度秘钥,防止被暴力破解,具体地,可以使用唯一识别码UUID(Universally Unique Identifier)工具随机生成第一秘钥,保证每个第一秘钥都是唯一的,降低秘钥被破解的风险。
本申请实施例采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,使得加密后的代码文件无法被直接反编译。
另外,本申请实施例的第一秘钥除了是动态秘钥外,也是对称秘钥,即加密过程使用的秘钥和解密过程使用的秘钥是相同的,使用对称加密算法和对称秘钥实现对应用程序的代码文件进行对称加密。
本申请实施例通过采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包的过程可分为以下步骤(图中未显示):
步骤S1011,获取初始应用程序的代码文件,对代码文件进行打包,得到第一数据包;
步骤S1012,根据第一加密算法、第一秘钥对第一数据包进行加密,得到第二数据包;
步骤S1013,将第一加密算法对应的第一解密算法以及第二数据包进行打包,得到目标数据包。
本申请实施例对初始应用程序的代码文件进行打包即可得到第一数据包,对初始应用程序的代码文件进行打包实际上是对初始应用程序生成的第一数据进行打包,代码文件所在的文件为“.class”文件(字节码文件),对“.class”文件进行打包后得到的第一数据包为jar包。
本申请实施例在得到第一数据包之后,通过第一加密算法、第一秘钥对第一数据包进行加密,得到第二数据包。
对于对称加密而言,加密过程使用第一加密算法、第一秘钥对数据进行加密时,在解密过程中,需要第一解密算法和第一秘钥对数据进行解密,因此需要将第一加密算法对应的第一解密算法也合并至第二数据包中,以使得后续可以对第二数据包进行解密,第一加密算法和第一解密算法是相同的。
本申请实施例在得到第二数据包之后,将第二数据包和第一解密算法进行打包,得到目标数据包,即目标数据包中包括加密的代码文件和第一解密算法。
步骤S102,采用第二加密算法,对第一秘钥进行加密得到第二秘钥。
本申请实施例在通过第一加密算法、第一秘钥对代码文件进行加密之后,还进一步对第一秘钥进行了加密,防止非法用户得到该第一秘钥,本申请实施例可通过第二加密算法对该第一秘钥进行加密,得到第二秘钥,第二秘钥是加密的第一秘钥,无法直接解密该目标数据包。
本申请实施例第二加密算法可以为数据加密DES(Data Encryption Algorithm)算法以及分组加密RC2算法等,本申请实施例对此不作限制。
步骤S103,生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法。
本申请实施例目标数据包中包括加密的代码文件,加密的代码文件的第一秘钥被第二加密算法加密,因此,虚拟机无法直接解析运行该目标数据包,本申请实施例生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法。
本申请实施例生成启动引导程序后,启动引导程序能够对目标数据包中的代码文件进行解密,使得虚拟机可以解释运行该目标数据包。
本申请实施例启动引导程序是非字节码文件的二进制文件,非字节码文件的二进制文件和字节码不同,非字节码文件的二进制文件不易被JD-gui等反向工程工具反编译。
步骤S104,生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。
本申请实施例在得到启动引导程序后,生成包含目标数据包以及启动引动程序的目标应用程序,将该目标应用程序发送到目标运行平台,使得目标应用程序在目标运行平台运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。
本申请实施例运行平台是指在电脑中让应用程序运行的系统环境,例如OS环境、Linux环境、Unix环境等等,由于java语言具有跨平台性,即java字节码具备跨平台性,但java字节码容易被反编译,本申请实施例为了防止使用代码文件被反编译,对代码文件进行了加密,但加密后的代码文件是不能被Java虚拟机解释执行的,为此生成了包含启动引导程序的目标应用程序,不同的运行平台对应不同的启动引导程序和相同的目标数据包,针对某目标应用平台,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件,启动引导程序本身是为了解密以及防止反编译生成的,那么该启动引导程序的文件不为字节码文件,为非字节码的二进制文件,该二进制文件可以有效防止被反编译。
本申请实施例在生成包含目标数据包以及启动引动程序的目标应用程序后,将目标应用程序发送至目标运行平台。
本申请实施例采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;采用第二加密算法,对第一秘钥进行加密得到第二秘钥;生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。本申请实施例一方面实现了将字节码形式的代码文件进行加密,得到目标数据包,目标数据包中的代码文件是加密的,无法被反编译,另一方面,本申请实施例生成的目标应用程序中的目标数据包是字节码文件,而启动引导程序是字节码的二进制文件,二者是不同的格式能够有效保护代码文件,防止代码文件被反编译。
本申请实施例中提供了一种可能的实现方式,获得目标数据包之后,还包括:
基于目标数据包的属性信息,生成第一摘要值,第一摘要值用于校验目标数据包是否被篡改。
本申请实施例在生成目标数据包之后,为了方便确定目标数据包是否被篡改,生成了目标数据包对应的第一摘要值。
本申请实施例通过预设的摘要算法生成目标数据包的属性信息对应的第一摘要值,摘要算法的主要特征是加密过程不需要秘钥,摘要算法是把任意长度的输入揉合而产生长度固定的伪随机输出的算法,这个伪随机输出即为对应的摘要值。
在使用摘要算法时,不同的输入对应生成不同的输出,即使用不同的目标数据包可以生成不同的摘要值,假若该目标数据包的内容被篡改,那么篡改前和篡改后该目标数据包对应的摘要值是不同的,本申请实施例在得到目标数据包之后,生成该目标数据包对应的第一摘要值,该第一摘要值可在后续过程中用于确定目标数据包是否被篡改。
本申请实施例在获得第一摘要值后,将第一摘要值也合并于启动引导程序中,即第一摘要值和解密信息都是启动引导程序的参数,分别用于对目标数据包进行防篡改校验和对解密。
本申请实施例中提供了一种可能的实现方式,如图2所示,其示例性示出了解密目标数据包的流程示意图,基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件,包括:
步骤S201,在目标运行平台根据目标数据包的属性信息,生成第二摘要值;
步骤S202,根据第一摘要值对第二摘要值进行校验,并在校验通过后根据第二解密算法对第二秘钥进行解密,得到第一秘钥;
步骤S203,根据第一解密算法以及第一秘钥,对加密后的代码文件进行解密,获得代码文件;
步骤S204,指示虚拟机解释运行代码文件。
本申请实施例目标运行平台在接收到目标应用程序后,目标应用程序中包括目标数据包和启动引导程序,由于该目标数据包中包括的是加密的代码文件,虚拟机无法直接解释运行加密的代码文件,因此,需对该加密的代码文件进行解密,启动引导程序可以对该目标数据包中加密的代码文件进行解密。
本申请实施例在对目标数据中的代码文件进行解密之前,还需校验该目标数据包是否被篡改,具体地,在目标运行平台生成该目标数据包的第二摘要值,第二摘要值生成于目标运行平台,第一摘要值是目标运行平台接收目标数据包之前预先生成的,因此,通过第一摘要值可对第二摘要值进行校验,若第二摘要值和第一摘要值一致,确定目标数据包未被篡改,则校验通过,可对目标数据包中的加密的代码文件进行解密。
当然,本申请实施例生成第一摘要值和第二摘要值的算法相同,即使用相同的摘要算法生成第一摘要值和第二摘要值,通过将第一摘要值和第二摘要值进行比对来实现对目标数据包的校验,根据校验结果判断目标数据包是否被篡改。
若第二摘要值和第一摘要值的比对结果为一致,则表征第二摘要值校验通过,该目标数据包没有被篡改,是安全的,校验通过后,会对第二秘钥进行解密,得到对应的第一秘钥,使得根据第一秘钥和第一解密算法对加密的代码文件进行解密。
具体地,可根据第二解密算法对第二秘钥进行解密,得到第一秘钥,根据第一目标数据包中的第一解密算法和第一秘钥对加密的代码文件进行解密,得到代码文件,虚拟机可直接解释并运行该代码文件。
若第二摘要值和第一摘要值不一致,则校验结果为校验未通过,表征该目标数据包被篡改了,此时需发提示信息,该提示信息用于提示目标数据包被篡改。
本申请实施例中提供了一种可能的实现方式,生成包含解密信息的启动引导程序,包括:
将第一摘要值以及解密信息作为全局变量编译至待生成的启动引导程序的源码;
通过预设的交叉编译器将待生成的启动引导程序的源码编译为应用于目标平台的启动应用程序。
本申请实施例中在生成第一摘要值以及解密信息后,将第一摘要子和解密信息作为全局遍历编译至带生成的启动引导程序的源码中。
本申请实施例代码文件对应的编译语言为java语言,然启动引导程序的源码对应的编译语言为非java语言的其他语言,例如C语言、Go语言。
一般情况下,在编辑应用程序时,一般使用一种语言进行编译,本申请实施例启动引导程序的源码和代码文件的编译语言不同,可以进一步防止非法用户查询到目标程序代码,进一步阻止对代码文件的反编译。
本申请实施例在得到带生成的启动引导程序的源码后,通过与预设的交叉编译器将待生成的启动引导程序的源码编译为应用于目标平台的启动应用程序,即启动引导程序和运行平台相适应。
本申请实施例中提供了一种可能的实现方式,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,包括:
将第一加密算法对应的第一解密算法配置于初始应用程序的类加载器中,并将加密后的代码文件和类加载器打包。
值得注意的是,“.class”文件中保存着Java源码经转换后的虚拟机指令,当需要使用某个类时,虚拟机JVM将会加载所需的“.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,类加载的过程需要类加载器ClassLoader来执行,加载器会将字节码读取到JVM中,由JMV解释和执行字节码。
本申请实施例将第一解密算法配置于初始应用程序的类加载器ClassLoader中,类加载器中包括第一解密算法,将加密后的代码文件以及第一加密算法对应的第一解密算法打包实际上是将加密后的代码文件和类加载器打包,在获得第一秘钥后,类加载器可根据第一解密算法和第一秘钥对加密的代码文件进行解密。
本申请实施例中提供了一种可能的实现方式,第一加密算法为预设的动态加密算法;动态加密算法包括UUID加密算法。
防止被暴力破解,本申请实施例第一加密算法为预设的动态加密算法,动态加密算法可以为UUID加密算法,也可以为其他动态加密算法。
本申请实施例第一秘钥是动态随机生成的秘钥,是高强度秘钥,防止被暴力破解,具体地,可以使用唯一识别码UUID(Universally Unique Identifier)工具随机生成第一秘钥,以使得每个第一秘钥都是唯一的,降低秘钥被破解的风险。
另外,本申请实施例的第一秘钥是对称秘钥,即加密过程使用的秘钥和解密过程使用的秘钥是相同的,使用对称加密算法和对称秘钥实现对应用程序的代码文件进行对称加密。
本申请实施例中提供了一种可能的实现方式基于目标数据包的属性信息,生成第一摘要值,包括:
确定目标数据包的属性信息,属性信息包括数据包名称、数据包大小、数据包路径中的至少一种;
确定属性信息的位长,将属性信息的位长调整至预设位长;
提取第一预设比特位至第二预设比特位的数值,将第一预设比特位至第二预设比特位的数值的和作为第一摘要值。
本申请实施例可通过预设的摘要算法生成目标数据包对应的第一摘要值,预设的摘要算法包括MD5算法和SHA-1算法中的至少一种。
其中,MD5(Message-Digest Algorithm 5,消息摘要算法5)是一种被广泛使用的密码散列函数,可以输出一个128位(16字节)的散列值(即摘要值),该散列值用于确保信息输出的完整。
SHA-1(Secure Hash Algorithm 1,安全散列算法1)是一种密码散列函数,可以生成一个被称为消息摘要的160位散列值(摘要值),散列值通常的呈现形式位40个十六进制数。
当然,本申请实施例生成摘要值的算法也可为除MD5算法和SHA-1算法之外的其他摘要算法,本申请实施例对此不作限制。
具体地,先确定目标数据包的属性信息,属性信息包括数据包名称、数据包大小、数据包路径中的至少一种;当任意一项属性信息被篡改后,目标数据包的摘要值就会改变。
本申请实施例在得到属性信息后,先确定各个属性信息的位长,将属性信息的位长调整至预设位长,具体地,比如数据包名称是200位,预设的位长是240位,那么就需要在200位-240进行填充,可用0进行填充。
本申请实施例在将属性信息的位长调整至预设位长后,提取第一预设比特位至第二预设比特位的数值,将第一预设比特位至第二预设比特位的数值的和作为第一摘要值,得到的第一摘要值是不可逆的,无法到推出第一预设比特位至第二预设比特位的数值。
当然,本申请实施例除了可以将第一预设比特位至第二预设比特位的数值的和作为第一摘要值,也可将第一预设比特位至第二预设比特位的数值的方差作为第一摘要值,本申请实施例对此不作限制。
如图3所示,其示例性示出了打包平台和目标运行平台上的目标应用程序的交互过程的示意图,交互过程包括:
打包平台:步骤S301,采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;
步骤S302,基于目标数据包的属性信息,生成第一摘要值,第一摘要值用于校验目标数据包是否被篡改;
步骤S303,采用第二加密算法,对第一秘钥进行加密得到第二秘钥;
步骤S304,生成包含解密信息和第一摘要值的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;
步骤S305,生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件;
步骤S306,将目标应用程序发送至目标运行平台;
目标运行平台中的目标应用程序:
步骤S307,根据目标数据包的属性信息,生成第二摘要值;
步骤S308,根据第一摘要值对第二摘要值进行校验,并在校验通过后根据第二解密算法对第二秘钥进行解密,得到第一秘钥;
步骤S309,根据第一解密算法以及第一秘钥,对加密后的代码文件进行解密,获得代码文件;
步骤S310,指示虚拟机解释运行代码文件。
上述的具体实施过程和前述实施例一致,在此不再进行赘述。
本申请实施例提供了一种数据处理装置,如图4所示,该数据处理装置40可以包括:
第一加密模块410,用于采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;
第二加密模块420,用于采用第二加密算法,对第一秘钥进行加密得到第二秘钥;
启动引导程序生成模块430,用于生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;
目标应用程序生成模块440,用于生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。
本申请实施例采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;采用第二加密算法,对第一秘钥进行加密得到第二秘钥;生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。本申请实施例一方面实现了将字节码形式的代码文件进行加密,得到目标数据包,目标数据包中的代码文件是加密的,无法被反编译,另一方面,本申请实施例生成的目标应用程序中的目标数据包是字节码文件,而启动引导程序是字节码的二进制文件,二者是不同的格式能够有效保护代码文件,防止代码文件被反编译。
本申请实施例中提供了一种可能的实现方式,该装置还包括解密模块,解密模块包括:
第二摘要值生成子模块,用于在目标运行平台根据目标数据包的属性信息,生成第二摘要值;
秘钥解密子模块,用于根据第一摘要值对第二摘要值进行校验,并在校验通过后根据第二解密算法对第二秘钥进行解密,得到第一秘钥;
代码文件解密子模块,用于根据第一解密算法以及第一秘钥,对加密后的代码文件进行解密,获得代码文件;
指示子模块,用于指示虚拟机解释运行代码文件。
本申请实施例中提供了一种可能的实现方式,启动引导程序生成模块具体用于将第一摘要值以及解密信息作为全局变量编译至待生成的启动引导程序的源码;通过预设的交叉编译器将待生成的启动引导程序的源码编译为应用于目标平台的启动应用程序。
本申请实施例中提供了一种可能的实现方式,第一加密模块还包括:
打包子模块,用于将第一加密算法对应的第一解密算法配置于初始应用程序的类加载器中,并将加密后的代码文件和类加载器打包。
本申请实施例中提供了一种可能的实现方式,第一加密算法为预设的动态加密算法;动态加密算法包括UUID加密算法。
本申请实施例中提供了一种可能的实现方式,第一摘要值生成模块具体用于确定目标数据包的属性信息,属性信息包括数据包名称、数据包大小、数据包路径中的至少一种;确定属性信息的位长,将属性信息的位长调整至预设位长;提取第一预设比特位至第二预设比特位的数值,将第一预设比特位至第二预设比特位的数值的和作为第一摘要值。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据处理方法的步骤,与相关技术相比可实现:本申请实施例采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;采用第二加密算法,对第一秘钥进行加密得到第二秘钥;生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。本申请实施例一方面实现了将字节码形式的代码文件进行加密,得到目标数据包,目标数据包中的代码文件是加密的,无法被反编译,另一方面,本申请实施例生成的目标应用程序中的目标数据包是字节码文件,而启动引导程序是字节码的二进制文件,二者是不同的格式能够有效保护代码文件,防止代码文件被反编译。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5所示的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比可实现:本申请实施例采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;采用第二加密算法,对第一秘钥进行加密得到第二秘钥;生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。本申请实施例一方面实现了将字节码形式的代码文件进行加密,得到目标数据包,目标数据包中的代码文件是加密的,无法被反编译,另一方面,本申请实施例生成的目标应用程序中的目标数据包是字节码文件,而启动引导程序是字节码的二进制文件,二者是不同的格式能够有效保护代码文件,防止代码文件被反编译。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比可实现:本申请实施例采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及第一加密算法对应的第一解密算法打包,获得目标数据包;代码文件为目标应用程序源码混淆后的字节码文件;采用第二加密算法,对第一秘钥进行加密得到第二秘钥;生成包含解密信息的启动引导程序,解密信息包括:第二秘钥、第二加密算法对应的第二解密算法;生成包含目标数据包以及启动引动程序的目标应用程序,目标应用程序运行时,启动引导程序基于解密信息和目标数据包中的第一解密算法,解密目标数据包中加密后的代码文件的文件;启动引导程序为非字节码文件的二进制文件。本申请实施例一方面实现了将字节码形式的代码文件进行加密,得到目标数据包,目标数据包中的代码文件是加密的,无法被反编译,另一方面,本申请实施例生成的目标应用程序中的目标数据包是字节码文件,而启动引导程序是字节码的二进制文件,二者是不同的格式能够有效保护代码文件,防止代码文件被反编译。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及所述第一加密算法对应的第一解密算法打包,获得目标数据包;所述代码文件为目标应用程序源码混淆后的字节码文件;
采用第二加密算法,对所述第一秘钥进行加密得到第二秘钥;
生成包含解密信息的启动引导程序,所述解密信息包括:所述第二秘钥、所述第二加密算法对应的第二解密算法;
生成包含所述目标数据包以及所述启动引导程序的目标应用程序,目标应用程序运行时,所述启动引导程序基于所述解密信息和所述目标数据包中的第一解密算法,解密所述目标数据包中加密后的代码文件的文件;所述启动引导程序为非字节码文件的二进制文件;
所述生成包含解密信息的启动引导程序,包括:
确定待应用的目标平台,将所述解密信息作为全局变量编译至待生成的启动引导程序的源码,所述启动引导程序的源码和所述初始应用程序的代码文件是基于不同的开发语言开发的;将所述待生成的启动引导程序的源码编译为应用于目标平台的启动引导程序。
2.根据权利要求1所述的方法,其特征在于,所述获得目标数据包之后,还包括:
基于所述目标数据包的属性信息,生成第一摘要值,第一摘要值用于校验所述目标数据包是否被篡改。
3.根据权利要求2所述的方法,其特征在于,所述基于所述解密信息和所述目标数据包中的第一解密算法,解密所述目标数据包中加密后的代码文件的文件,包括:
在目标运行平台根据所述目标数据包的属性信息,生成第二摘要值;
根据所述第一摘要值对所述第二摘要值进行校验,并在校验通过后根据所述第二解密算法对所述第二秘钥进行解密,得到所述第一秘钥;
根据所述第一解密算法以及所述第一秘钥,对所述加密后的代码文件进行解密,获得代码文件;
指示虚拟机解释运行所述代码文件。
4.根据权利要求2所述的方法,其特征在于,所述生成包含解密信息的启动引导程序,包括:
将所述第一摘要值以及所述解密信息作为全局变量编译至待生成的启动引导程序的源码;
通过预设的交叉编译器将所述待生成的启动引导程序的源码编译为应用于目标平台的启动应用程序。
5.根据权利要求1所述的方法,其特征在于,所述将加密后的代码文件以及所述第一加密算法对应的第一解密算法打包,包括:
将所述第一加密算法对应的第一解密算法配置于所述初始应用程序的类加载器中,并将所述加密后的代码文件和所述类加载器打包。
6.根据权利要求1所述的方法,其特征在于,所述第一加密算法为预设的动态加密算法;所述动态加密算法包括UUID加密算法。
7.根据权利要求2所述的方法,其特征在于,所述基于所述目标数据包的属性信息,生成第一摘要值,包括:
确定所述目标数据包的属性信息,所述属性信息包括数据包名称、数据包大小、数据包路径中的至少一种;
确定所述属性信息的位长,将所述属性信息的位长调整至预设位长;
提取第一预设比特位至第二预设比特位的数值,将所述第一预设比特位至第二预设比特位的数值的和作为第一摘要值。
8.一种数据处理装置,其特征在于,包括:
第一加密模块,用于采用第一加密算法、第一秘钥对初始应用程序的代码文件进行加密,将加密后的代码文件以及所述第一加密算法对应的第一解密算法打包,获得目标数据包;所述代码文件为目标应用程序源码混淆后的字节码文件;
第二加密模块,用于采用第二加密算法,对所述第一秘钥进行加密得到第二秘钥;
启动引导程序生成模块,用于生成包含解密信息的启动引导程序,所述解密信息包括:所述第二秘钥、所述第二加密算法对应的第二解密算法;
目标应用程序生成模块,用于生成包含所述目标数据包以及所述启动引导程序的目标应用程序,目标应用程序运行时,所述启动引导程序基于所述解密信息和所述目标数据包中的第一解密算法,解密所述目标数据包中加密后的代码文件的文件;所述启动引导程序为非字节码文件的二进制文件;
启动引导程序生成模块确定待应用的目标平台,将所述解密信息作为全局变量编译至待生成的启动引导程序的源码,所述启动引导程序的源码和所述初始应用程序的代码文件是基于不同的开发语言开发的;将所述待生成的启动引导程序的源码编译为应用于目标平台的启动引导程序。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210555771.1A CN114943062B (zh) | 2022-05-20 | 2022-05-20 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210555771.1A CN114943062B (zh) | 2022-05-20 | 2022-05-20 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114943062A CN114943062A (zh) | 2022-08-26 |
CN114943062B true CN114943062B (zh) | 2023-06-16 |
Family
ID=82910080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210555771.1A Active CN114943062B (zh) | 2022-05-20 | 2022-05-20 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114943062B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664773A (zh) * | 2018-04-26 | 2018-10-16 | 北京三快在线科技有限公司 | Java源代码的保护方法及装置 |
CN110069905A (zh) * | 2019-04-26 | 2019-07-30 | 深圳智慧园区信息技术有限公司 | 一种Springboot程序加密和解密的装置及方法 |
CN112966227A (zh) * | 2021-02-04 | 2021-06-15 | 南方电网深圳数字电网研究院有限公司 | 代码加密解密方法和装置、存储介质 |
CN114153462A (zh) * | 2021-12-14 | 2022-03-08 | 北京字节跳动网络技术有限公司 | 客户端源码处理方法、装置、存储介质及电子设备 |
CN114329362A (zh) * | 2021-12-16 | 2022-04-12 | 航天信息股份有限公司 | 基于容器的Python代码的保护方法、装置、设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11550883B2 (en) * | 2020-09-08 | 2023-01-10 | Assured Information Security, Inc. | Code protection |
-
2022
- 2022-05-20 CN CN202210555771.1A patent/CN114943062B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664773A (zh) * | 2018-04-26 | 2018-10-16 | 北京三快在线科技有限公司 | Java源代码的保护方法及装置 |
CN110069905A (zh) * | 2019-04-26 | 2019-07-30 | 深圳智慧园区信息技术有限公司 | 一种Springboot程序加密和解密的装置及方法 |
CN112966227A (zh) * | 2021-02-04 | 2021-06-15 | 南方电网深圳数字电网研究院有限公司 | 代码加密解密方法和装置、存储介质 |
CN114153462A (zh) * | 2021-12-14 | 2022-03-08 | 北京字节跳动网络技术有限公司 | 客户端源码处理方法、装置、存储介质及电子设备 |
CN114329362A (zh) * | 2021-12-16 | 2022-04-12 | 航天信息股份有限公司 | 基于容器的Python代码的保护方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114943062A (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101471589B1 (ko) | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 | |
KR101091465B1 (ko) | 프로세서의 가상 머신 내 기밀 콘텐츠의 보안 처리를 위한 방법 및 장치 | |
RU2142674C1 (ru) | Управление доступом с использованием параметризированной хэш-функции | |
KR101391982B1 (ko) | 안드로이드 어플리케이션의 디컴파일 방지를 위한 암호화 방법 | |
WO2021217980A1 (zh) | java代码的加壳方法与系统 | |
CN109784007B (zh) | 一种字节码加密的方法、字节码解密的方法及终端 | |
CN104866739A (zh) | 安卓系统中应用程序加密方法及系统 | |
CN104408337A (zh) | 一种apk文件防逆向的加固方法 | |
CN105930695A (zh) | 一种软件开发工具包的保护方法及装置 | |
CN111191195A (zh) | 一种用于保护apk的方法和装置 | |
JP2007233426A (ja) | アプリケーション実行装置 | |
CN107480478A (zh) | 一种java应用程序的加密方法及运行方法 | |
CN108898007A (zh) | 一种基于JavaAgent和dll增强Java分发软件的安全方法 | |
US9292708B2 (en) | Protection of interpreted source code in virtual appliances | |
CN113032741B (zh) | 类文件加密方法、类文件运行方法、装置、设备及介质 | |
CN117150515B (zh) | Eda二次开发源代码的安全保护方法、电子设备及存储介质 | |
CN107257282A (zh) | 一种基于rc4算法的代码全包加密方法 | |
CN113360857A (zh) | 一种软件的代码启动方法和系统 | |
CN112733094A (zh) | 一种Java应用程序的安全保护方法 | |
CN114943062B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN117313046A (zh) | 一种代码加固方法、代码加载方法、设备及介质 | |
CN104090772A (zh) | 一种生成安卓安装包apk的方法及装置 | |
CN115964681A (zh) | 目标应用程序的证书文件的生成方法 | |
CN112115491A (zh) | 一种对称加密密钥保护方法、装置、设备及存储介质 | |
JP6698775B2 (ja) | 共有オブジェクトのコード保護のための保安提供装置と方法、及び保安実行装置と方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |