CN107257282B - 一种基于rc4算法的代码全包加密方法 - Google Patents
一种基于rc4算法的代码全包加密方法 Download PDFInfo
- Publication number
- CN107257282B CN107257282B CN201710352860.5A CN201710352860A CN107257282B CN 107257282 B CN107257282 B CN 107257282B CN 201710352860 A CN201710352860 A CN 201710352860A CN 107257282 B CN107257282 B CN 107257282B
- Authority
- CN
- China
- Prior art keywords
- app
- key
- code
- algorithm
- digest
- 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 42
- 238000009434 installation Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 16
- 102100035437 Ceramide transfer protein Human genes 0.000 claims description 6
- 101000737563 Homo sapiens Ceramide transfer protein Proteins 0.000 claims description 4
- 101710119334 Ceramide transfer protein Proteins 0.000 claims description 2
- 238000004140 cleaning Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000009517 secondary packaging Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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/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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出了一种基于RC4算法的代码全包加密方法,包括:服务器采用RC4算法对APP的代码进行加密处理;所述APP在启动运行后,提取所述MM1和SS2,并根据密钥私有算法将其还原为全局密文密钥M1和摘要密文S2,从所述M1中摘要得到摘要密钥M3,以M3为密钥采用RC4算法对APP的数字证书签名摘要S3进行加密,得到证书摘要密文S4,判断所述证书摘要密文S4与所述摘要密文S2是否一致;所述客户端对所述APP的代码加密文件进行解密。本发明采用基于标准RC4对称加密算法和私有密钥生成算法相结合,达到效率和安全性兼顾的效果。
Description
技术领域
本发明涉及移动终端技术领域,特别涉及一种基于RC4算法的代码全包加密方法。
背景技术
自HTML5技术诞生以来,对于Html、Javascript、Css代码的加密保护,至今依然是一个巨大的难题。基于HTML5跨平台技术开发的移动APP,通过解压其安装包,即可使用任意代码编辑器直接查看源代码,由此带来产品创意被复制,核心代码被窃取,私密数据泄露,知识产权被侵犯等一系列的问题,严重者甚至波及服务器的安全。
国内外知名的跨平台APP开发技术提供商,如Phonegap、Appcelerator等,在对Html、 Javascript、Css代码的加密保护上,均无良好的对策,通常使用混淆来增加代码的阅读难度,实现对代码的简单保护,但代码依然为可读的明文,未真正解决Html、Javascript、 Css代码的加密保护问题。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种基于RC4算法的代码全包加密方法。
为了实现上述目的,本发明的实施例提供一种基于RC4算法的代码全包加密方法,包括如下步骤:
步骤S1,服务器采用RC4算法对APP的代码进行加密处理,包括:
步骤S11,所述服务器获取所述APP的应用包名和时间戳,构造全局密文密钥M1;
步骤S12,采用密钥私有算法从所述全局密文密钥M1中摘取,得到代码密钥M2和摘要密钥M3,利用代码密钥M2对APP应用包的代码进行加密,得到代码密文;利用摘要密钥M3对所述APP的数字证书摘要进行加密,得到摘要密文S2;
步骤S13,采用密钥算法将所述全局密文密钥M1和所述摘要密文S2进行混淆处理,得到被打散后的密钥MM1和证书摘要密文SS2,并将MM1和SS2写入代码文件CF1中进行存储;
步骤S14,编译APP安装包,按照C语言编译规范将CF1编译为只有CPU能识别的机器码,编译完成后使用数字证书对安装包文件进行签名;
步骤S2,所述APP在启动运行后,提取所述MM1和SS2,并根据密钥私有算法将其还原为全局密文密钥M1和摘要密文S2,从所述M1中摘要得到摘要密钥M3,以M3为密钥采用RC4算法对APP的数字证书签名摘要S3进行加密,得到证书摘要密文S4,判断所述证书摘要密文S4与所述摘要密文S2是否一致,如果是则执行步骤S3;
步骤S3,所述客户端对所述APP的代码加密文件进行解密,包括:
步骤S31,采用密钥私有算法从步骤S2中的密钥M1中摘取,得到密钥M2,
步骤S32,利用所述M2对从APP安装包中读取的代码加密文件进行解密处理,获得代码明文文件。
进一步,所述APP应用包的代码文件包括:Html、Javascript、Css代码文件。
进一步,在所述步骤S11中,所述服务器从数据库读取当前APP的应用包名,并做除冗余处理,得到字符串K1,获取当前世界时时间戳,并做混淆处理,得到字符串K2以确保密钥的唯一性。
进一步,在所述步骤S12中,利用代码密钥M2对APP应用包的代码进行加密,包括如下步骤:
所述服务器从存储中遍历读取当前APP的Html、Javascript、Css代码文件,依次形成二进制Buffer1;
以M2为密钥,使用标准RC4对称加密算法对Buffer1进行加密运算处理,得到密文Buffer2;
保持Html、Javascript、Css代码文件在工程P1中的文件名及路径不变,并将Buffer2 写入对应文件,其中,Html、Javascript、Css代码文件将变为使用任何代码编辑器均不可读的密文。
进一步,在所述步骤S12中,利用摘要密钥M3对所述APP的数字证书摘要进行加密,包括如下步骤:
所述服务器从存储中取得当前APP的签名所需数字证书CERT1,并获取其摘要S1;
以M3为密钥,使用标准RC4对称加密算法对S1进行加密运算处理,得到证书摘要密文S2。
进一步,在所述步骤S2中,
判断所述证书摘要密文S4与所述摘要密文S2是否一致,
如果一致,则判断APP的签名数字证书来自服务器,判断当前APP完整,未被破解篡改或者被二次打包,执行步骤S3进行解密,正常运行APP;
如果不一致,则判断APP已被破解并使用新的数字证书进行二次打包后签名,遭到篡改,应当立即终止执行。
进一步,步骤S32之后,还包括如下步骤:
通过Hash结构H1保存代码明文文件至系统内存,当APP再次需要执行该代码文件时,则直接从内存获取使用该代码明文文件,实现对资源的加速读取;
应用引擎执行保存于代码明文文件中的明文状态的Html、Javascript、Css代码;
APP终止运行,将随系统清理该APP占用的内存而被回收。
根据本发明实施例的基于RC4算法的代码全包加密方法,提供一种基于标准RC4对称加密算法的对Html、Javascript、Css源代码加密方法,经过加密后的代码将为不可读的密文,无法使用代码编辑器对其进行阅读,有效的保护了APP源代码的安全。
1、基于标准RC4对称加密算法和私有密钥生成算法相结合,达到效率和安全性兼顾的效果;
2、采用动态密钥,每次编译APP安装包都生成并使用新的密钥,密钥仅在本次编译的 APP中有效,即使密钥被黑客截取,也仅影响该版本APP,其他版本不受影响,进一步提升了安全性;
3、本发明使用动态加密技术,通过服务器自动加密代码,APP运行时自动解密代码。使用者只需要在编译APP时勾选代码加密选项,服务器在编译APP安装包时将该APP对应的Html、Javascript、Css代码自动加密,当该APP安装到移动终端后,在运行过程中实时解密,APP退出即销毁,不留下解密痕迹,具有易用性和对用户友好性;
4、加密方法对代码产生零修改,零影响。加密不改变代码量大小,加密后的代码不会比加密前多出一个字节,代码加密前后,APP的运行效率、使用体验不受影响;
5、使用者在开发APP的过程中,无需针对代码保护问题投入额外的时间,按照正常的开发流程进行即可;
6、针对APP的潜在安全问题,规定了一个安全区域,仅对该区域内代码进行加解密保护,区域外代码遵循使用者开发经验灵活处理;
7、实现了统一的代码资源标准,在处理被保护代码时,重新分配APP资源的使用方式,统一资源管理,实现加速资源加载,节省系统开销,使得加密代码后的APP在运行过程中能提速运行;
8、密钥同APP数字证书绑定,防止APP被二次打包,可有效防止APP代码被反编译,被篡改,被窃取数据,被盗版,保护软件知识产权;
9、本发明兼容性强,兼容所有搭载Android和iOS操作系统的终端设备。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于RC4算法的代码全包加密方法的流程图;
图2为根据本发明实施例的服务器端加密的流程图;
图3为根据本发明实施例的客户端防二次打包的流程图;
图4为根据本发明实施例的客户端解密的流程图;
图5a至图5f分别为根据本发明实施例的三组代码加密前后的对比效果图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明提出一种基于RC4算法的代码全包加密方法,基于标准RC4对称加密算法的对 Html、Javascript、Css源代码加密方法,主要用于移动应用(APP)开发领域。本发明通过在服务器端对APP的Html、Javascript、Css代码进行加密处理,对APP的数字证书摘要做加密处理,并编译APP安装包;移动终端使用者在安装并启动APP时,应用引擎对APP 做是否被二次打包校验,并实施解密Html、Javascript、Css代码。
如图1所示,本发明实施例的基于RC4算法的代码全包加密方法,包括如下步骤:
步骤S1,服务器采用RC4算法对APP的代码进行加密处理,包括:
步骤S11,服务器获取APP的应用包名和时间戳,构造全局密文密钥M1。
具体地,参考图1,服务器端程序自动构造编译APP安装包所需工程P1。服务器使用密钥私有算法构造RC4加密算法所需密钥,包括:从数据库读取当前APP的应用包名,并做除冗余处理,得到字符串K1,获取当前世界时时间戳,并做混淆处理,得到字符串K2 以确保密钥的唯一性。使用密钥私有算法对K1和K2进行加密处理,得到全局密文密钥M1。
RC4对称算法使用起来简单快捷,密钥较短,且破译困难。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对加密的数据进行解密。本发明通过一套私有算法进行运算生成密钥并存储,在该私有算法未公开的情况下,可有效保证密钥的安全性。
步骤S12,采用密钥私有算法从全局密文密钥M1中摘取,得到代码密钥M2和摘要密钥 M3,利用代码密钥M2对APP应用包的代码进行加密,得到代码密文;利用摘要密钥M3对APP的数字证书摘要进行加密,得到摘要密文S2。
在本发明的一个实施例中,APP应用包的代码文件包括:Html、Javascript、Css代码文件。
具体地,使用密钥私有算法从密钥M1中摘取,得到密钥M2,作为本次加密运算的密钥;服务器从存储中遍历读取当前APP的Html、Javascript、Css代码文件,依次形成二进制Buffer1。
具体地,利用代码密钥M2对APP应用包的代码进行加密,包括如下步骤:
服务器从存储中遍历读取当前APP的Html、Javascript、Css代码文件,依次形成二进制Buffer1;
以M2为密钥,使用标准RC4对称加密算法对Buffer1进行加密运算处理,得到密文Buffer2;
保持Html、Javascript、Css代码文件在工程P1中的文件名及路径不变,并将Buffer2 写入对应文件,其中,Html、Javascript、Css代码文件将变为使用任何代码编辑器均不可读的密文。
经此步骤处理后,Html、Javascript、Css代码文件将变为使用任何代码编辑器均不可读的密文,如图5a至图5f所示。
其中,加密前的Html代码如图5a所示,加密后的Html代码如图5b所示。加密前的Javascript代码如图5c所示,加密后的Javascript代码如图5d所示。加密前的Css代码如图5e所示,加密后的Css代码如图5f所示。
利用摘要密钥M3对APP的数字证书摘要进行加密,包括如下步骤:
使用密钥私有算法从密钥M1中摘取,得到密钥M3;服务器从存储中取得当前APP的签名所需数字证书CERT1,并获取其摘要S1。然后,以M3为密钥,使用标准RC4对称加密算法对S1进行加密运算处理,得到证书摘要密文S2。
步骤S13,采用密钥算法将全局密文密钥M1和摘要密文S2进行混淆处理,得到被打散后的密钥MM1和证书摘要密文SS2,并将MM1和SS2写入工程P1的C语言代码文件CF1中进行存储。
步骤S14,编译APP安装包,按照C语言编译规范将CF1编译为只有CPU能识别的机器码,编译完成后使用数字证书对安装包文件进行签名;
具体地,服务器程序开始编译APP工程P1,并按照C语言编译规范将CF1编译为只有CPU能识别的机器码,有效的保护了密钥M1和数字证书摘要S2的唯一性和不被篡改;编译完成后使用数字证书CERT1对安装包文件进行签名。
移动终端操作系统要求每一个安装进系统的应用程序都是经过数字证书签名的,未签名的应用程序将无法安装。通过使用数字证书对APP安装包进行签名,实现应用程序包的自我认证,标识APP的所有者,因此持有数字证书即意味对该APP的所有权。
步骤S2,如图2所示,APP在启动运行后,提取MM1和SS2,并根据密钥私有算法将其还原为全局密文密钥M1和摘要密文S2,从M1中摘要得到摘要密钥M3,以M3为密钥采用 RC4算法对APP的数字证书签名摘要S3进行加密,得到证书摘要密文S4,判断证书摘要密文S4与摘要密文S2是否一致,如果是则执行步骤S3。
具体地,APP在移动终端启动运行之初,应用引擎从内存中取得中被打散后的密钥MM1 和证书摘要密文SS2,根据密钥私有算法将其还原为M1和S2。使用密钥私有算法从密钥M1中摘取,得到密钥M3;
应用引擎获取当前APP的数字证书签名摘要S3,以M3为密钥,使用标准RC4对称加密算法对S3进行加密运算处理,得到证书摘要密文S4。判断证书摘要密文S4与摘要密文S2是否一致,如果一致,说明本APP的签名数字证书来自服务器端,可认为当前APP完整,未被破解篡改或者被二次打包,应当执行步骤S3的解密Html、Javascript、Css步骤,正常运行APP;如果不一致,则说明APP已被破解并使用新的数字证书进行二次打包后签名,遭到篡改,应当立即终止执行;
步骤S3,如图3所示,客户端对APP的代码加密文件进行解密,包括:
步骤S31,采用密钥私有算法从步骤S2中的密钥M1中摘取,得到密钥M2,应用引擎从APP安装包中读取密文状态下的Html、Javascript、Css代码文件,单独形成二进制Buffer3。
步骤S32,以M2为密钥,使用标准RC4对称加密算法对Buffer3进行解密运算处理,得到明文Buffer4。
需要说明的是,步骤S32之后,还包括如下步骤:通过Hash结构H1保存明文Buffer4至系统内存,当APP再次需要执行该代码文件时,则直接从内存获取使用该Buffer4,实现对资源的加速读取;应用引擎执行保存于Buffer4中的明文状态的Html、Javascript、 Css代码;APP终止运行,H1将随系统清理该APP占用的内存而被回收,不留下任何痕迹。
本发明实施例的基于RC4算法的代码全包加密方法,采用以下技术:可解密并执行Html、Javascript、Css代码文件的应用引擎DeepEngine;服务器端动态对Html、Javascript、Css代码加密技术;服务器端动态密钥生成技术,特别是密钥私有算法技术;服务器端智能编译APP安装包技术;APP端对Html、Javascript、Css代码实时解密技术;APP端防安装包被二次打包技术。
本发明实施例的基于RC4算法的代码全包加密方法,可以实现以下功能:
1、向使用者提供可以解密并执行Html、Javascript、Css代码文件的应用引擎DeepEngine;
2、向使用者提供标准RC4对称加密算法所需密钥的私有算法,在本交底书中简称密钥私有算法;
3、服务器端在编译APP(又称客户端)安装包之前,使用标准RC4对称加密算法和通过密钥私有算法运算得到的密钥,对处于明文状态的Html、Javascript、Css代码文件进行加密运算,得到加密后的密文文件;
4、服务器端进行APP安装包的编译,并将密文状态下的Html、Javascript、Css代码文件及应用引擎编译到APP安装包中;
5、客户端使用者在安装并启动APP运行时,应用引擎先使用标准RC4对称加密算法对处于密文状态的Html、Javascript、Css代码文件进行解密运算,得到解密后的明文代码,然后交给应用引擎执行;
6、以上步骤使得从APP安装文件中解压获得的将是Html、Javascript、Css代码文件的密文文件,无法使用任何代码编辑器进行阅读查看,同时又不影响APP的运行效率和体验,达到了防止APP代码被反编译,被篡改,被窃取数据,被盗版,保护软件知识产权等目的。
根据本发明实施例的基于RC4算法的代码全包加密方法,提供一种基于标准RC4对称加密算法的对Html、Javascript、Css源代码加密方法,经过加密后的代码将为不可读的密文,无法使用代码编辑器对其进行阅读,有效的保护了APP源代码的安全。
1、基于标准RC4对称加密算法和私有密钥生成算法相结合,达到效率和安全性兼顾的效果;
2、采用动态密钥,每次编译APP安装包都生成并使用新的密钥,密钥仅在本次编译的 APP中有效,即使密钥被黑客截取,也仅影响该版本APP,其他版本不受影响,进一步提升了安全性;
3、本发明使用动态加密技术,通过服务器自动加密代码,APP运行时自动解密代码。使用者只需要在编译APP时勾选代码加密选项,服务器在编译APP安装包时将该APP对应的Html、Javascript、Css代码自动加密,当该APP安装到移动终端后,在运行过程中实时解密,APP退出即销毁,不留下解密痕迹,具有易用性和对用户友好性;
4、加密方法对代码产生零修改,零影响。加密不改变代码量大小,加密后的代码不会比加密前多出一个字节,代码加密前后,APP的运行效率、使用体验不受影响;
5、使用者在开发APP的过程中,无需针对代码保护问题投入额外的时间,按照正常的开发流程进行即可;
6、针对APP的潜在安全问题,规定了一个安全区域,仅对该区域内代码进行加解密保护,区域外代码遵循使用者开发经验灵活处理;
7、实现了统一的代码资源标准,在处理被保护代码时,重新分配APP资源的使用方式,统一资源管理,实现加速资源加载,节省系统开销,使得加密代码后的APP在运行过程中能提速运行;
8、密钥同APP数字证书绑定,防止APP被二次打包,可有效防止APP代码被反编译,被篡改,被窃取数据,被盗版,保护软件知识产权;
9、本发明兼容性强,兼容所有搭载Android和iOS操作系统的终端设备。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。
Claims (6)
1.一种基于RC4算法的代码全包加密方法,其特征在于,包括如下步骤:
步骤S1,服务器采用RC4算法对APP的代码进行加密处理,包括:
步骤S11,所述服务器获取所述APP的应用包名和时间戳,构造全局密文密钥M1;其中,所述服务器端程序自动构造编译APP安装包所需工程P1,服务器使用密钥私有算法构造RC4加密算法所需密钥,包括:从数据库读取当前APP的应用包名,并做除冗余处理,得到字符串K1,获取当前世界时间的时间戳,并做混淆处理,得到字符串K2以确保密钥的唯一性,使用密钥私有算法对K1和K2进行加密处理,得到全局密文密钥M1;
步骤S12,采用密钥私有算法从所述全局密文密钥M1中摘取,得到代码密钥M2和摘要密钥M3,利用代码密钥M2对APP应用包的代码进行加密,得到代码密文;利用摘要密钥M3对所述APP的数字证书摘要进行加密,得到摘要密文S2;
步骤S13,采用密钥私有算法将所述全局密文密钥M1和所述摘要密文S2进行混淆处理,得到被打散后的密钥MM1和被打散后的摘要密文SS2,并将MM1和SS2写入代码文件CF1中进行存储;
步骤S14,编译APP安装包,按照C语言编译规范将CF1编译为只有CPU能识别的机器码,编译完成后使用数字证书对安装包文件进行签名;
步骤S2,所述APP在启动运行后,提取所述MM1和SS2,并根据密钥私有算法将其还原为全局密文密钥M1和摘要密文S2,从所述全局密文密钥M1中摘取得到摘要密钥M3,以M3为密钥采用RC4算法对APP的数字证书摘要S3进行加密,得到证书摘要密文S4,判断所述证书摘要密文S4与所述摘要密文S2是否一致,如果是则执行步骤S3;
步骤S3,客户端对所述APP的代码加密文件进行解密,包括:
步骤S31,采用密钥私有算法从步骤S2中的全局密文密钥M1中摘取,得到密钥M2;
步骤S32,利用所述M2对从APP安装包中读取的代码加密文件进行解密处理,获得代码明文文件。
2.如权利要求1所述的基于RC4算法的代码全包加密方法,其特征在于,所述APP应用包的代码文件包括:Html、Javascript、Css代码文件。
3.如权利要求1所述的基于RC4算法的代码全包加密方法,其特征在于,在所述步骤S12中,利用代码密钥M2对APP应用包的代码进行加密,包括如下步骤:
所述服务器从存储中遍历读取当前APP的Html、Javascript、Css代码文件,依次形成二进制Buffer1;
以M2为密钥,使用标准RC4对称加密算法对Buffer1进行加密运算处理,得到密文Buffer2;
保持Html、Javascript、Css代码文件在工程P1中的文件名及路径不变,并将Buffer2写入对应文件,其中,Html、Javascript、Css代码文件将变为使用任何代码编辑器均不可读的密文。
4.如权利要求1所述的基于RC4算法的代码全包加密方法,其特征在于,在所述步骤S12中,利用摘要密钥M3对所述APP的数字证书摘要进行加密,包括如下步骤:
所述服务器从存储中取得当前APP的签名所需数字证书CERT1,并获取其摘要S1;
以M3为密钥,使用标准RC4对称加密算法对S1进行加密运算处理,得到摘要密文S2。
5.如权利要求1所述的基于RC4算法的代码全包加密方法,其特征在于,在所述步骤S2中,
判断所述证书摘要密文S4与所述摘要密文S2是否一致,
如果一致,则判断APP的签名数字证书来自服务器,判断当前APP完整,未被破解篡改或者被二次打包,执行步骤S3进行解密,正常运行APP;
如果不一致,则判断APP已被破解并使用新的数字证书进行二次打包后签名,遭到篡改,应当立即终止执行。
6.如权利要求1所述的基于RC4算法的代码全包加密方法,其特征在于,所述步骤S32之后,还包括如下步骤:
通过Hash结构H1保存代码明文文件至系统内存,当APP再次需要执行该代码文件时,则直接从内存获取使用该代码明文文件,实现对资源的加速读取;
应用引擎执行保存于代码明文文件中的明文状态的Html、Javascript、Css代码;
APP终止运行,将随系统清理该APP占用的内存而被回收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710352860.5A CN107257282B (zh) | 2017-05-18 | 2017-05-18 | 一种基于rc4算法的代码全包加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710352860.5A CN107257282B (zh) | 2017-05-18 | 2017-05-18 | 一种基于rc4算法的代码全包加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107257282A CN107257282A (zh) | 2017-10-17 |
CN107257282B true CN107257282B (zh) | 2021-01-08 |
Family
ID=60027960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710352860.5A Active CN107257282B (zh) | 2017-05-18 | 2017-05-18 | 一种基于rc4算法的代码全包加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107257282B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491696A (zh) * | 2018-03-27 | 2018-09-04 | 四川长虹电器股份有限公司 | 一种代码加密方法 |
CN109347622A (zh) * | 2018-09-26 | 2019-02-15 | 浙江万朋教育科技股份有限公司 | 一种基于加密和摘要算法的可逆防篡改加解密数据的方法 |
CN111447053B (zh) * | 2020-03-24 | 2022-09-23 | 重庆邮电大学 | 一种数据安全传输方法及系统 |
CN111970122B (zh) * | 2020-08-06 | 2023-01-10 | 中国联合网络通信集团有限公司 | 识别官方app的方法、移动终端及应用服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218549A (zh) * | 2012-01-19 | 2013-07-24 | 阿里巴巴集团控股有限公司 | 一种Java源代码加解密的方法及装置 |
CN104268444A (zh) * | 2014-08-25 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种云OS Java源代码保护方法 |
CN104573490A (zh) * | 2013-10-29 | 2015-04-29 | 桂林电子科技大学 | Android平台上已安装软件保护方法 |
CN105122255A (zh) * | 2012-12-17 | 2015-12-02 | 微软技术许可有限责任公司 | 权限受管的代码 |
KR20160124598A (ko) * | 2015-04-20 | 2016-10-28 | 삼성전자주식회사 | 프로그램이 악성 코드를 포함하는지 판단하는 전자 장치 및 그 제어 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7330970B1 (en) * | 1999-07-13 | 2008-02-12 | Microsoft Corporation | Methods and systems for protecting information in paging operating systems |
-
2017
- 2017-05-18 CN CN201710352860.5A patent/CN107257282B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218549A (zh) * | 2012-01-19 | 2013-07-24 | 阿里巴巴集团控股有限公司 | 一种Java源代码加解密的方法及装置 |
CN105122255A (zh) * | 2012-12-17 | 2015-12-02 | 微软技术许可有限责任公司 | 权限受管的代码 |
CN104573490A (zh) * | 2013-10-29 | 2015-04-29 | 桂林电子科技大学 | Android平台上已安装软件保护方法 |
CN104268444A (zh) * | 2014-08-25 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种云OS Java源代码保护方法 |
KR20160124598A (ko) * | 2015-04-20 | 2016-10-28 | 삼성전자주식회사 | 프로그램이 악성 코드를 포함하는지 판단하는 전자 장치 및 그 제어 방법 |
Non-Patent Citations (1)
Title |
---|
iOS APP开发安全框架设计与实现;吴宁;《中国优秀说硕士学位论文全文数据库》;20160228;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107257282A (zh) | 2017-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8381307B2 (en) | Method for protecting a converted applet (CAP) file including encrypting the CAP file | |
CN105681039B (zh) | 用于生成密钥及对应解密的方法和设备 | |
CN107257282B (zh) | 一种基于rc4算法的代码全包加密方法 | |
CN110278115B (zh) | 热更新方法及装置 | |
US8683214B2 (en) | Method and device that verifies application program modules | |
CN109740309B (zh) | 一种文件保护方法以及装置 | |
US20180204004A1 (en) | Authentication method and apparatus for reinforced software | |
CN104318135A (zh) | 一种基于可信执行环境的Java代码安全动态载入方法 | |
US20180067777A1 (en) | Application protection method, server, and terminal | |
CN111859415A (zh) | 神经网络模型加密系统和方法 | |
CN108270574B (zh) | 一种白名单库文件的安全加载方法及装置 | |
JP4664055B2 (ja) | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 | |
CN111159658B (zh) | 字节码处理方法、系统、装置、计算机设备和存储介质 | |
KR20170022023A (ko) | 프로그램 실행 코드를 난독화하기 위한 장치 및 방법, 난독화된 프로그램 실행 코드를 복구하여 실행하기 위한 장치 및 방법 | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 | |
CN109784072B (zh) | 一种安全文件管理方法和系统 | |
CN112199641A (zh) | 一种机台软件的启动方法、装置及机台设备 | |
JP2013045277A (ja) | プログラム難読化方法およびリモートデバッグシステム | |
KR101604892B1 (ko) | 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치 | |
CN106650342B (zh) | 一种Jar包加固方法及系统 | |
CN110855434B (zh) | 一种密钥处理方法、装置、终端设备及存储介质 | |
CN111522555B (zh) | apk文件的加固方法、解密方法及相关装置 | |
CN111061495A (zh) | 应用的安装方法、终端设备及存储介质 | |
CN112597449B (zh) | 软件加密方法、装置、设备及存储介质 | |
CN112966305B (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211022 Address after: 100094 No. 68 North Qing Road, Beijing, Haidian District Patentee after: YONYOU NETWORK TECHNOLOGY Co.,Ltd. Address before: 508, taixiang business building, No.1, Longxiang Road, Haidian District, Beijing 100080 Patentee before: POMELO(BEIJING)MOBILE TECHNOLOGY Co.,Ltd. |