HTTP请求的优化方法、终端以及存储介质转让专利

申请号 : CN202110660300.2

文献号 : CN113556381B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 喻正军胡巧云

申请人 : 湖南幻影三陆零科技有限公司

摘要 :

本发明提供了一种HTTP请求的优化方法、终端以及存储介质,本发明能够实现对HTTP请求的保护,起到保护数据安全的作用,其中,采用第一编码方式能够使HTTP请求具备无损压缩的效果;采用第二编码方式能够使HTTP具备对称加密的效果;采用第一编码方式及第二编码方式的结合能够使HTTP具备对称加密和无损压缩的双重效果,对于HTTP请求的多次请求时,能够极大的提升服务器负载能力,节约服务器资源。将由HTTP请求转换的明文与随机数线性组合成第一待编码序列,在明文之前添加随机数,随机数起到了额外秘钥的作用,能够极大的增加安全性,提升保障,而且还能保证每一次后续编码得到的哈希值会不一致,这样也增大了安全性。

权利要求 :

1.一种HTTP请求的优化方法,其特征在于,应用于客户端,包括以下步骤:生成HTTP请求,将所述HTTP请求进制转换成明文;

生成随机数,将所述随机数与所述明文进行线性组合,得到第一待编码序列;

对所述第一待编码序列按照第一编码方式结合第二编码方式进行编码,得到编码完成后的哈希值;

H(X)‑L/n

设定正实数r=2 ,所述X表示所述第一待编码序列,所述H(X)为所述第一待编码序列的归一化信息熵,所述L为预设的所述第一待编码序列的编码输出长度,所述n表示所述第一待编码序列的长度;

对所述第一待编码序列中的第i位符号x,按照编码公式Ri=Ri‑1rp(x),Li=Li‑1+Ri‑1F(x‑1,r)进行编码,直至编码完成所述第一待编码序列中所有的符号,并且输出所述第一待编码序列最后一位符号编码后的Li作为第一序列;其中,所述Ri的初始值为1,所述Li的初始值为0,所述p(x)为符号x的归一化概率,所述F(x‑1,r)为符号x‑1的非归一化分布函数;

将所述第一待编码序列与所述第一序列进行并联组合,得到第二序列,再将所述第二序列进行信源处理,得到第二待编码序列;

当 通过编码公式 和Li=Li‑1编码所述第二待编码序列中的符号0,通过 和 编码所述第二待编码序列中的符号10,以

及,当 通过编码公式 和 编码所述第二待编码

序列中的符号10,通过 和Li=Li‑1编码所述第二待编码序列中的符号1;直至编码完成所述第二待编码序列中所有的符号,并且输出所述第二待编码序列最后一位符号后的Li作为所述哈希值;其中,所述p表示所述第一待编码序列中符号0的概率,所述所述 所述p(1)表示所述第二待编码序列中符号1的概率,所述p(0)表示所述第二待编码序列中符号0的概率,所述将所述哈希值发送至服务器。

2.根据权利要求1所述的HTTP请求的优化方法,其特征在于,还包括步骤:在所述rmax中植入二进制密码且所述二进制密码大于或等于512位比特。

3.根据权利要求1所述的HTTP请求的优化方法,其特征在于,所述HTTP请求包括POST或GET请求。

4.一种HTTP请求的优化方法,其特征在于,基于权利要求1至3任一项所述的HTTP请求的优化方法,应用于服务器,包括以下步骤:接收所述客户端发送的所述哈希值;

按照所述客户端对所述第一待编码序列进行编码的方式,对所述哈希值进行对应的解码,并进行验证,得到验证结果;

当所述验证结果正确,则匹配与所述明文对应的服务器资源;

将所述服务器资源发送至所述客户端。

5.一种终端,其特征在于,包括:

明文生成单元,用于生成HTTP请求,将所述HTTP请求进制转换成明文;

编码序列生成单元,用于生成随机数,将所述随机数与所述明文进行线性组合,得到第一待编码序列;

编码单元,用于

对所述第一待编码序列按照第一编码方式结合第二编码方式进行编码,得到编码完成后的哈希值;

H(X)‑L/n

设定正实数r=2 ,所述X表示所述第一待编码序列,所述H(X)为所述第一待编码序列的归一化信息熵,所述L为预设的所述第一待编码序列的编码输出长度,所述n表示所述第一待编码序列的长度;

对所述第一待编码序列中的第i位符号x,按照编码公式Ri=Ri‑1rp(x),Li=Li‑1+Ri‑1F(x‑1,r)进行编码,直至编码完成所述第一待编码序列中所有的符号,并且输出所述第一待编码序列最后一位符号编码后的Li作为第一序列;其中,所述Ri的初始值为1,所述Li的初始值为0,所述p(x)为符号x的归一化概率,所述F(x‑1,r)为符号x‑1的非归一化分布函数;

将所述第一待编码序列与所述第一序列进行并联组合,得到第二序列,再将所述第二序列进行信源处理,得到第二待编码序列;

当 通过编码公式 和Li=Li‑1编码所述第二待编码序列中的符号0,通过 和 编码所述第二待编码序列中的符号10,以

及,当 通过编码公式 和 编码所述第二待编码

序列中的符号10,通过 和Li=Li‑1编码所述第二待编码序列中的符号1;直至编码完成所述第二待编码序列中所有的符号,并且输出所述第二待编码序列最后一位符号后的Li作为所述哈希值;其中,所述p表示所述第一待编码序列中符号0的概率,所述所述 所述p(1)表示所述第二待编码序列中符号1的概率,所述p(0)表示所述第二待编码序列中符号0的概率,所述信号发送单元,用于将所述哈希值发送至服务器。

6.一种终端,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至3中任意一项所述的HTTP请求的优化方法和/或如权利要求4中任意一项所述的HTTP请求的优化方法。

7.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至3中任意一项所述的HTTP请求的优化方法和/或如权利要求

4中任意一项所述的HTTP请求的优化方法。

说明书 :

HTTP请求的优化方法、终端以及存储介质

技术领域

[0001] 本发明实施例涉及通信编码技术领域,特别涉及一种HTTP请求的优化方法、终端以及存储介质。

背景技术

[0002] 目前使用的远程控制系统的基本模式为:远程发送端发送数据至云端,由云端进行数据处理后,再发送至远程接收端进行响应。其核心技术为无线接收/发送/传输技术以
及云处理、云储存技术。
[0003] 进行无线发送与接收的过程中,不可避免的需要使用到互联网协议。目前使用最多的是HTTP/HTTPS协议。
[0004] HTTP(Hypertext Transfer Protocol,超文本传输协议)协议:使用极为广泛,现有互联网环境中仍大约有65%的网站使用HTTP,但是却存在不小的安全缺陷,主要是其数
据的明文传送和消息完整性检测的缺乏,而这两点恰好是网络支付,网络交易等新兴应用
中安全方面最需要关注的。
[0005] 另外,HTTP在传输客户端请求和服务端响应时,唯一的数据完整性检验就是在报文头部包含了本次传输数据的长度,而对内容是否被篡改不作确认。因此攻击者可以轻易
的发动中间人攻击,修改客户端和服务端传输的数据,甚至在传输数据中插入恶意代码,导致客户端被引导至恶意网站被植入木马。
[0006] HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL(Uniform Resource Locator)全称是资源描述符。可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。
[0007] 理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,但是通常POST数据量存在80K/100K的大小限制。其起限制作用的是服务器的处理程序的处理能力,不同的服务器在接收POST请求时,对内容的长度进行了限制。
[0008] GET是最常用的方法,用于请求服务器发送某个资源,是幂等的。
[0009] (1)该操作用于获取信息而非修改信息。GET请求一般不应产生副作用。它仅仅是获取资源信息,就像数据库查询一样,不会修改和增加数据,不会影响资源的状态。
[0010] (2)幂等是指对同一个URL的多个请求应该返回同样的结果。
[0011] GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以“?”分割URL和传输数据,参数之间以“&”相连,如:login.action?name=jiel incode&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母或数字,则原样发送;如果是空格,转换为“+”;如果是中文或其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII码值。
[0012] 目前的HTTP协议传输存在以下缺陷:
[0013] 从攻击的角度,无论是GET还是POST都不够安全,因为HTTP本身是明文协议。每个HTTP请求和返回的每个byte(比特)都会在网络上明文传播,不管是URL,Header(头部)还是body(数据部)。这完全不是一个“是否容易在浏览器地址栏上看到”的问题。因此如果请求要经过不信任的公网,就需要避免泄密的手段。
[0014] 另外,HTTP协议的传输数据会受到浏览器的限制,而有一定的长度上限。
[0015] HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)协议是由HTTP加上TLS/SSL协议(安全传输层协议/安全套接字协议)构建的可进行加密传输、身份认
证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加
密,实现互联网传输安全保护。
[0016] HTTPS仍然无法有效解决HTTP协议存在的问题:
[0017] (1)HTTPS=HTTP+SSL/TLS,HTTP和SSL只是简单的组合起来,而非从根本上改造HTTP协议,仍然无法有效解决HTTP数据长度受到限制的问题。
[0018] (2)实现HTTP转换为HTTPS,首先要购买一张SSL证书,购买SSL证书后还需要提交CSR文件到CA机构完成验证审核才能安装部署。无论是购买SSL证书,还是交由CA机构进行
审核等步骤,无一不是费时费力,且会需要额外成本,甚至是持续性的成本。(SSL证书认证拥有注册时限,过了时限需要重新认证购买)
[0019] (3)HTTPS的加密仅针对URL,而没有对附带一起传送的其他数据进行加密,安全性仍有很大的提升。

发明内容

[0020] 本发明实施例提供了一种HTTP请求的优化方法、终端以及存储介质。能够达到保护数据安全的作用,还能够节约服务器资源,降低成本。
[0021] 第一方面,本发明实施例提供了一种HTTP请求的优化方法,应用于客户端,包括以下步骤:
[0022] 生成HTTP请求,将所述HTTP请求进制转换成明文;
[0023] 生成随机数,将所述随机数与所述明文进行线性组合,得到第一待编码序列;
[0024] 对所述第一待编码序列进行编码,其中,对所述第一待编码序列按照以下编码方式中的其中一种进行编码,得到编码后的哈希值,其中所述编码方式包括:通过第一编码方式进行编码;或通过第二编码方式进行编码;或通过所述第一编码方式结合所述第二编码
方式进行编码;
[0025] 当所述第一待编码序列为所述第一编码方式的编码对象时,则所述第一编码方式包括:
[0026] 设定正实数r=2H(X)‑L/n,所述H(X)为所述第一待编码序列的归一化信息熵,所述L为预设的所述第一待编码序列的编码输出长度,所述n表示所述第一待编码序列的长度;
[0027] 对所述第一待编码序列中的第i位符号x,按照编码公式Ri=Ri‑1rp(x),Li=Li‑1+Ri‑1F(x‑1,r)进行编码,直至编码完成所述第一待编码序列中所有的符号,并且输出所述第一待编码序列最后一位符号编码后的Li作为所述哈希值;其中,所述Ri的初始值为1,所述Li的初始值为0,所述p(x)为符号x的归一化概率,所述F(x‑1,r)为符号x‑1的非归一化分布函数;
[0028] 当所述第一待编码序列为所述第二编码方式的编码对象时,则所述第二编码方式包括:
[0029] 将所述第一待编码序列进行信源处理,得到第二待编码序列;
[0030] 当 通过编码公式 和Li=Li‑1编码所述第二待编码序列中的符号0,通过 和 编码所述第二待编码序列中的符号
10,以及,当 通过编码公式 和 编码所述第二
待编码序列中的符号10,通过 和Li=Li‑1编码所述第二待编码序列中的符号
1;直至编码完成所述第二待编码序列中所有的符号,并且输出所述第二待编码序列最后一位符号后的Li作为所述哈希值;其中,所述p表示所述第一待编码序列中符号0的概率,所述所述 所述p(1)表示所述第二待编码序列中符号1的概
率,所述p(0)表示所述第二待编码序列中符号0的概率,所述
[0031] 将所述哈希值发送至服务器。
[0032] 第二方面,本发明实施例提供了一种HTTP请求的优化方法,基于本发明第一方面所述的HTTP请求的优化方法,应用于服务器,包括以下步骤:
[0033] 接收所述客户端发送的所述哈希值;
[0034] 按照所述客户端对所述第一待编码序列进行编码的方式,对所述哈希值进行对应的解码,并进行验证,得到验证结果;
[0035] 当所述验证结果正确,则匹配与所述明文对应的服务器资源;
[0036] 将所述服务器资源发送至所述客户端。
[0037] 第三方面,本发明实施例提供了一种终端,包括:
[0038] 明文生成单元,用于生成HTTP请求,将所述HTTP请求进制转换成明文;
[0039] 编码序列生成单元,用于生成随机数,将所述随机数与所述明文进行线性组合,得到第一待编码序列;
[0040] 编码单元,用于对所述第一待编码序列进行编码,其中,对所述第一待编码序列按照以下编码方式中的其中一种进行编码,得到编码后的哈希值,其中所述编码方式包括:通过第一编码方式进行编码;或通过第二编码方式进行编码;或通过所述第一编码方式结合所述第二编码方式进行编码;
[0041] 当所述第一待编码序列为所述第一编码方式的编码对象时,则所述第一编码方式包括:
[0042] 设定正实数r=2H(X)‑L,所述H(X)为所述第一待编码序列的归一化信息熵,所述L为预设的所述第一待编码序列的编码输出长度,所述n表示所述第一待编码序列的长度;
[0043] 对所述第一待编码序列中的第i位符号x,按照编码公式Ri=Ri‑1rp(x),Li=Li‑1+Ri‑1F(x‑1,r)进行编码,直至编码完成所述第一待编码序列中所有的符号,并且输出所述第一待编码序列最后一位符号编码后的Li作为所述哈希值;其中,所述Ri的初始值为1,所述Li的初始值为0,所述p(x)为符号x的归一化概率,所述F(x‑1,r)为符号x‑1的非归一化分布函数;
[0044] 当所述第一待编码序列为所述第二编码方式的编码对象时,则所述第二编码方式包括:
[0045] 将所述第一待编码序列进行信源处理,得到第二待编码序列;
[0046] 当 通过编码公式 和Li=Li‑1编码所述第二待编码序列中的符号0,通过 和 编码所述第二待编码序列中的符号
10,以及,当 通过编码公式 和 编码所述第二
待编码序列中的符号10,通过 和Li=Li‑1编码所述第二待编码序列中的符号
1;直至编码完成所述第二待编码序列中所有的符号,并且输出所述第二待编码序列最后一位符号后的Li作为所述哈希值;其中,所述p表示所述第一待编码序列中符号0的概率,所述所述 所述p(1)表示所述第二待编码序列中符号1的概
率,所述p(0)表示所述第二待编码序列中符号0的概率,所述
[0047] 信号发送单元,用于将所述哈希值发送至服务器。
[0048] 第四方面,本发明实施例提供了一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述的HTTP请求的优化方法。
[0049] 第五方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述的HTTP请求的优化方法。
[0050] 本发明实施例包括:
[0051] (1)现有技术框架下的HTTP协议,其传输数据会受到浏览器的限制,而有一定的长度上限。本发明可以将传输的各个数据统一化为(可设置的)固定长度的唯一标识,有效的
解决了数据长度受到限制的问题。同时,将具体的请求数据加密隐藏,提高了请求的安全性保密性,也提高了HTTP协议传输效率。
[0052] (2)本发明能够实现对HTTP请求的保护,起到保护数据安全的作用,其中,采用第一编码方式能够使HTTP请求具备无损压缩的效果;采用第二编码方式能够使HTTP具备对称
加密的效果;采用第一编码方式及第二编码方式的结合能够使HTTP具备对称加密和无损压
缩的双重效果,对于HTTP请求的多次请求时,能够极大的提升服务器负载能力,节约服务器资源。
[0053] (3)相较于现有技术框架下的HTTPS协议,不需要额外购买SSL证书,节省了成本。本发明是从HTTP协议本身的请求方式上入手,不仅仅只针对URL,而且还会对HTTP请求传输的各项数据一并进行加密,从而达到安全加密HTTP协议的目的。
[0054] (4)将由HTTP请求转换的明文与随机数线性组合成第一待编码序列,在明文之前添加随机数,使得编码某一明文前先编码随机数,因为随机数是未知的,且加权概率模型的线性编译码特征前面的随机数无法正确解密,必然使得后面的明文也无法正确解密,于是,随机数起到了秘钥的作用,能够极大的增加安全性,提升保障。而且能保证每一次后续编码得到的哈希值会不一致,这样也增大了安全性。
[0055] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

[0056] 附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0057] 图1为本发明提供的二元加权模型的编码运算过程的示意图;
[0058] 图2为本发明提供的加权模型编码码率R与序列X中符号0概率p的关系示意图;
[0059] 图3为本发明提供的 时和 时,R与p的关系示意图;
[0060] 图4为本发明一个实施例提供的HTTP请求的优化方法的流程示意图;
[0061] 图5为本发明一个实施例提供的第一编码方式的编码流程示意图;
[0062] 图6为本发明另一个实施例提供的HTTP请求的优化方法的流程示意图;
[0063] 图7为本发明一个实施例提供的第一待编码序列的组成示意图;
[0064] 图8为本发明一个实施例提供哈希值与第一待编码序列的组合示意图;
[0065] 图9为本发明一个实施例提供的一种终端的结构示意图;
[0066] 图10为本发明另一个实施例提供的一种终端的结构示意图。

具体实施方式

[0067] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0068] 需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0069] 原理部分;
[0070] 为了便于本领域技术人员理解,在介绍本发明实施例之前,先对本发明实施例技术方案的原理进行说明,主要包括信源处理、加权概率模型编译码方法和加密编译码三个
部分,具体如下所示:
[0071] 一、信源处理;
[0072] 发送端的信源生成长度为n(n=1,2,...)的二进制伯努利序列X,序列X存在所有可能性。例如:线性地将X中“1”替换为“10”得到二进制序列Q,于是序列Q需满足以下约束条件:“连续符号1的个数最多为1”。序列X处理后得序列Q,Q必然满足“连续符号1的个数最多为1”。例如:X为0110111100101,根据“连续符号1的个数最多为1”可得序列Q为
010100101010100010010。从左边至右,将序列Q中“10”替换为“1”可得序列X。将序列Q的长度记为l。
[0073] 序列Q通过密码长度为k的加权概率模型编码,得到密文,接收端无法确定密码信息是否正确的情形下对密文进行加权概率模型译码,Y为译码后的二进制序列。因不确定密码信息是否正确,所以序列Y存在很多可能性。但序列Y不满足“连续符号1的个数最多为1”,则密码信息错误或密文数据被篡改。
[0074] 设事件E表示满足“连续符号1的个数最多为1”的序列Y的集合,且事件E有f(l)个序列Y。
[0075] 当l=1时,E=(0,1),f(1)=2,互补事件为 当l=2时,E=(00,01,10),f(2)=3, 当l=3时,E=(000,001,010,100,101),f(3)=5,
类推可得,当l≥3时:
[0076] f(l)=f(l‑1)+f(l‑2)           (1)
[0077] 可得事件E的概率为:
[0078]
[0079] 令事件E中f(l)个序列Y服从均匀分布,则:
[0080]
[0081] 于是,Y∈E且Y=Q的概率为:
[0082]
[0083] P(Y=Q|Y∈E)为错误密码且解密正确概率,记为Perr,即Perr=P(Y=Q|Y∈E)。
[0084] 令1:序列Y满足“连续符号1的个数最多为1”,liml→∞Perr=0。
[0085] 证明:因为l→∞, 所以liml→∞Perr=0。
[0086] 通过令1,不难得出,当信源X越长,接收端错误密码解密出明文的概率为0。通过可判断加密系统被非法密码尝试解密。所以可构造密码自校验的密码系统,密码无
需存储或独立校验。即 则密码错误;Y∈E,则密码正确。
[0087] 也因为密码可自校验,所以给攻击者提供了试错的方式,但需要进行2k次试错。k为自定义值,当k足够大,则尝试次数趋近于无穷。增加密码的长度主要有两个方法:
[0088] (1)不同的比特采用独立密码进行加密编码;
[0089] (2)同一个密码,每个比特使用密码不同部位进行加密编码。
[0090] 二、加权概率模型编译码方法:
[0091] 基于上述“信源处理”部分,设序列Q为0100100001010,序列Q由“0”,“10”组成。
[0092] 基于马尔可夫链或条件概率分析,符号0存在两种概率质量函数,分别为p(0|0),p(0|1)。符号1存在一种概率质量函数p(1|0)。编码时,因为序列Q已知,所以每个符号使用的概率质量函数均能准确选择。但接收端在未知密码信息进行译码时无法准确选择概率质量函数。如已经译码出“0”,因符号0存在两种概率质量函数,无法正确选择哪一个概率质量函数译码下一个符号。当已经译码出“1”,因“1”后必然是符号0,所以存在唯一的选择p(110)。
因概率质量函数不唯一,所以采用马尔可夫链或条件概率构造加密编译码方法不可行。
[0093] 设序列Q为010100101010100010010。传统编码方法是:从左边至右,将序列Q中“10”替换为“1”可得序列X为:0110111100101,然后对序列X进行编码从而逼近H(X),H(X)为信息熵。但是传统编码方法在译码时无法进行加密,仅具备数据压缩作用,更无法实现密码自校验。若对序列Q进行编码,因增加了冗余信息,所以H(Q)>H(X),传统编码方法无法逼近H(X)。因无法逼近H(X),则序列Q中的冗余信息没有被完全去除,存在破解的可能。
[0094] 设存在函数 p(x)为符号x的概率。r表征序列Q的形态特征,称为权系数。 称为加权概率质量函数,基于 构造编译码方法具备:
[0095] (1)r在每个比特编码时可采用独立密码给出的值;
[0096] (2)r在每个比特编码时可采用由同一密码不同部位给出的值。
[0097] 2.1、加权概率模型编码;
[0098] 定义2.1:设离散随机变量X,X∈{0,1},P{X=a}=p(a)(a∈{0,1}),加权概率质量函数为 p(a)为符号a的概率质量函数,0≤p(a)≤1,r为权系数,且:
[0099] F(a)=∑i≤ap(i)         (5)
[0100] 若F(a,r)满足F(a,r)=rF(a),则称F(a,r)为加权累积分布函数,简称加权分布函数。
[0101] 显然,所有符号的加权概率之和为
[0102] 根据式(5),F(Xi‑1)=F(Xi)‑p(Xi),Xi=0时F(Xi‑1)=0,Xi=1时
[0103] 将序列Q的加权分布函数记为F(Q,r):
[0104] l=1时,F(Q,r)=rF(X1‑1)+rp(X1)。
[0105] l=2时,F(Q,r)=rF(X1‑1)+r2F(X2‑1)p(X1)+r2p(X1)p(X2)。
[0106] l=3时,F(Q,r)=rF(X1‑1)+r2F(X2‑1)p(X1)+r3F(X3‑1)p(X1)p(X2)+r3p(X1)p(X2)p(X3)。
[0107] 令 l≥1时:
[0108]
[0109] 将满足式(6)的加权分布函数的集合定义二元加权模型,简称加权模型,记为{F(Q,r)}。令
[0110] Hl=F(Q,r)           (7)
[0111]
[0112]
[0113] 其中Xi∈{0,1},l=1,2,...。当r=1时:
[0114]
[0115] Hl=F(Q,1), Ll=Hl‑Rl,可得算术编码(又称区间编码)是基于r=1时加权分布函数的无损编码方法。
[0116] 加权模型可扩展到Xi∈{0,1,2,...}的情形,这里不作讨论。
[0117] 因Xi必须取A中的值,所以p(Xi)≥0。显然式(7)(8)(9)为区间列。Li,Hi是信源序列X在时刻i(i=0,1,2,...,n)变量Xi对应的区间上下标,Ri=Hi‑Li是区间的长度。
[0118] 根据式(7)(8)(9),加权概率模型线性编码的迭代式为:
[0119]
[0120] 令r>1且序列Q从i+1位置开始的3个符号为0,1,0。根据式(11)二元加权模型的编码运算过程如图1所示。
[0121] 根据图1,若Hi+3>Hi+1,因区间[Hi+1,Hi+3)∈[Hi+1,Hi+1+Ri+1),且[Hi+1,Hi+Ri)与符号1对应,所以第i+1个符号0可能被错误译码为符号1。若Hi+3≤Hi+1,则[Li+3,Hi+3)∈[Li+1,Hi+1)。如图1中[Li+1,Hi+1)与符号0唯一对应,所以i+1位置上的符号0被Li+3正确译码,且i+2和i+3位置上的符号1和符号0也能正确译码。当0<r≤1时,任意时刻都有[Li+1,Hi+1)∈[Li,Hi),可无损译码。由于F(0‑1)=0,F(0)=p(0),由式(11)可得:
[0122]
[0123] 因为Hi+3≤Hi+1,所以:
[0124]
[0125] 设方程ar2+br+c=0,其中a=p(1)p(0),b=p(0),c=‑1,且r>0。满足方程的正实数根为 因p(1)=1‑p(0),且p(1)=0时r≤1,所以:
[0126]
[0127] 令 rmax为r的最大值,显然rmax仅在序列Q满足“连续符号1的个数最多为1”才能通过Li完整译码。
[0128] 设序列Q中第i+1个位置起有j+2(j=1,2,3,...)个符号为0,1,...,1,0,其中符号1的连续个数为j,根据“连续符号1的个数最多为1”,j≤1。因Hi+j+2≤Hi+1,根据式(11)有:
[0129]
[0130] 于是:
[0131]
[0132] 将式(15)减去式(16),化简得:
[0133] r‑rj+2p(1)j+1+rj+2p(1)j+2≥1             (17)
[0134] p(1)已知,式(17)取等号可得rmax。当p(1)=1或p(0)=0时,rmax=1;当0<p(0)<j+2 j+1 j+2 j+2 21,j→∞时,rmax p(1) →0,rmax p(1) →0,则rmax→1。当j<1或r<rmax时rp(0)+rp(0)
3 2 j+1 j
p(1)+rp(0)p(1) +…+r p(0)p(1) <1。
[0135] 2.2、无损译码可行性证明;
[0136] 令2.2:加权模型满足:
[0137] (1)Ll<Hl∧Ll<Hl‑1∧...∧Ll<H1,通过Ll可完整还原序列Q;
[0138] (2)liml→∞(Hl‑Ll)=0,即收敛性;
[0139] (3)liml→∞Hl=Ll,即唯一性。
[0140] 证明(1):根据式(15),j>t或r>rmax,有Hi+j+2>Hi+1,由于[Hi+j+2,Hi+1)对应于符号1,于是第i+1个符号不能被准确译码为符号0,不符合无损译码要求,所以0≤j≤t且0<r≤rmax必须同时满足。因F(0‑1,r)=0,Li‑1≥0,Ri‑1≥0,所以Ll为单调不减函数。当且仅当Ll∈[Ll,Hl)∧Ll∈[Ll‑1,Hl‑1)∧...∧Ll∈[L1,H1)时,因[Li,Hi)(i=1,2,...,l)与变量Xi为唯一映射关系,所以当Ll∈[Li,Hi)(i=1,2,...,l)时得出唯一的符号Xi,从而完整得出信源序列X,于是Ll<Hl∧Ll<Hl‑1∧...∧Ll<H1。
[0141] 证明(2):因j≤t且r≤rmax,有 所以Hi+j+2≤Hi+1。当且仅当j=t且r=rmax时Hi+j+2=Hi+1。令
于是Rl=ΠRj+1ΠRj...ΠR2ΠR1。当
j<t且r<rmax时,由式(15)可得
所以l→∞时Rl→0,则liml→∞(Hl‑Ll)=liml→∞Rl=0,加权
概率模型是收敛的。
[0142] 证明(3):{Ll}是严格单调不减且有上界的数列,由单调有界令,设liml→∞Ll=ξ,且ξ≥Ll。因为liml→∞(Hl‑Ll)=0,所以liml→∞Ll=liml→∞Hl=ξ,所以ξ=Ll,liml→∞Hl=ξ=Ll,且Ll是唯一的。
[0143] 推论2.3:设 当 时,加权模型通过Ll可完整还原序列Q。
[0144] 证明:根据式(15),当 时 于是
[0145] 根据推论2.3,因 于是 但是不能得出 以t=1为例, 代入式(13)求解,当 时式(13)成立,加权模型满足令2.2(1)。因为
j+2 j+1 j+2 j+2
t=1时,序列Q中 所以 所以rmax‑rmax p(1) +rmax p(1) =1(j≤
t)是加权模型无损编译码的充要条件。
[0146] 2.3、加权模型信息熵;
[0147] 当r=1时, Q的信息熵为:
[0148] H(Q)=‑p(0)log2 p(0)‑p(1)log2 p(1)        (18)
[0149] 当r≠1时,定义具有加权概率 的随机变量Xi的自信息量为:
[0150]
[0151] 设集合{Xi=a}(i=1,2,...,l,a∈{0,1})中有ca个a。当r的值确定,序列Q的总信息量为:
[0152]
[0153] 于是平均每个符号的信息量为:
[0154]
[0155] 其中 和 为序列Q中符号0和符号1的概率质量函数。
[0156] 基于上述“2.1、加权概率模型编码”和“2.2、无损译码可行性证明”的介绍,r≤rmax,因rmax>1所以‑logr+H(Q)<H(Q)。因r>rmax时加权模型无法还原序列Q,所以r=rmax时I(Xi,r)最小。于是加权模型的信息熵为:
[0157]
[0158] 2.4、加权模型编码码率;
[0159] 根据上述“2.3、加权模型信息熵”的介绍,因加权模型编译码满足:
[0160] (1)编译码时符号0和符号1存在唯一的概率质量函数p(0)和p(1);
[0161] (2)rmax>1时‑log rmax<0,所以H(Q,rmax)<H(Q)。加权模型编码更接近H(X)。
[0162] (3)V无误译码后Y=Q,Y∈B。
[0163] (4)n→∞时l→∞,当 V错误或密码错误;当Y∈B,V正确,Y=Q。
[0164] (5)rmax作为实数,可以植入独立密码信息,或植入密码的部分信息。
[0165] 所以在发送端,序列Q经加权模型编码为序列V(密文),序列V(密文)经信道传输至接收端,接收端通过V(密文)经加权模型译码出二进制序列Y。当Y=Q时密码正确,且明文被解密;当Y≠Q时密码错误,解密失败。
[0166] 根据式(22),序列Q中平均每个比特所携带的信息量为H(Q,rmax)(bit/bit),总信息量为lH(Q,rmax)(bit)。信源序列X的总信息量为nH(X)(bit),可得加权模型的编码码率为:
[0167]
[0168] R=1时说明加权模型编码结果达到序列X的信息熵。设长度为n的二进制伯努利信源序列X中符号0的概率为p(0≤p≤1)。于是nH(X)=‑pn log2 p‑(1‑p)n log2(1‑p)。经式(2)处理后得序列Q,序列Q的长度为l=(2‑p)n,则
[0169] 令2.4:(s→∞,t=1),当n→∞且 时,R=1,即加权模型编码达到信息熵。其中s,t分别表示:序列Q中连续符号0个数最多为s,序列Q中连续符号1个数最多为t。
[0170] 证明: 时nH(X)=n。根据上述推论2.3有于是 由式(23)可得:
[0171]
[0172] 序列Q中符号0和符号1的概率质量函数 且根据式(14)当p(0)=1时,rmax=1,p=1;当 时,
[0173] 令2.5(s→∞,t=1),当n→∞时,R≤1,即加权模型编码可达信息熵。
[0174] 证明:根据式(25)
[0175]
[0176] 因0≤p≤1,所以4(1‑p)2≥0,则4‑8p+4p2≥0。因4‑8p+4p2=(3‑2p)2‑(5‑4p)≥0,所以 因 可得则 因为 且2‑2p≥
0, 所以 即lH(Q,rmax)‑nH(X)≥0,可得
[0177] 三、加密编译码;
[0178] 设长度为n的二进制伯努利信源序列X(作为明文)中符号0的概率为p(0≤p≤1)。
[0179] 二进制伯努利信源序列X经过上述信源处理之后得到序列Q,根据上述令2.4和2.5,采用 对序列Q进行加权模型编码。于是基本运算变
量: p(0)表
示序列Q中符号0的概率;p(1)表示序列Q中符号1的概率; 表示序列Q中符号0的加权概
率; 表示序列Q中符号1的加权概率。
[0180] 3.1、发送端在加权模型权系数(即秘钥)之中植入密码。
[0181] 例如,设密码的比特长度为k,密码被分割为h段,每一段包含 个比特,将第s(i=1,2,...,h)段二进制符号植入到rmax的方法有很多,下面举个简单的例子:
[0182]
[0183] 表1
[0184] 表1示出了将密码植入至rmax中的伪代码,Algorithm(1)中v需要初始化为0。其中v与100(可以是自定义大于100的任意整数等)比较的目的是让r接近rmax,才能确保具备无损压缩和加密作用。当v太大,则 趋近于0,r=rmax,使得权系数没有任何密码信息,无加密作16
用。所以需要控制v的大小,比如将控制100≤v≤2 等。通过Algorithm(1)得出rmax,加权模型的加密编码码率与p的关系如图2和图3所示;图2可得出,当 时,将序列X中符号互
换;由图3可得, 时加权模型编码码率最小,minR=0.85108。
[0185] 3.2、发送端基于植入密码的加权概率模型的编码过程;
[0186] 在已知明文的前提下,可通过明文和解密后的数据逐一比对,从而推测出加权系数以及加权系数中所使用的密码。这个主要是加权概率模型是以比特为单位的线性编译码
的流程,而密码通过植入到加权系数,使得每个比特加解密时必须是正确的系数。已知明文可通过加权概率模型理论计算出加权系数,通过开源的加解密算法可知密码是如何植入加
权系数,于是通过不停的尝试和比对解密后的文件是否与明文相同,从而得出实际的密码。
那么漏洞主要体现在利用已知明文破译其他文件。比如某用户使用同一个密码加密了两个
以上的文件,这是用户主观原因造成的,用户不希望记下不同的密码,而其中一个文件是破译者已知的明文。破译者可利用该逻辑漏洞通过已知的明文、密文和加密算法源程序推测
出加密的系数和实际使用的密码。尽管这个推测所需的时间很长,且十分复杂。
[0187] 为了解决这个问题,在加解密时,编码某一明文前,先编码长度为t(t可自定义)比特的随机数。因为随机数是未知的,且加权概率模型的线性编译码特征前面的随机数无法正确解密,必然使得后面的明文也无法正确解密。于是t个比特的随机数起到了秘钥的作
用,而且t越大,破解的难度也越大,即2t种可能性中仅一种可能性是可正确解密的。
[0188] 根据上述编码某一明文前先编码长度为t(t可自定义)比特的随机数的思路,加权概率模型编码时,先编码t个比特的随机数,然后在编码明文。值得注意的是,t个比特的随机数与Algorithm(1)中所述的密码不同。算法Algorithm(2)如下表所示:
[0189]
[0190] 表2
[0191] 通过Algorithm(2)获取OutBitArray,然后对OutBitArray(需要注意的是,整合后OutBitArray为序列X)进行编码步骤。编码时分两种情形:
[0192] 根据加权概率模型的迭代式,即上述的式(11),加权概率模型是基于比特的线性编码。需要注意的是,密文是发送端对经过信源处理之后得到的序列Q进行编码而得出,这里将序列X的信源处理过程合并在编码步骤(即将进行“信源处理”的过程在下表3中展示)
中。根据图3,编码时分两种情形:
[0193] (1)当 时,编码序列X中的符号0时 Li=Li‑1;编码序列X中符号1,因将序列X的信源处理过程合并在编码步骤中,所以实际编码是“10”,
[0194] (2)当 时,编码序列X中的符号0时,实际编码“10”,编码序列X中符号1时 Li=Li‑1。
[0195] 加密编码逻辑如下:
[0196]
[0197]
[0198] 表3
[0199] 表3示出了基于植入密码的加权概率模型对经过信源处理后的序列X进行编码的伪代码。伪代码以实现逻辑为目的,其中V、Ri和Li等被定义为无限精度的实数;表3的伪代码输出的VBitArray即为密文。在实际应用中,仅需将 和 代入算术编码(区间编码)
实现加权模型加密编译码。
[0200] 3.3、接收端对发送端发送的密文进行译码;
[0201] 以下给出密码错误校验的解密译码过程。因为经过信源处理后的序列X中“连续符号1的个数最多为1”,即序列Q中“连续符号1的个数最多为1”。因此若在译码密文时,连续译码2个或2个以上符号1时可判定密码错误或V被篡改。接收端在解密时,二进制序列V和c,n+t已知。
[0202] 译码校验逻辑如下:
[0203]
[0204]
[0205] 表4
[0206] 表4示出了接收端对密文进行译码和密码自校验的伪代码。当Algorithm(4)返回null,则密码错误或V被篡改。当Algorithm(4)不返回null,则将返回解密后的明文,需要注意的是,由于在编码时,添加了随机数,因此这里译码时需要含弃t个比特长度的数据,才能得到明文。根据上述令2.5,本方法可达信息熵,所以具备无损压缩和加密作用,且编码后密文各符号的概率均等。其中,长度为k的密码数组SecretkeyBitArray由系统生成或使用者
给出。
[0207] 相对于攻击者,VBitArray,c和n已知,密码是受保护或私有的。因c和n已知,所以攻击者可通过公式得出rmax,但是因未知密码和密码的长度,所以无法通过Algorithm(1)得出正确的r。又因加权模型是线性编译码过程,由式(11)可知,下一个符号译码,必须上一个符号正确解密,所以错误的r造成 和 错误,从而解密出错误的符号。又因为每个符号或每一部分符号采用的是不相同的r,于是r无法被逼近或被猜测,所以本方法是安全的。
[0208] 而且在加解密时,编码某一明文前先编码长度为t比特的随机数。因为随机数是未知的,且加权概率模型的线性编译码特征前面的随机数无法正确解密,必然使得后面的明
文也无法正确解密。于是t个比特的随机数起到了秘钥的作用,而且t越大,破解的难度也越大。这进一步证明本方案具有足够的安全性。
[0209] 实施例部分;
[0210] 参照图4、5,本发明的第一实施例,提供了一种HTTP请求的优化方法,包括以下步骤:
[0211] 步骤S101、客户端生成HTTP请求,将HTTP请求进制转换成明文。
[0212] 本实施例中,改进HTTP请求主要包括改进POST或GET请求,全文以POST请求为例进行说明,本领域技术人员完全可以基于POST请求的具体示例而将本发明方案应用在GET请
求中,此处不再赘述。POST请求包括头部和数据部分,例如Header&DATA(头部&数据部分),将POST请求的头部和数据部分转换成明文。需要说明的是,POST请求为本领域技术人员的
公知,并且进行进制转换也是本领域技术人员的公知技术,此处不再细述。
[0213] 步骤S102、客户端生成随机数,将随机数与明文进行线性组合,得到第一待编码序列。
[0214] 如原理部分所介绍,这里增加随机数,然后将随机数与明文进行线性组合的处理方式,不仅能提高被恶意的第三方破解的难度,增加安全性,而且还能保证每一次经过步骤S103编码之后得到的哈希值会不一致(例如,客户端在一段时间浏览浏览器,会多次向服务器发送请求,此时经过增添随机数处理,由于每一次生成的随机数不同,将使得每一次的第一待编码序列进行编码后得到的哈希值会不同),这样也增大了安全性。需要注意的是,本发明不限制随机数的来源和生成过程。
[0215] 步骤S103、客户端对第一待编码序列按照第一编码方式,或第二编码方式,或第一编码方式结合第二编码方式中的其中一种方式进行编码,得到编码完成后的哈希值;
[0216] 其中,当第一待编码序列为第一编码方式的编码对象时,则第一编码方式包括:
[0217] 设定正实数r=2H(X)‑L/n,X表示第一待编码序列,H(X)为第一待编码序列的归一化信息熵,L为预设的第一待编码序列的编码输出长度,n表示第一待编码序列的长度;
[0218] 对第一待编码序列中的第i位符号x,按照编码公式Ri=Ri‑1rp(x),Li=Li‑1+Ri‑1F(x‑1,r)进行编码,直至编码完成第一待编码序列中所有的符号,并且输出第一待编码序列最后一位符号编码后的Li作为哈希值;其中,Ri的初始值为1,Li的初始值为0,p(x)为符号x的归一化概率,F(x‑1,r)为符号x‑1的非归一化分布函数;
[0219] 其中,当第一待编码序列为第二编码方式的编码对象时,则第二编码方式包括:
[0220] 将第一待编码序列进行信源处理,得到第二待编码序列;
[0221] 当 通过编码公式 和Li=Li‑1编码第二待编码序列中的符号0,通过 和 编码第二待编码序列中的符号10,以及,当
通过编码公式 和 编码第二待编码序列中的
符号10,通过 和Li=Li‑1编码第二待编码序列中的符号1;直至编码完成第二
待编码序列中所有的符号,并且输出第二待编码序列最后一位符号后的Li作为哈希值;其
中,p表示第一待编码序列中符号0的概率, p(1)表示
第二待编码序列中符号1的概率,p(0)表示第二待编码序列中符号0的概率,
[0222] 在步骤S103中,介绍了三种方式,第一种方式是仅使用第一编码方式进行编码。第二种方式是仅使用第二编码方式进行编码。第三种方式是结合第一编码方式和第二编码方式进行编码。显而易见的,第三种方式的安全性最优。
[0223] 以下详细介绍第一种方式的具体过程为(假设第一待编码序列为编码对象,且第一待编码序列令为X,长度为n):
[0224] 参照图5,设L为自定义散列值(哈希值)的比特长度,采用加权概率模型对序列X的区间编码步骤如下:
[0225] 1)初始化参数,p=0,L0=0,H0=R0=1,i=1;
[0226] 2)统计序列X中符号0的个数c,序列X的比特长度为n;
[0227] 3)计算符号0的概率,
[0228] 4)计算权系数, ‑p log2 p‑(1‑p)log2(1‑p)=H(X);
[0229] 5)计算加权概率,
[0230] 5)获取序列X的第i个符号Xi;
[0231] 6)若Xi=0,Li=Li‑1,Ri=Ri‑1rp,否则Li=Li‑1+Ri‑1rp,Ri=Ri‑1r(1‑p);
[0232] 7)i=i+1,若i<n,重复步骤5)到步骤7),得出Ln(直至编码序列X中最后一位符号后得到);
[0233] 8)结束编码,输出Ln(Ln为散列值),将输出的Ln作为最终需要发送至服务器的哈希值。
[0234] 需要注意的是,本实施例中的L为预设好的长度。
[0235] 第二种方式的具体过程,可以参见上述原理部分介绍的Algorithm(31,此处不再细述。
[0236] 第三种方式的具体过程为(假设第一待编码序列为编码对象):
[0237] 1)先按照第一编码方式对第一待编码序列进行编码,得到一个输出的哈希值。
[0238] 2)将步骤1)输出的哈希值与第一待编码序列进行线性组合,得到一个序列。需要注意的是,输出的哈希值与第一待编码序列进行线性组合是以输出的哈希值和第一待编码
序列进行并联组合后产生。
[0239] 3)对步骤2)得到的序列,按照所述第二编码方式进行编码,得到最终需要发送至服务器的哈希值。
[0240] 作为一种可选的实施方式,可参见上述原理部分的Algorithm(1),在rmax中植入二进制密码且二进制密码大于或等于512位比特。对于攻击者来说,在rmax中植入的二进制密码是受保护或私有的,密码的长度和密码本身是系统或者使用者给出,这是攻击者无法
准确得知的,假设攻击者可通过公式得出rmax,但是因未知二进制密码和密码的长度,所以无法通过Algorithm(1)得出正确的r。又因加权模型是线性编译码过程,由上述的式(11)可知,下一个符号译码,必须上一个符号正确解密,所以错误的r造成 和 错误,从而解
密出错误的符号。而且因为编码时每个符号或每一部分符号可以采用不相同的r,于是r无
法被逼近或被猜测,即攻击者未知二进制密码和密码的长度,无法对密文解密出正确的明
文。
[0241] 步骤S104、客户端将哈希值发送至服务器。
[0242] 本实施例具有以下有益效果:
[0243] (1)现有技术框架下的HTTP协议,其传输数据会受到浏览器的限制,而有一定的长度上限。本方法可以将传输的各个数据统一化为(可设置的)固定长度的唯一标识,有效的
解决了数据长度受到限制的问题。同时,将具体的请求数据加密隐藏,提高了请求的安全性保密性,也提高了HTTP协议传输效率。
[0244] (2)本方法能够实现对HTTP请求的保护,起到保护数据安全的作用,其中,采用第一编码方式能够使HTTP请求具备无损压缩的效果;采用第二编码方式能够使HTTP具备对称
加密的效果;采用第一编码方式及第二编码方式的结合能够使HTTP具备对称加密和无损压
缩的双重效果,对于HTTP请求的多次请求时,能够极大的提升服务器负载能力,节约服务器资源。
[0245] (3)相较于现有技术框架下的HTTPS协议,不需要额外购买SSL证书,节省了成本。本方法是从HTTP协议本身的请求方式上入手,不仅仅只针对URL,而且还会对HTTP请求传输的各项数据一并进行加密,从而达到安全加密HTTP协议的目的。
[0246] (4)将由HTTP请求转换的明文与随机数线性组合成第一待编码序列,在明文之前添加随机数,使得编码某一明文前先编码随机数,因为随机数是未知的,且加权概率模型的线性编译码特征前面的随机数无法正确解密,必然使得后面的明文也无法正确解密,于是,随机数起到了秘钥的作用,能够极大的增加安全性,提升保障。而且能保证每一次后续编码得到的哈希值会不一致,这样也增大了安全性。
[0247] (5)对于攻击者来说,在rmax中植入的二进制密码是受保护或私有的,密码的长度和密码本身是系统或者使用者给出,这是攻击者无法准确得知的,假设攻击者可通过公式
得出rmax,但是因未知二进制密码和密码的长度,所以无法通过Algorithm(1)得出正确的r。
又因加权模型是线性编译码过程,由上述的式(11)可知,下一个符号译码,必须上一个符号正确解密,所以错误的r造成 和 错误,从而解密出错误的符号。而且因为编码时每
个符号或每一部分符号可以采用不相同的r,于是r无法被逼近或被猜测,即攻击者未知二
进制密码和密码的长度,无法对密文解密出正确的明文。
[0248] 参照图6,基于第一实施例,本发明的第二实施例,提供了一种HTTP请求的优化方法,包括以下步骤:
[0249] 步骤S201、服务器接收客户端发送的哈希值。
[0250] 需要注意的是,客户端在发送哈希值之后,也会将随机数、明文以及加密使用的参数同步进行发送,这是本领域技术人员的公知,此处不再细述。
[0251] 步骤S202、按照客户端对第一待编码序列进行编码的方式,对哈希值进行对应的解码,并进行验证,得到验证结果。
[0252] 步骤S203、当验证结果正确,则匹配与明文对应的服务器资源。
[0253] 需要注意的是,对应于第一实施例的编码过程,步骤S202至步骤S203的解码和匹配服务器资源的过程也有以下几种情况,具体如下:
[0254] 当编码使用的是第一种方式(仅使用第一编码方式)时,一方面,服务器可以不进行解码,在验证成功之后,就可以基于验证正确的哈希值,直接在服务器上匹配对应的资
源,需要注意的是,这一种实施方式只适用于服务器端的数据库中的各个资源的哈希值具
有唯一性的情况。另一方面,服务器可以在验证成功之后,对哈希值进行解码,得到随机数+明文,然后剔除随机数,得到明文,最后基于明文在数据库中进行匹配,得到对应的服务器资源。需要注意的是,其中还包括进制转换的过程,此处不再赘述。
[0255] 当编码使用的是第二种方式(仅使用第二编码方式)时,需要解码,解码的过程可参见上述原理部分所述的Algorithm(4),此处不再赘述。解码之后,从中截取出随机数,得到明文,通过明文在服务器上匹配对应的资源。
[0256] 当编码使用的是第三种方式(先使用第一编码方式,再使用第二编码方式)时,需要先解码,解码的过程可参见上述原理部分所述的Algorithm(4);解码之后,得到哈希值,后续可以再进行解码,或者直接通过哈希值匹配,此处不再赘述。
[0257] 步骤S204、将服务器资源发送至客户端。
[0258] 为了便于理解,本发明的第三实施例,提供了一种HTTP请求的优化方法,包括以下步骤:
[0259] 客户端的编码过程:
[0260] Step1:明文与生成的随机数线性组合(确保每次生成的哈希值都不一样),组合采用串联的方式,随机数在明文之前,如图7所示。
[0261] Step2:通过第一编码方式计算哈希值,将哈希值与原文相整合,如图8所示。
[0262] Step3:通过第二编码方式计算整体的密文作为加密后的实际密文。
[0263] 服务器的解码、匹配过程:
[0264] Step1:服务器端将解码获得的带随机数的原文进行第一编码方式编码处理,将得到的哈希值与接收的哈希值进行校验。如果一致,则代表数据在传输过程中保持了一致,没有出错或被篡改,则可以进行下一步。
[0265] Step2:按照解码后的Header与对应的变量的值,在服务器数据库内进行匹配。
[0266] Step3:将匹配的内容通过HTTP协议向客户端提交信息,并将结果展示给用户。
[0267] 本实施例具备以下有益效果:
[0268] (1)现有技术框架下的HTTP协议,其传输数据会受到浏览器的限制,而有一定的长度上限。本方法可以将传输的各个数据统一化为(可设置的)固定长度的唯一标识,有效的
解决了数据长度受到限制的问题。同时,将具体的请求数据加密隐藏,提高了请求的安全性保密性,也提高了HTTP协议传输效率。
[0269] (2)本方法能够实现对HTTP请求的保护,起到保护数据安全的作用,其中,采用第一编码方式能够使HTTP请求具备无损压缩的效果;采用第二编码方式能够使HTTP具备对称
加密的效果;采用第一编码方式及第二编码方式的结合能够使HTTP具备对称加密和无损压
缩的双重效果,对于HTTP请求的多次请求时,能够极大的提升服务器负载能力,节约服务器资源。
[0270] (3)相较于现有技术框架下的HTTPS协议,不需要额外购买SSL证书,节省了成本。本方法是从HTTP协议本身的请求方式上入手,不仅仅只针对URL,而且还会对HTTP请求传输的各项数据一并进行加密,从而达到安全加密HTTP协议的目的。
[0271] (4)将由HTTP请求转换的明文与随机数线性组合成第一待编码序列,在明文之前添加随机数,使得编码某一明文前先编码随机数,因为随机数是未知的,且加权概率模型的线性编译码特征前面的随机数无法正确解密,必然使得后面的明文也无法正确解密,于是,随机数起到了秘钥的作用,能够极大的增加安全性,提升保障。而且能保证每一次后续编码得到的哈希值会不一致,这样也增大了安全性。
[0272] 参照图9,本发明的第四实施例,提供了一种终端,包括:明文生成单元100、编码序列生成单元200、编码单元300以及信号发送单元400。
[0273] 明文生成单元100,用于生成HTTP请求,将HTTP请求进制转换成明文;
[0274] 编码序列生成单元200,用于生成随机数,将随机数与明文进行线性组合,得到第一待编码序列;
[0275] 编码单元300,用于对第一待编码序列按照第一编码方式,或第二编码方式,或第一编码方式结合第二编码方式中的其中一种方式进行编码,得到编码完成后的哈希值;
[0276] 信号发送单元400,用于将哈希值发送至服务器。
[0277] 由于本实施例与第一实施例是基于相同的发明构思,此处不再赘述。
[0278] 参照图10,本发明的第五实施例,提供了一种终端,包括:信号接收单元500、编码验证单元600、资源匹配单元700以及资源发送单元800。
[0279] 信号接收单元500,用于接收客户端发送的哈希值。
[0280] 编码验证单元600,用于按照客户端对第一待编码序列进行编码的方式,对哈希值进行对应的解码,并进行验证,得到验证结果。
[0281] 资源匹配单元700,用于当验证结果正确,则匹配与明文对应的服务器资源。
[0282] 资源发送单元800,用于将服务器资源发送至客户端。
[0283] 由于本实施例与第二实施例是基于相同的发明构思,此处不再赘述。
[0284] 本发明的第六实施例,提供了一种终端,该终端包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
[0285] 处理器和存储器可以通过总线或者其他方式连接。
[0286] 存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络
连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0287] 实现上述实施例的HTTP请求的优化方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的HTTP请求的优化方法,例如,执行以上描述的图4中的方法步骤S101至S104、图6中的方法步骤S201至S204。
[0288] 以上所描述的终端实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。
可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0289] 此外,本发明的第七实施例,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述终端实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的HTTP请求的优化方法,例如,执行以上描述的图4中的方法步骤S101至S104、图6中的方法步骤S201至
S204。
[0290] 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领
域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD‑ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通
技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0291] 以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的共享条件下还可作出种种等同的变形或
替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。