一种基于RC4算法的代码全包加密方法技术

技术编号:16400726 阅读:18 留言:0更新日期:2017-10-17 20:49
本发明专利技术提出了一种基于RC4算法的代码全包加密方法,包括:服务器采用RC4算法对APP的代码进行加密处理;所述APP在启动运行后,提取所述MM1和SS2,并根据密钥私有算法将其还原为全局密文密钥M1和摘要密文S2,从所述M1中摘要得到摘要密钥M3,以M3为密钥采用RC4算法对APP的数字证书签名摘要S3进行加密,得到证书摘要密文S4,判断所述证书摘要密文S4与所述摘要密文S2是否一致;所述客户端对所述APP的代码加密文件进行解密。本发明专利技术采用基于标准RC4对称加密算法和私有密钥生成算法相结合,达到效率和安全性兼顾的效果。

A whole code encryption method based on RC4 algorithm

The invention provides an encryption method based on RC4 algorithm code package includes: the server uses RC4 algorithm code for APP encryption processing; the APP at the start of operation, the extraction of MM1 and SS2, and according to the private key algorithm to restore the global cipher key M1 and S2 abstract abstract the ciphertext, get the key of M3 from the M1, using M3 as the key RC4 algorithm using digital certificate of APP signature Abstract S3 encryption, the ciphertext S4 get a certificate of the certificate, the judge and the ciphertext ciphertext S4 Abstract S2 is consistent; the client of the APP code to decrypt the encrypted file. The invention combines the standard RC4 symmetric encryption algorithm and the private key generation algorithm, and achieves the effect of both efficiency and security.

【技术实现步骤摘要】
一种基于RC4算法的代码全包加密方法
本专利技术涉及移动终端
,特别涉及一种基于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算法的代码全包加密方法,其特征在于,包括如下步骤:步骤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安装包中读取的代码加密文件进行解密处理,获得代码明文文件。...

【技术特征摘要】
1.一种基于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安装包中读取的代码加密文件进行解密处理,获得代码明文文件。2.如权利要求1所述的基于RC4算法的代码全包加密方法,其特征在于,所述APP应用包的代码文件包括:Html、Javascript、Css代码文件。3.如权利要求1所述的基于RC4算法的代码全包加密方法,其特征在于,在所述步骤S11中,所述服务器从数据库读取当前APP的应用包名,并做除冗余处理,得到字符串K1,获取当前世界时时间戳,并做混淆处理,得到字符串K2以确保密钥的唯...

【专利技术属性】
技术研发人员:刘鑫
申请(专利权)人:柚子北京移动技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1