CN106650342B - 一种Jar包加固方法及*** - Google Patents
一种Jar包加固方法及*** Download PDFInfo
- Publication number
- CN106650342B CN106650342B CN201611076233.5A CN201611076233A CN106650342B CN 106650342 B CN106650342 B CN 106650342B CN 201611076233 A CN201611076233 A CN 201611076233A CN 106650342 B CN106650342 B CN 106650342B
- Authority
- CN
- China
- Prior art keywords
- key
- block
- encryption
- jar
- jar packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000002787 reinforcement Effects 0.000 title claims abstract description 23
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 6
- 238000005728 strengthening Methods 0.000 claims description 4
- 230000003068 static effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000005336 cracking Methods 0.000 description 1
- RFHAOTPXVQNOHP-UHFFFAOYSA-N fluconazole Chemical compound C1=NC=NN1CC(C=1C(=CC(F)=CC=1)F)(O)CN1C=NC=N1 RFHAOTPXVQNOHP-UHFFFAOYSA-N 0.000 description 1
- 238000011084 recovery 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
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)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种Jar包加固方法及***,所述方法包括如下步骤:使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;存放Jar包的加密密钥;提取上述加密密钥;调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件。本发明可以很好的保证提供给第三方的Jar包的保密性和完整性,防止被恶意破解或替换,增加了非法用户获取到Jar包后对Java源码静态分析的难度。本发明可以应用于Android、Windows、Linux和Mac等平台,应用范围广。
Description
技术领域
本发明属于计算机安全防护技术领域,具体涉及一种基于国密算法的Jar包加固方法及***。
背景技术
由于Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在运行期动态链接。这样,编译后的类文件中将包含有符号表,从而使得Java程序很容易被反编译,从而观察程序的结构与实现细节。对于需要提供Jar包的第三方,为保护知识产权,需要对Jar包进行保护,增加非法用户获取到Jar包后对Java源码静态分析的难度。
目前已有这方面的专利技术申请,例如申请号为201110288519.0的中国发明专利申请,公开了一种Java源代码的保护方法和***。在第一启动类被调用时,该方法包括以下步骤,其中,第一启动类为Java程序的启动类:第一启动类将第一密文数据进行解密,得到类加载器;类加载器将第二密文数据读入内存进行解密,得到第一类,其中,第一类为Java虚拟机运行的类,其后缀名为.class;类加载器将第二启动类加载到内存,其中,第二启动类为Java程序的jar包中的原启动类;以及类加载器将第一类加载到Java虚拟机,以便Java虚拟机能够调用第二启动类中的主接口,运行Java程序。通过本发明,能够实现Java源代码的保护,使得Java源代码不易被反汇编。
然而,上述技术中,没有对Jar包的完整性校验,Jar包仍然可能被非法替换。另外,缺少对Jar包的加密过程,安全性不足。
发明内容
为解决上述问题,本发明针对需要提供给第三方的Jar包,使用加密工具对其进行加密,同时提供给第三方Native版本的解密库。这样,非法用户获取到解密库后,无法静态分析出解密算法;获取到Jar包后,也无法解密出明文的Jar包。同时,在解密算法中增加了Jar包的完整性校验,可防止Jar包被非法替换。实际调用时,第三方工具先调用解密库解密Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件。
具体的,根据本发明的一个方面,提供了一种Jar包加固方法,所述方法包括如下步骤:
使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;
存放Jar包的加密密钥;
提取上述加密密钥;
调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件。
进一步,如上所述的Jar包加固方法,所述Jar包的加密分为以下五个步骤:
(1)、计算Jar包的SM3摘要值,记为SM3;
(2)、取16字节随机数RND16;
(3)、将SM3的前16字节与后16字节异或,记为Key1;
(4)、将Key1作为加密密钥对RND16进行SM4加密,结果记为Key2;
(5)、Key2作为Jar包加密密钥,对Jar包进行SM4加密。
进一步,如上所述的Jar包加固方法,所述存放Jar包的加密密钥的方法如下:对Jar包进行SM4加密的结果分为49块,其中前48块用来随机存放加密密钥;加密密钥第1字节存放在第48块,存放位置由第49块的数据确定,加密密钥第2字节存放在第47块,存放位置由第48块数据加第1字节密钥值确定,依次类推。
进一步,如上所述的Jar包加固方法,所述提取加密密钥的过程如下:
(1)、计算49块数据的大小;
(2)、获取第49块数据和第48块数据,获取第1字节密钥在第48块中的存储位置,从而获取第1字节的密钥值并还原第48块数据;
(3)、获取第2字节密钥在第47块中的存储位置,从而获取第2字节的密钥值并还原第47块数据;
(4)、以此类推,获取48字节的密钥及原始的49块数据。
进一步,如上所述的Jar包加固方法,上述解密Jar包的过程如下:
(1)、将48字节密钥值的前16字节与中间16字节异或,还原出Key1,使用Key1对后16字节密钥进行SM4解密,还原出Key2;
(2)、使用Key2对原始的49块数据进行SM4解密,还原出明文Jar包;
(3)、对明文Jar包计算SM3摘要值,与加密密钥前32字节进行比较,验证Jar包的完整性。
根据本发明的另一个方面,本发明还提供了一种Jar包加固***,所述***包括如下模块:
Jar包加密模块,通过使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;
密钥存放模块,用于存放Jar包的加密密钥;
密钥提取模块,用于提取上述加密密钥;
Jar包解密模块,通过调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件。
进一步,如上所述的Jar包加固***,所述Jar包加密模块具有如下五个单元:
SM3摘要值计算单元,用于计算Jar包的SM3摘要值,记为SM3;
随机数生成单元,用于取得16字节随机数RND16;
异或单元,用于将SM3的前16字节与后16字节异或,记为Key1;
随机数加密单元,用于将Key1作为加密密钥对RND16进行SM4加密,结果记为Key2;
SM4加密单元,用于将Key2作为Jar包加密密钥,对Jar包进行SM4加密。
进一步,如上所述的Jar包加固***,所述密钥存放模块存放Jar包的加密密钥的方法如下:对Jar包进行SM4加密的结果分为49块,其中前48块用来随机存放加密密钥;加密密钥第1字节存放在第48块,存放位置由第49块的数据确定,加密密钥第2字节存放在第47块,存放位置由第48块数据加第1字节密钥值确定,依次类推。
进一步,如上所述的Jar包加固***,所述密钥提取模块具有如下四个单元:
数据大小计算单元,用于计算49块数据的大小;
第一数据还原单元,用于获取第49块数据和第48块数据,获取第1字节密钥在第48块中的存储位置,从而获取第1字节的密钥值并还原第48块数据;
第二数据还原单元,用于获取第2字节密钥在第47块中的存储位置,从而获取第2字节的密钥值并还原第47块数据;
原始数据获取单元,用于获取48字节的密钥及原始的49块数据。
进一步,如上所述的Jar包加固***,所述Jar包解密模块具有如下三个单元:
异或及解密单元,用于将48字节密钥值的前16字节与中间16字节异或,还原出Key1,使用Key1对后16字节密钥进行SM4解密,还原出Key2;
原始数据解密单元,通过使用Key2对Block1-49进行SM4解密,即可还原出明文Jar包;
完整性校验单元,用于对明文Jar包计算SM3摘要值,与加密密钥前32字节进行比较,验证Jar包的完整性。
本发明的有益效果如下:本发明可以很好的保证提供给第三方的Jar包的保密性和完整性,防止被恶意破解或替换,增加了非法用户获取到Jar包后对Java源码静态分析的难度。本发明可以应用于Android、Windows、Linux和Mac等平台,应用范围广。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明的一种基于国密算法的Jar包加固方法流程图;
图2为本发明的明文Jar包加密流程图;
图3为本发明的提取加密密钥的流程图;
图4为本发明的解密Jar包的流程图;
图5为本发明的一种基于国密算法的Jar包加固***的模块图;
图6为本发明的Jar包加密模块的结构图;
图7为本发明的加密密钥模块的结构图;
图8为本发明的Jar包解密模块的结构图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步描述。
本实施例中,Jar包加解密采用了国产的SM2和SM3算法。具体的,根据本发明的一个方面,如图1所示,为本发明的一种基于国密算法的Jar包加固方法流程图,所述方法包括如下步骤:
S110、使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;所述解密库为Native版本的解密库,其中在Windows平台中为dll库,在Android平台中为so库。
如图2所示,明文Jar包加密分为以下五个步骤:
S111、计算明文Jar包的SM3摘要值,记为SM3(OriginalJar),共32字节,该摘要值还会用于加载Jar包时的完整性校验。
S112、取16字节随机数RND16。
S113、将SM3(OriginalJar)的前16字节与后16字节异或,记为Key1。
S114、将Key1作为加密密钥对RND16进行SM4加密,即SM4-Enc(Key1,RND16),结果记为Key2。
S115、将Key2作为明文Jar包加密密钥,对Jar包进行SM4加密,结果为SM4-Enc(Key2,OriginalJar)。
S120、存放Jar包的加密密钥。
加密密钥包括32字节Hash值SM3(OriginalJar)和16字节随机数RND16,共48字节。密钥存放的方法如下:
将SM4-Enc(Key2,OriginalJar)分为49块,其中前48块用来随机存放加密密钥。加密密钥第1字节存放在第48块,存放位置由第49块的数据确定,加密密钥第2字节存放在第47块,存放位置由第48块数据加第1字节密钥值确定,依次类推。
其中,前48块每块大小为:Sizeof(Block1-48)=Sizeof(SM4-Enc(Key2,OriginalJar))/48,第49块大小为Sizeof(Block49)=Sizeof(SM4-Enc(Key2,OriginalJar))%48,Sizeof(Block49)可能为0。
进一步的,本发明中确定密钥存放位置的算法为:
首先计算第49块数据的HASH值,记为SM3(Block49),然后将SM3(Block49)按字节相加,结果记为∑(SM3(Block49)),第1字节在第48块中的存放位置为∑(SM3(Block49))%Sizeof(Block1-48)+1,存放后构成新的第48块数据,记为Block48′。
然后计算Block48′的HASH值,记为SM3(Block48′),然后将SM3(Block48′)按字节相加,结果记为∑(SM3(Block48′)),第2字节在第47块中的存放位置为∑(SM3(Block48′))%Sizeof(Block1-48)+1,存放后构成新的第47块数据,记为Block47′。
依次类推,将加密密钥随机存放在密文Jar包的前48块,构成新的Block1-48′,由Block1-48′加上Block49构成最终的密文JAR包,即EncryptedJar。
S130、提取上述加密密钥。如图3所示,提取加密密钥的过程如下:
S131、先计算49块数据的大小,其中Sizeof(Block1-48)=Sizeof(EncryptedJar)/48-1,Sizeof(Block49)=Sizeof(EncryptedJar)%48。
S132、获取第49块数据Block49和第48块数据Block48′,根据∑(SM3(Block49))%Sizeof(Block1-48)+1获取第1字节密钥在第48块中的存储位置,从而获取第一个字节的密钥值并还原第48块数据Block48。
S133、根据∑(SM3(Block48′))%Sizeof(Block1-48)+1获取第2字节密钥在第47块中的存储位置,从而获取第二个字节的密钥值并还原第47块数据Block47。
S134、以此类推,可以成功获取48字节的密钥及原始的49块数据Block1-49。
S140、调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件。
如图4所示,上述解密Jar包的流程如下:
S141、将48字节密钥值的前16字节与中间16字节异或,还原出Key1,使用Key1对后16字节密钥进行SM4解密,还原出Key2。
S142、使用Key2对Block1-49进行SM4解密,即可还原出明文Jar包。
S143、对明文Jar包计算SM3摘要值,与加密密钥前32字节进行比较,验证Jar包的完整性。
根据本发明的另一个方面,如图5所示,为本发明的一种基于国密算法的Jar包加固***200的模块图,所述***包括如下模块:
Jar包加密模块210,通过使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;所述解密库为Native版本的解密库,其中在Windows平台中为dll库,在Android平台中为so库。
如图6所示,Jar包加密模块210分为以下五个单元:
SM3摘要值计算单元211,用于计算明文Jar包的SM3摘要值,记为SM3(OriginalJar),共32字节,该摘要值还会用于加载Jar包时的完整性校验。
随机数生成单元212,用于取得16字节随机数RND16。
异或单元213,用于将SM3(OriginalJar)的前16字节与后16字节异或,记为Key1。
随机数加密单元214,用于将Key1作为加密密钥对RND16进行SM4加密,即SM4-Enc(Key1,RND16),结果记为Key2。
SM4加密单元215,用于将Key2作为明文Jar包加密密钥,对Jar包进行SM4加密,结果为SM4-Enc(Key2,OriginalJar)。
密钥存放模块220,用于存放Jar包的加密密钥。
加密密钥包括32字节Hash值SM3(OriginalJar)和16字节随机数RND16,共48字节。密钥存放的方法如下:
将SM4-Enc(Key2,OriginalJar)分为49块,其中前48块用来随机存放加密密钥。加密密钥第1字节存放在第48块,存放位置由第49块的数据确定,加密密钥第2字节存放在第47块,存放位置由第48块数据加第1字节密钥值确定,依次类推。
其中,前48块每块大小为:Sizeof(Block1-48)=Sizeof(SM4-Enc(Key2,OriginalJar))/48,第49块大小为Sizeof(Block49)=Sizeof(SM4-Enc(Key2,OriginalJar))%48,Sizeof(Block49)可能为0。
进一步的,本实施例中确定密钥存放位置的算法为:
首先计算第49块数据的HASH值,记为SM3(Block49),然后将SM3(Block49)按字节相加,结果记为∑(SM3(Block49)),第1字节在第48块中的存放位置为∑(SM3(Block49))%Sizeof(Block1-48)+1,存放后构成新的第48块数据,记为Block48′。
然后计算Block48′的HASH值,记为SM3(Block48′),然后将SM3(Block48′)按字节相加,结果记为∑(SM3(Block48′)),第2字节在第47块中的存放位置为∑(SM3(Block48′))%Sizeof(Block1-48)+1,存放后构成新的第47块数据,记为Block47′。
依次类推,将加密密钥随机存放在密文Jar包的前48块,构成新的Block1-48′,由Block1-48′加上Block49构成最终的密文JAR包,即EncryptedJar。
密钥提取模块230,用于提取上述加密密钥。如图7所示,密钥提取模块230包括如下四个单元:
数据大小计算单元231,用于计算49块数据的大小,其中Sizeof(Block1-48)=Sizeof(EncryptedJar)/48-1,Sizeof(Block49)=Sizeof(EncryptedJar)%48。
第一数据还原单元232,用于获取第49块数据Block49和第48块数据Block48′,根据∑(SM3(Block49))%Sizeof(Block1-48)+1获取第1字节密钥在第48块中的存储位置,从而获取第一个字节的密钥值并还原第48块数据Block48。
第二数据还原单元233,用于根据∑(SM3(Block48′))%Sizeof(Block1-48)+1获取第2字节密钥在第47块中的存储位置,从而获取第二个字节的密钥值并还原第47块数据Block47。
原始数据获取单元234,用于获取48字节的密钥及原始的49块数据Block1-49。
Jar包解密模块240、用于调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件。
如图8所示,上述Jar包解密模块240具有如下三个单元:
异或及解密单元241,用于将48字节密钥值的前16字节与中间16字节异或,还原出Key1,使用Key1对后16字节密钥进行SM4解密,还原出Key2。
原始数据解密单元242,通过使用Key2对Block1-49进行SM4解密,即可还原出明文Jar包。
完整性校验单元243,用于对明文Jar包计算SM3摘要值,与加密密钥前32字节进行比较,验证Jar包的完整性。
本领域技术人员应该明白,本发明所述的方法和***并不限于具体实施方式中所述的实施例,上面的具体描述只是为了解释本发明的目的,并非用于限制本发明。本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围,本发明的保护范围由权利要求及其等同物限定。
Claims (8)
1.一种Jar包加固方法,所述方法包括如下步骤:
使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;
存放Jar包的加密密钥;
提取上述加密密钥;
调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件;
所述Jar包的加密分为以下五个步骤:
(1)、计算Jar包的SM3摘要值,记为SM3;
(2)、取16字节随机数RND16;
(3)、将SM3的前16字节与后16字节异或,记为Key1;
(4)、将Key1作为加密密钥对RND16进行SM4加密,结果记为Key2;
(5)、Key2作为Jar包加密密钥,对Jar包进行SM4加密。
2.如权利要求1所述的Jar包加固方法,其特征在于,所述存放Jar包的加密密钥的方法如下:对Jar包进行SM4加密的结果分为49块,其中前48块用来随机存放加密密钥;加密密钥第1字节存放在第48块,存放位置由第49块的数据确定,加密密钥第2字节存放在第47块,存放位置由第48块数据加第1字节密钥值确定,依次类推。
3.如权利要求2所述的Jar包加固方法,其特征在于,所述提取加密密钥的过程如下:
(1)、计算49块数据的大小;
(2)、获取第49块数据和第48块数据,获取第1字节密钥在第48块中的存储位置,从而获取第1字节的密钥值并还原第48块数据;
(3)、获取第2字节密钥在第47块中的存储位置,从而获取第2字节的密钥值并还原第47块数据;
(4)、以此类推,获取48字节的密钥及原始的49块数据。
4.如权利要求3所述的Jar包加固方法,其特征在于,上述解密Jar包的过程如下:
(1)、将48字节密钥值的前16字节与中间16字节异或,还原出Key1,使用Key1对后16字节密钥进行SM4解密,还原出Key2;
(2)、使用Key2对原始的49块数据进行SM4解密,还原出明文Jar包;
(3)、对明文Jar包计算SM3摘要值,与加密密钥前32字节进行比较,验证Jar包的完整性。
5.一种Jar包加固***,其特征在于,所述***包括如下模块:
Jar包加密模块,通过使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;
密钥存放模块,用于存放Jar包的加密密钥;
密钥提取模块,用于提取上述加密密钥;
Jar包解密模块,通过调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件;
所述Jar包加密模块具有如下五个单元:
SM3摘要值计算单元,用于计算Jar包的SM3摘要值,记为SM3;
随机数生成单元,用于取得16字节随机数RND16;
异或单元,用于将SM3的前16字节与后16字节异或,记为Key1;
随机数加密单元,用于将Key1作为加密密钥对RND16进行SM4加密,结果记为Key2;
SM4加密单元,用于将Key2作为Jar包加密密钥,对Jar包进行SM4加密。
6.如权利要求5所述的Jar包加固***,其特征在于,所述密钥存放模块存放Jar包的加密密钥的方法如下:对Jar包进行SM4加密的结果分为49块,其中前48块用来随机存放加密密钥;加密密钥第1字节存放在第48块,存放位置由第49块的数据确定,加密密钥第2字节存放在第47块,存放位置由第48块数据加第1字节密钥值确定,依次类推。
7.如权利要求6所述的Jar包加固***,其特征在于,所述密钥提取模块具有如下四个单元:
数据大小计算单元,用于计算49块数据的大小;
第一数据还原单元,用于获取第49块数据和第48块数据,获取第1字节密钥在第48块中的存储位置,从而获取第1字节的密钥值并还原第48块数据;
第二数据还原单元,用于获取第2字节密钥在第47块中的存储位置,从而获取第2字节的密钥值并还原第47块数据;
原始数据获取单元,用于获取48字节的密钥及原始的49块数据。
8.如权利要求7所述的Jar包加固***,其特征在于,所述Jar包解密模块具有如下三个单元:
异或及解密单元,用于将48字节密钥值的前16字节与中间16字节异或,还原出Key1,使用Key1对后16字节密钥进行SM4解密,还原出Key2;
原始数据解密单元,通过使用Key2对Block1-49进行SM4解密,即可还原出明文Jar包;
完整性校验单元,用于对明文Jar包计算SM3摘要值,与加密密钥前32字节进行比较,验证Jar包的完整性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611076233.5A CN106650342B (zh) | 2016-11-29 | 2016-11-29 | 一种Jar包加固方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611076233.5A CN106650342B (zh) | 2016-11-29 | 2016-11-29 | 一种Jar包加固方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106650342A CN106650342A (zh) | 2017-05-10 |
CN106650342B true CN106650342B (zh) | 2023-06-23 |
Family
ID=58813840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611076233.5A Active CN106650342B (zh) | 2016-11-29 | 2016-11-29 | 一种Jar包加固方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106650342B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159661B (zh) * | 2018-11-08 | 2022-07-12 | 迈普通信技术股份有限公司 | 一种防止反编译方法、装置、电子设备及存储介质 |
CN111078224A (zh) * | 2019-10-12 | 2020-04-28 | 中国平安人寿保险股份有限公司 | 软件包文件数据处理方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819695A (zh) * | 2011-09-20 | 2012-12-12 | 金蝶软件(中国)有限公司 | 基于Jar文件的授权方法及应用服务器 |
CN103324870A (zh) * | 2013-07-01 | 2013-09-25 | 飞天诚信科技股份有限公司 | 一种Java程序的保护方法 |
CN104200137A (zh) * | 2014-09-04 | 2014-12-10 | 成都卫士通信息产业股份有限公司 | 一种保护java程序自身安全的方法 |
CN105022936A (zh) * | 2014-04-30 | 2015-11-04 | 北京畅游天下网络技术有限公司 | 一种类class文件加密解密方法和装置 |
CN105245328A (zh) * | 2015-09-09 | 2016-01-13 | 西安电子科技大学 | 一种基于第三方的用户及文件的密钥产生管理方法 |
CN106055936A (zh) * | 2016-05-18 | 2016-10-26 | 深圳大学 | 可执行程序数据包加密/解密方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360412B (zh) * | 2011-09-26 | 2014-07-02 | 飞天诚信科技股份有限公司 | Java源代码的保护方法和*** |
-
2016
- 2016-11-29 CN CN201611076233.5A patent/CN106650342B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819695A (zh) * | 2011-09-20 | 2012-12-12 | 金蝶软件(中国)有限公司 | 基于Jar文件的授权方法及应用服务器 |
CN103324870A (zh) * | 2013-07-01 | 2013-09-25 | 飞天诚信科技股份有限公司 | 一种Java程序的保护方法 |
CN105022936A (zh) * | 2014-04-30 | 2015-11-04 | 北京畅游天下网络技术有限公司 | 一种类class文件加密解密方法和装置 |
CN104200137A (zh) * | 2014-09-04 | 2014-12-10 | 成都卫士通信息产业股份有限公司 | 一种保护java程序自身安全的方法 |
CN105245328A (zh) * | 2015-09-09 | 2016-01-13 | 西安电子科技大学 | 一种基于第三方的用户及文件的密钥产生管理方法 |
CN106055936A (zh) * | 2016-05-18 | 2016-10-26 | 深圳大学 | 可执行程序数据包加密/解密方法及装置 |
Non-Patent Citations (2)
Title |
---|
一种基于混合密码算法的Java类文件保护技术;林汉玲等;《桂林理工大学学报》;20150215(第01期);202-206 * |
基于国密算法的文件安全***研究与实现;徐学东等;《电子测试》;20160915(第18期);60-61 * |
Also Published As
Publication number | Publication date |
---|---|
CN106650342A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977553B (zh) | 移动应用程序的安全加固的方法及装置 | |
CN105426708B (zh) | 一种Android***的应用程序的加固方法 | |
US11797296B2 (en) | Hot updating method of script file package and hot updating device of script file package | |
US9608822B2 (en) | Method for generating an HTML document that contains encrypted files and the code necessary for decrypting them when a valid passphrase is provided | |
US20180204004A1 (en) | Authentication method and apparatus for reinforced software | |
WO2014138626A1 (en) | Systems and methods for maintaining integrity and secrecy in untrusted computing platforms | |
CN109388961B (zh) | 存储设备的安全控制方法及存储设备 | |
CN108399319B (zh) | 源代码保护方法、应用服务器及计算机可读存储介质 | |
CN105320535A (zh) | 一种安装包的校验方法、客户端、服务器及*** | |
CN111191195A (zh) | 一种用于保护apk的方法和装置 | |
CN102609284A (zh) | 可执行文件安全加载的方法 | |
CN112035860A (zh) | 文件加密方法、终端、装置、设备及介质 | |
Kim et al. | A study on the decryption methods of telegram X and BBM-Enterprise databases in mobile and PC | |
CN108270574B (zh) | 一种白名单库文件的安全加载方法及装置 | |
CN108133147B (zh) | 可执行代码的保护方法、设备及可读存储介质 | |
CN107257282B (zh) | 一种基于rc4算法的代码全包加密方法 | |
Park et al. | A methodology for the decryption of encrypted smartphone backup data on android platform: A case study on the latest samsung smartphone backup system | |
CN109510702A (zh) | 一种基于计算机特征码的密钥存储及使用的方法 | |
CN112532379A (zh) | 一种文件保护方法及装置 | |
CN106650342B (zh) | 一种Jar包加固方法及*** | |
KR20170022023A (ko) | 프로그램 실행 코드를 난독화하기 위한 장치 및 방법, 난독화된 프로그램 실행 코드를 복구하여 실행하기 위한 장치 및 방법 | |
CN109784072B (zh) | 一种安全文件管理方法和*** | |
CN104392153A (zh) | 一种软件保护方法及*** | |
CN107330340B (zh) | 文件加密方法、设备、文件解密方法、设备及存储介质 | |
CN105335666A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |