CN106650342B - 一种Jar包加固方法及*** - Google Patents

一种Jar包加固方法及*** Download PDF

Info

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
Application number
CN201611076233.5A
Other languages
English (en)
Other versions
CN106650342A (zh
Inventor
马娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing WatchSmart Technologies Co Ltd
Original Assignee
Beijing WatchSmart Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing WatchSmart Technologies Co Ltd filed Critical Beijing WatchSmart Technologies Co Ltd
Priority to CN201611076233.5A priority Critical patent/CN106650342B/zh
Publication of CN106650342A publication Critical patent/CN106650342A/zh
Application granted granted Critical
Publication of CN106650342B publication Critical patent/CN106650342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting 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包加固方法及***
技术领域
本发明属于计算机安全防护技术领域,具体涉及一种基于国密算法的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包的完整性。
CN201611076233.5A 2016-11-29 2016-11-29 一种Jar包加固方法及*** Active CN106650342B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360412B (zh) * 2011-09-26 2014-07-02 飞天诚信科技股份有限公司 Java源代码的保护方法和***

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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