CN106850566A - 一种数据一致性校验的方法及装置 - Google Patents
一种数据一致性校验的方法及装置 Download PDFInfo
- Publication number
- CN106850566A CN106850566A CN201611246963.5A CN201611246963A CN106850566A CN 106850566 A CN106850566 A CN 106850566A CN 201611246963 A CN201611246963 A CN 201611246963A CN 106850566 A CN106850566 A CN 106850566A
- Authority
- CN
- China
- Prior art keywords
- value
- value pair
- name
- keyword
- sequence
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/3236—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 cryptographic hash functions
-
- 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/3247—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 digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种数据一致性校验的方法及装置,在客户端按照第一算法,计算用户的请求参数和公钥得到第一签名值对;发送第一签名值对和请求参数至服务器,以使服务器按上述方法获得第二签名值对,利用第二签名值对与第一签名值进行一致性校验;接收服务器发送的包含加密的第三签名值对的响应消息,加密的第三签名值对为:使用客户端公钥加密的服务器按照第二算法计算第一签名值对和返回值的计算结果;使用私钥对加密的第三签名值对解密得到第三签名值对;按照服务器生成第三签名值对的方法获得第四签名值对;利用第四签名值对与第三签名值对对响应消息进行一致性校验。应用本发明实施例,提高了对数据进行防篡改处理的效率。
Description
技术领域
本发明涉及数据安全技术领域,特别是涉及一种数据一致性校验的方法及装置。
背景技术
随着网络越来越多的渗透到社会生活中,人们越来越多地利用网络获取信息。一些非法用户趁机通过拦截并篡改用户发送或者接收的数据,以谋取非法利益,因此对用户发送或者接收的数据进行防篡改处理是亟待解决的问题。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer,安全套接字层超文本传输协议)是以安全为目标的HTTP通道,简单讲是HTTP的安全版,HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护。目前,客户端与服务器之间的数据交换主要通过HTTPS进行加解密,以进行数据一致性校验,进而防止非法用户对数据的篡改。
但是HTTPS加解密算法较为复杂,数据开销比较大,导致加解密速度较慢,导致进行数据一致性校验的耗时较长,进而导致对数据进行防篡改处理的效率较低。
发明内容
本发明实施例的目的在于提供一种数据一致性校验的方法及装置,以提高对数据进行防篡改处理的效率,具体技术方案如下:
为实现上述目的,本发明实施例提供了一种数据一致性校验的方法,应用于客户端,所述方法包括:
按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对;
将所述第一签名值对和所述请求参数加入请求消息发送至服务器,以使服务器按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第二签名值对,利用第二签名值对与第一签名值对,对所述请求消息进行一致性校验;
接收服务器发送的包含返回值和加密的第三签名值对的响应消息,所述加密的第三签名值对为:所述服务器先按照预设第二算法,对所述第一签名值对和返回值进行计算获得第三签名值对后,使用所述客户端公钥进行加密获得的;
使用预设的与所述客户端公钥对应客户端私钥,对所述加密的第三签名值对进行解密,获得所述第三签名值对;
按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对;
利用第四签名值对与第三签名值对,对所述响应消息进行一致性校验。
可选的,所述按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对,包括:
利用字典,对第一关键字进行稳定排序,确定出第一序列,其中,所述第一关键字为所述请求参数的关键字;
根据所述请求参数和所述第一关键字,确定出每一第一关键字对应的第一键值对;
利用分隔符,将所述第一键值对按照所述第一关键字在所述第一序列中的顺序进行拼接,确定出第二序列;
利用分隔符,将所述第二序列和所述客户端公钥进行拼接,确定出第三序列;
按照预设的第一哈希算法,对所述第三序列进行计算,获得第一签名值;
根据所述第一签名值的关键字和所述第一签名值,确定出第一签名值对。
可选的,所述按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对,包括:
利用字典,对第二关键字进行稳定排序,确定出第四序列,其中,所述第二关键字为所述返回值的关键字;
根据所述返回值和所述第二关键字,确定出每一第二关键字对应的第二键值对;
利用分隔符,将所述第二键值对按照所述第二关键字在所述第四序列中的顺序进行拼接,确定出第五序列;
利用分隔符,将所述第五序列和所述第一签名值对中的第一签名值拼接,确定出第六序列;
按照预设的第二哈希算法,对所述第六序列进行计算,获得第四签名值;
根据所述第四签名值的关键字和所述第四签名值,获得第四签名值对。
为实现上述目的,本发明实施例提供了一种数据一致性校验的方法,应用于服务器,所述方法包括:
接收客户端发送的包含第一签名值对和请求参数的请求消息,所述第一签名值对为:所述客户端按照预设的第一算法,对用户的请求参数和客户端公钥进行计算获得的;
按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对;
利用所述第二签名值对与所述第一签名值对,对所述请求消息进行一致性校验;
按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对;
将服务器针对所述请求参数的返回值和利用客户端公钥加密的第三签名值对加入响应消息发送至客户端,以使客户端按照预设的第二算法,对服务器的返回值和第一签名值进行计算,获得第四签名值对,使用与所述客户端公钥对应的客户端私钥解密所述加密的第三签名值对后获得第三签名值对,利用所述第四签名值对和所述第三签名值对,对所述响应消息进行一致性校验。
可选的,所述按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对,包括:
利用字典,对所述请求参数的第三关键字进行稳定排序,得到第七序列;
根据所述请求参数和所述第三关键字,确定出每一第三关键字对应的第三键值对;
利用分隔符,将所述第三键值对按照所述第三关键字在所述第七序列中的顺序进行拼接,得到第八序列;
利用分隔符,将所述第八序列与所述客户端公钥拼接,得到第九序列;
按照预设的第一哈希算法,对所述第九序列进行计算,获得第二签名值;
根据所述第二签名值的关键字和所述第二签名值,获得第二签名值对。
可选的,所述按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对,包括:
利用字典,对所述返回值的第四关键字进行稳定排序,得到第十序列;
根据所述返回值和所述第四关键字,确定出每一第四关键字对应的第四键值对;
利用分隔符,将所述第四键值对按照所述第四关键字在所述第十序列中的顺序进行拼接,得到第十一序列;
利用分隔符,将所述第十一序列与所述第一签名值对中的第一签名值拼接,确定出第十二序列;
按照预设的第二哈希算法,对所述第十二序列进行计算,获得第三签名值;
根据所述第三签名值的关键字和所述第三签名值,获得第三签名值对。
为实现上述目的,本发明实施例还提供了一种数据一致性校验的装置,应用于客户端,所述装置包括:第一计算模块、第一发送模块、第一接收模块、解密模块、第二计算模块和第一校验模块,其中,
所述第一计算模块,用于按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对;
所述第一发送模块,用于将所述第一签名值对和所述请求参数加入请求消息发送至服务器,以使服务器按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第二签名值对,利用第二签名值对与第一签名值对,对所述请求消息进行一致性校验;
所述第一接收模块,用于接收服务器发送的包含返回值和加密的第三签名值对的响应消息,所述加密的第三签名值对为:所述服务器先按照预设第二算法,对所述第一签名值对和返回值进行计算获得第三签名值对后,使用所述客户端公钥进行加密获得的;
所述解密模块,用于使用预设的与所述客户端公钥对应客户端私钥,对所述加密的第三签名值对进行解密,获得所述第三签名值对;
所述第二计算模块,用于按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对;
所述第一校验模块,用于利用第四签名值对与第三签名值对,对所述响应消息进行一致性校验。
可选的,所述第一计算模块,具体用于:
利用字典,对第一关键字进行稳定排序,确定出第一序列,其中,所述第一关键字为所述请求参数的关键字;
根据所述请求参数和所述第一关键字,确定出每一第一关键字对应的第一键值对;
利用分隔符,将所述第一键值对按照所述第一关键字在所述第一序列中的顺序进行拼接,确定出第二序列;
利用分隔符,将所述第二序列和所述客户端公钥进行拼接,确定出第三序列;
按照预设的第一哈希算法,对所述第三序列进行计算,获得第一签名值;
根据所述第一签名值的关键字和所述第一签名值,确定出第一签名值对。
可选的,所述第二计算模块,具体用于:
利用字典,对第二关键字进行稳定排序,确定出第四序列,其中,所述第二关键字为所述返回值的关键字;
根据所述返回值和所述第二关键字,确定出每一第二关键字对应的第二键值对;
利用分隔符,将所述第二键值对按照所述第二关键字在所述第四序列中的顺序进行拼接,确定出第五序列;
利用分隔符,将所述第五序列和所述第一签名值对中的第一签名值拼接,确定出第六序列;
按照预设的第二哈希算法,对所述第六序列进行计算,获得第四签名值;
根据所述第四签名值的关键字和所述第四签名值,获得第四签名值对。
为实现上述目的,本发明实施例还提供了一种数据一致性校验的装置,应用于服务器,所述装置包括:第二接收模块、第三计算模块、第二校验模块、第四计算模块和第二发送模块,其中,
所述第二接收模块,用于接收客户端发送的包含第一签名值对和请求参数的请求消息,所述第一签名值对为:所述客户端按照预设的第一算法,对用户的请求参数和客户端公钥进行计算获得的;
所述第三计算模块,用于按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对;
所述第二校验模块,利用所述第二签名值对与所述第一签名值对,对所述请求消息进行一致性校验;
所述第四计算模块,按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对;
所述第二发送模块,用于将服务器针对所述请求参数的返回值和利用客户端公钥加密的第三签名值对加入响应消息发送至客户端,以使客户端按照预设的第二算法,对服务器的返回值和第一签名值进行计算,获得第四签名值对,使用与所述客户端公钥对应的客户端私钥解密所述加密的第三签名值对后获得第三签名值对,利用所述第四签名值对和所述第三签名值对,对所述响应消息进行一致性校验。
可选的,所述第三计算模块,具体用于:
利用字典,对所述请求参数的第三关键字进行稳定排序,得到第七序列;
根据所述请求参数和所述第三关键字,确定出每一第三关键字对应的第三键值对;
利用分隔符,将所述第三键值对按照所述第三关键字在所述第七序列中的顺序进行拼接,得到第八序列;
利用分隔符,将所述第八序列与所述客户端公钥拼接,得到第九序列;
按照预设的第一哈希算法,对所述第九序列进行计算,获得第二签名值;
根据所述第二签名值的关键字和所述第二签名值,获得第二签名值对。
可选的,所述第四计算模块,具体用于:
利用字典,对所述返回值的第四关键字进行稳定排序,得到第十序列;
根据所述返回值和所述第四关键字,确定出每一第四关键字对应的第四键值对;
利用分隔符,将所述第四键值对按照所述第四关键字在所述第十序列中的顺序进行拼接,得到第十一序列;
利用分隔符,将所述第十一序列与所述第一签名值对中的第一签名值拼接,确定出第十二序列;
按照预设的第二哈希算法,对所述第十二序列进行计算,获得第三签名值;
根据所述第三签名值的关键字和所述第三签名值,获得第三签名值对。
本发明实施例提供的一种数据一致性校验的方法及装置,在客户端按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对;将所述第一签名值对和所述请求参数加入请求消息发送至服务器,以使服务器按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第二签名值对,利用第二签名值对与第一签名值对所述请求消息进行一致性校验;接收服务器发送的包含加密的第三签名值对的响应消息,所述加密的第三签名值对为:所述服务器先按照预设第二算法,对所述第一签名值对和返回值进行计算获得第三签名值对后,使用所述客户端公钥进行加密获得的;使用预设的与所述客户端公钥对应客户端私钥,对所述加密的第三签名值对进行解密,获得所述第三签名值对;按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对;利用第四签名值对与第三签名值对,对所述响应消息进行一致性校验。
应用本发明实施例,在进行数据一致性校验过程中,针对服务器利用客户端公钥加密后的第三签名值对,利用客户端私钥进行解密,相对于HTPPS加解密算法,使用的算法更加简单,数据开销小,提高了加解密的速度,降低了数据一致性校验的耗时,进而提高了对数据进行防篡改处理的效率。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据一致性校验的方法的流程示意图;
图2为本发明实施例提供的另一种数据一致性校验的方法的流程示意图;
图3为本发明实施例提供的一种数据一致性校验的装置的结构示意图;
图4为本发明实施例提供的另一种数据一致性校验的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术问题,本发明实施例提供了一种数据一致性校验的方法及装置,下面首先对本发明实施例提供的一种数据一致性校验的方法进行介绍。
图1为本发明实施例提供的一种数据一致性校验的方法的流程示意图,应用于客户端,可以包括:
S101:按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对。
具体的,所述按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对,包括:利用字典,对第一关键字进行稳定排序,确定出第一序列,其中,所述第一关键字为所述请求参数的关键字;根据所述请求参数和所述第一关键字,确定出每一第一关键字对应的第一键值对;利用分隔符,将所述第一键值对按照所述第一关键字在所述第一序列中的顺序进行拼接,确定出第二序列;利用分隔符,将所述第二序列和所述客户端公钥进行拼接,确定出第三序列;按照预设的第一哈希算法,对所述第三序列进行计算,获得第一签名值;根据所述第一签名值的关键字和所述第一签名值,确定出第一签名值对。
在实际应用中,假设用户的请求参数的分别为VALUE1、VALUE2和VALUE3,其对应的关键字分别为KEY1、KEY2和KEY3。利用字典对以上三个关键字进行稳定排序后,得到的第一序列为KEY1KEY2KEY3。
根据用户的请求参数和对应的关键字,确定出的键值对为:KEY1=VALUE1、KEY2=VALUE2和KEY3=VALUE3。
利用分隔符“|”将以上键值对按照关键字KEY1、KEY2和KEY3在第一序列KEY1KEY2KEY3中的顺序进行拼接,确定出的第二序列为:
KEY1=VALUE1|KEY2=VALUE2|KEY3=VALUE3。
假设客户端的公钥为REQUEST_PUBLIC_KEY。利用分隔符“|”将第二序列和客户端公钥进行拼接,得到的第三序列为:KEY1=VALUE1|KEY2=VALUE2|KEY3=VALUE3|REQUEST_PUBLIC_KEY。
需要说明的是,分隔符可以为除关键字和请求参数所用字符以外的任意字符。客户端公钥可以拼接在第三序列的头部、中间部位、或者尾部。
利用第一哈希算法,对第三序列进行计算:hash_1(KEY1=VALUE1|KEY2=VALUE2|KEY3=VALUE3|REQUEST_PUBLIC_KEY),得到的第一签名值为REQUEST_SIGN_VALUE_1。
根据REQUEST_SIGN_VALUE_1的关键字REQUEST_SIGN_KEY_1和REQUEST_SIGN_VALUE_1,确定出的第一签名值对为:
REQUEST_SIGN_KEY_1=REQUEST_SIGN_VALUE_1。
还需要说明的是,利用字典对请求参数的关键字进行稳定排序为现有技术,这里对此不再进行赘述。
S102:将所述第一签名值对和所述请求参数加入请求消息发送至服务器,以使服务器按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第二签名值对,利用第二签名值对与第一签名值对,对所述请求消息进行一致性校验。
在实际应用中,将用户的请求参数VALUE1、VALUE2和VALUE3,S101中获得的第一签名值对REQUEST_SIGN_KEY_1=REQUEST_SIGN_VALUE_1,以及客户端公钥REQUEST_PUBLIC_KEY加入到请求消息中,并发送至服务器,以使服务器按照第一哈希算法hsh_1,对用户的请求参数VALUE1、VALUE2和VALUE3,以及客户端公钥REQUEST_PUBLIC_KEY进行计算,获得第二签名值对REQUEST_SIGN_KEY_2=REQUEST_SIGN_VALUE_2,利用第二签名值对与第一签名值对,对所述请求消息进行一致性校验。
由于服务器获得第二签名值对的计算方法与客户端获得第一签名值对的计算方法完全相同,如果数据没被篡改,则第二签名值对与第一签名值对完全相同;如果数据被篡改,则第二签名值对与第一签名值对就会不相同,本步骤就是基于这个原理进行的一致性校验。
S103:接收服务器发送的包含返回值和加密的第三签名值对的响应消息,所述加密的第三签名值对为:所述服务器先按照预设第二算法,对所述第一签名值对和返回值进行计算获得第三签名值对后,使用所述客户端公钥进行加密获得的。
在实际应用中,接收服务器发送的响应消息,响应消息中至少包括服务器针对客户端发送到的请求参数的返回值A1、B2和C3,以及加密的第三签名值对RESPONE_SIGN_KEY_1=RESPONE_SIGN_VALUE_1。加密的第三签名值对RESPONE_SIGN_KEY_1=RESPONE_SIGN_VALUE_1是服务器根据第二哈希算法hash_2对返回值A1、B2和C3,以及客户端发送的第一签名值对REQUEST_SIGN_KEY_1=REQUEST_SIGN_VALUE_1进行计算得到第三签名值RESPONE_SIGN_VALUE_1后,在利用客户端发送的利用非对称加密算法生成的客户端公钥进行加密得到的。
需要强调的是,第一哈希算法和第二哈希算法可以是相同的哈希算法,也可以是不相同的哈希算法。
S104:使用预设的与所述客户端公钥对应客户端私钥,对所述加密的第三签名值对进行解密,获得所述第三签名值对。
在实际应用中,客户端利用与公钥REQUEST_PUBLIC_KEY对应的私钥REQUEST_PRIVATE_KEY,解密响应消息中的加密的第三签名值对:REQUEST_PRIVATE_KEY(加密的第三签名值对),得到第三签名值对RESPONE_SIGN_KEY_1=RESPONE_SIGN_VALUE_1。
需要说明的是,公钥REQUEST_PUBLIC_KEY,和与之对应的私钥REQUEST_PRIVATE_KEY为客户端利用非对称加密算法生成的,其中,公钥和私钥为成对应用的。
还需要说明的是,利用非对称加密算法生成对应的私钥和公钥进行数据的加密传输为现有技术,这里对此不再进行赘述。
S105:按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对。
具体的,所述按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对,包括:利用字典,对第二关键字进行稳定排序,确定出第四序列,其中,所述第二关键字为所述返回值的关键字;根据所述返回值和所述第二关键字,确定出每一第二关键字对应的第二键值对;利用分隔符,将所述第二键值对按照所述第二关键字在所述第四序列中的顺序进行拼接,确定出第五序列;利用分隔符,将所述第五序列和所述第一签名值对中的第一签名值拼接,确定出第六序列;按照预设的第二哈希算法,对所述第六序列进行计算,获得第四签名值;根据所述第四签名值的关键字和所述第四签名值,获得第四签名值对。
在实际应用中,利用字典对返回值A1、B2和C3的第二关键字RESPONE_KEY_1、RESPONE_KEY_2和RESPONE_KEY_3进行稳定排序,得到第四序列:RESPONE_KEY_1RESPONE_KEY_2RESPONE_KEY_3,其中,返回值是服务器针对客户端发送到的请求参数发送给客户端的。
根据返回值A1、B2和C3,以及第二关键字RESPONE_KEY_1、RESPONE_KEY_2和RESPONE_KEY_3,确定出每一第二关键字对应的第二键值对RESPONE_KEY_1=A1、RESPONE_KEY_2=B2和RESPONE_KEY_3=C3。
利用分隔符“|”将以上键值对按照第二关键字RESPONE_KEY_1、RESPONE_KEY_2和RESPONE_KEY_3在第四序列中的顺序进行排序,得到第五序列:RESPONE_KEY_1=A1|RESPONE_KEY_2=B2|RESPONE_KEY_3=C3。
利用分隔符“|”将第五序列RESPONE_KEY_1=A1|RESPONE_KEY_2=B2|RESPONE_KEY_3=C3和客户端第一签名值对中的第一签名值REQUEST_SIGN_VALUE_1拼接,得到第六序列:
RESPONE_KEY_1=A1|RESPONE_KEY_2=B2|RESPONE_KEY_3=C3|REQUEST_SIGN_VALUE_1。
按照第二哈希算法hash_2,对第六序列进行计算:hash_2(RESPONE_KEY_1=A1|RESPONE_KEY_2=B2|RESPONE_KEY_3=C3|REQUEST_SIGN_VALUE_1),得到第四签名值RESPONE_SIGN_VALUE_2。
根据第四签名值的关键字RESPONE_SIGN_KEY_2和第四签名值RESPONE_SIGN_VALUE_2,获得第四签名值对:
RESPONE_SIGN_KEY_2=RESPONE_SIGN_VALUE_2。
需要说明的是,分隔符可以为除关键字和返回值所用字符以外的任意字符。第一签名值可以拼接在第五序列的头部、中间部位、或者尾部。
还需要说明的是,利用字典对返回值的关键字进行稳定排序为现有技术,这里对此不再进行赘述。
S106:利用第四签名值对与第三签名值对,对所述响应消息进行一致性校验。
在实际应用中,根据S104步骤中获得的第三签名值对RESPONE_SIGN_KEY_1=RESPONE_SIGN_VALUE_1和S105步骤中获得的第四签名值对RESPONE_SIGN_KEY_2=RESPONE_SIGN_VALUE_2,判断第三签名值对和第四签名值对是否一致,若一致说明响应消息未被篡改,若不一致说明响应消息被篡改,从而完成对响应消息的一致性校验。
由于服务器获得第三签名值对的计算方法与客户端获得第四签名值对的计算方法完全相同,如果数据没被篡改,则第四签名值对与第三签名值对完全相同;如果数据被篡改,则第四签名值对与第三签名值对就会不相同,本步骤就是基于这个原理进行的一致性校验。
在实际应用中,还可以利用第四签名值对中的第四签名值,和第三签名值对中的第三签名值,对响应消息进行一致性校验。
应用本发明图1所示实施例,在进行数据一致性校验过程中,针对服务器利用客户端公钥加密后的第三签名值对,利用客户端私钥进行解密,相对于HTPPS加解密算法,使用的算法更加简单,数据开销小,提高了加解密的速度,降低了数据一致性校验的耗时,进而提高了对数据进行防篡改处理的效率。
图2为本发明实施例提供的另一种数据一致性校验的方法的流程示意图,应用于服务器,可以包括:
S201:接收客户端发送的包含第一签名值对和请求参数的请求消息,所述第一签名值对为:所述客户端按照预设的第一算法,对用户的请求参数和客户端公钥进行计算获得的。
在实际应用中,服务器接收客户端发送的请求消息,请求消息至少包含第一签名值对REQUEST_SIGN_KEY_1=REQUEST_SIGN_VALUE_1,用户的请求参数VALUE1、VALUE2和VALUE3,以及客户端公钥REQUEST_PUBLIC_KEY。
需要说明的是,第一签名值对REQUEST_SIGN_KEY_1=REQUEST_SIGN_VALUE_1是客户端根据第一哈希算法hash_1,对用户的请求参数VALUE1、VALUE2和VALUE3和客户端公钥REQUEST_PUBLIC_KEY进行计算得到的。
S202:按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对。
具体的,所述按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对,包括:利用字典,对所述请求参数的第三关键字进行稳定排序,得到第七序列;根据所述请求参数和所述第三关键字,确定出每一第三关键字对应的第三键值对;利用分隔符,将所述第三键值对按照所述第三关键字在所述第七序列中的顺序进行拼接,得到第八序列;利用分隔符,将所述第八序列与所述客户端公钥拼接,得到第九序列;按照预设的第一哈希算法,对所述第九序列进行计算,获得第二签名值;根据所述第二签名值的关键字和所述第二签名值,获得第二签名值对。
在实际应用中,假设服务器接收的请求参数的为VALUE4、VALUE5和VALUE6,各请求参数对应的关键字为KEY4、KEY5和KEY6,接收的客户端公钥为REQUEST_PUBLIC_KEY。
利用字典,对接收的请求参数的第三关键字分KEY4、KEY5和KEY6进行稳定排序后,得到的第七序列为KEY4KEY5KEY6。
根据各请求参数VALUE4、VALUE5和VALUE6和各请求参数对应的关键字KEY4、KEY5和KEY6,确定出每一第三关键字对应的第三键值对:KEY4=VALUE4、KEY5=VALUE5和KEY6=VALUE6。
利用分隔符“|”将第三键值对KEY4=VALUE4、KEY5=VALUE5和KEY6=VALUE6按照各关键字在第七序列中的顺序,进行拼接得到第八序列:
KEY4=VALUE4|KEY5=VALUE5|KEY6=VALUE6。
利用分隔符“|”将第八序列与接收的客户端公钥REQUEST_PUBLIC_KEY拼接,得到第九序列:KEY4=VALUE4|KEY5=VALUE5|KEY6=VALUE6|REQUEST_PUBLIC_KEY。
按照预设的第一哈希算法hash_1,对第九序列进行计算,获得第二签名值对REQUEST_SIGN_KEY_2=REQUEST_SIGN_VALUE_2。
需要说明的是,分隔符可以为除关键字和请求参数所用字符以外的任意字符。客户端公钥可以拼接在第三序列的头部、中间部位、或者尾部。
还需要说明的是,利用字典对请求参数的关键字进行稳定排序为现有技术,这里对此不再进行赘述。
S203:利用所述第二签名值对与所述第一签名值对,对所述请求消息进行一致性校验。
在实际应用中,服务器根据在S202步骤中获得的第二签名值对REQUEST_SIGN_KEY_2=REQUEST_SIGN_VALUE_2和接收的第一签名值对REQUEST_SIGN_KEY_1=REQUEST_SIGN_VALUE_1,判断第一签名值对和第二签名值对是否一致,若一致说明请求消息未被篡改,若不一致说明请求消息被篡改,从而完成对请求消息的一致性校验。
由于服务器获得第二签名值对的计算方法与客户端获得第一签名值对的计算方法完全相同,如果数据没被篡改,则第二签名值对与第一签名值对完全相同;如果数据被篡改,则第二签名值对与第一签名值对就会不相同,本步骤就是基于这个原理进行的一致性校验。
在实际应用中,还可以利用第二签名值对中的第二签名值,和第一签名值对中的第一签名值,对响应消息进行一致性校验。
S204:按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对。
具体的,所述按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对,包括:利用字典,对所述返回值的第四关键字进行稳定排序,得到第十序列;根据所述返回值和所述第四关键字,确定出每一第四关键字对应的第四键值对;利用分隔符,将所述第四键值对按照所述第四关键字在所述第十序列中的顺序进行拼接,得到第十一序列;利用分隔符,将所述第十一序列与所述第一签名值对中的第一签名值拼接,确定出第十二序列;按照预设的第二哈希算法,对所述第十二序列进行计算,获得第三签名值;根据所述第三签名值的关键字和所述第三签名值,获得第三签名值对。
在实际应用中,假设服务器生成的返回值为A4、B5和C6,且对应的第四关键字为RESPONE_KEY_4、RESPONE_KEY_5和RESPONE_KEY_6。
利用字典对返回值A4、B5和C6的第四关键字RESPONE_KEY_4、RESPONE_KEY_5和RESPONE_KEY_6进行稳定排序,得到第十序列:RESPONE_KEY_4RESPONE_KEY_5RESPONE_KEY_6。
根据返回值和第四关键字,确定出的第四键值对为RESPONE_KEY_4=A4、RESPONE_KEY_5=B5和RESPONE_KEY_6=C6。
利用分隔符“|”将将第四键值对RESPONE_KEY_4=A4、RESPONE_KEY_5=B5和RESPONE_KEY_6=C6按照第四关键字在第十序列RESPONE_KEY_4RESPONE_KEY_5RESPONE_KEY_6中的顺序进行拼接,得到第十一序列:
RESPONE_KEY_4=A4|RESPONE_KEY_5=B5|RESPONE_KEY_6=C6。
将第十一序列和服务器接收的第一签名值对中的第一签名值REQUEST_SIGN_VALUE_1拼接,得到第十二序列:
RESPONE_KEY_4=A4|RESPONE_KEY_5=B5|RESPONE_KEY_6=C6|REQUEST_SIGN_VALUE_1。
按照预设的第二哈希算法hash_2,对第十二序列进行计算,hash_2(RESPONE_KEY_4=A4|RESPONE_KEY_5=B5|RESPONE_KEY_6=C6|REQUEST_SIGN_VALUE_1),得到第三签名值RESPONE_SIGN_VALUE_1。
根据第三签名值的关键字RESPONE_SIGN_KEY_1和第三签名值,确定出第三签名值对:RESPONE_SIGN_KEY_1=RESPONE_SIGN_VALUE_1。
本领域技术人员可以理解的是,服务器只有在接收的请求消息通过S203步骤的一致性校验后,才会针对接收的请求消息进行响应。
S205:将服务器针对所述请求参数的返回值和利用客户端公钥加密的第三签名值对加入响应消息发送至客户端,以使客户端按照预设的第二算法,对服务器的返回值和第一签名值进行计算,获得第四签名值对,使用与所述客户端公钥对应的客户端私钥解密所述加密的第三签名值对后获得第三签名值对,利用所述第四签名值对和所述第三签名值对,对所述响应消息进行一致性校验。
在实际应用中,服务器利用客户端公钥为REQUEST_PUBLIC_KEY加密第三签名值对:RESPONE_SIGN_KEY_1=RESPONE_SIGN_VALUE_1,并将加密后的第三签名值对和返回值A4、B5和C6发送至客户端,以使客户端按照预设的第二哈希算法hash_2对服务器的返回值A4、B5和C6和REQUEST_SIGN_KEY_1=REQUEST_SIGN_VALUE_1进行计算,获得第四签名值对RESPONE_SIGN_KEY_2=RESPONE_SIGN_VALUE_2,客户端利用客户端私钥REQUEST_PRIVATE_KEY解密加密的第三签名值对,获得第三签名值对RESPONE_SIGN_KEY_1=RESPONE_SIGN_VALUE_1,并利用第四签名值对和第三签名值对,对服务器发送至客户端的响应消息进行一致性校验。
在实际应用中,服务器还可以利用客户端公钥REQUEST_PUBLIC_KEY仅加密第三签名值:
REQUEST_PUBLIC_KEY(RESPONE_SIGN_VALUE_1)。再根据第三签名值的关键字生成第三签名值对:RESPONE_SIGN_KEY_1=REQUEST_PUBLIC_KEY(RESPONE_SIGN_VALUE_1)。
服务器将第三签名值加入到响应消息中,发送给客户端,以使客户端按照预设的第二哈希算法hash_2对服务器的返回值A4、B5和C6和第一签名值对的中的第一签名值REQUEST_SIGN_VALUE_1进行计算,获得第四签名值对RESPONE_SIGN_KEY_2=RESPONE_SIGN_VALUE_2,客户端利用客户端私钥REQUEST_PRIVATE_KEY解密加密的第三签名值,获得第三签名值对RESPONE_SIGN_KEY_1=RESPONE_SIGN_VALUE_1,并利用第四签名值对和第三签名值对,对服务器发送至客户端的响应消息进行一致性校验。
由于服务器获得第三签名值对的计算方法与客户端获得第四签名值对的计算方法完全相同,如果数据没被篡改,则第四签名值对与第三签名值对完全相同;如果数据被篡改,则第四签名值对与第三签名值对就会不相同,本步骤就是基于这个原理进行的一致性校验。
应用本发明图2所示实施例,在进行数据一致性校验过程中,利用非对称加密算法对服务器返回的第三签名值对进行加密,客户端利用非对称加密算法对加密后的第三签名值对解密,相对于HTPPS加解密算法,使用的算法更加简单,数据开销小,提高了加解密的速度,降低了数据一致性校验的耗时,进而提高了对数据进行防篡改处理的效率。
图3为本发明实施例提供的一种数据一致性校验的装置的结构示意图,应用于客户端,可以包括:第一计算模块301、第一发送模块302、第一接收模块303、解密模块304、第二计算模块305和第一校验模块306,其中,
第一计算模块301,用于按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对。
具体的,第一计算模块301,具体用于:利用字典,对第一关键字进行稳定排序,确定出第一序列,其中,所述第一关键字为所述请求参数的关键字;根据所述请求参数和所述第一关键字,确定出每一第一关键字对应的第一键值对;利用分隔符,将所述第一键值对按照所述第一关键字在所述第一序列中的顺序进行拼接,确定出第二序列;利用分隔符,将所述第二序列和所述客户端公钥进行拼接,确定出第三序列;按照预设的第一哈希算法,对所述第三序列进行计算,获得第一签名值;根据所述第一签名值的关键字和所述第一签名值,确定出第一签名值对。
第一发送模块302,用于将所述第一签名值对和所述请求参数加入请求消息发送至服务器,以使服务器按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第二签名值对,利用第二签名值对与第一签名值对,对所述请求消息进行一致性校验。
第一接收模块303,用于接收服务器发送的包含返回值和加密的第三签名值对的响应消息,所述加密的第三签名值对为:所述服务器先按照预设第二算法,对所述第一签名值对和返回值进行计算获得第三签名值对后,使用所述客户端公钥进行加密获得的。
解密模块304,用于使用预设的与所述客户端公钥对应客户端私钥,对所述加密的第三签名值对进行解密,获得所述第三签名值对。
第二计算模块305,用于按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对。
具体的,第二计算模块305,具体用于:利用字典,对第二关键字进行稳定排序,确定出第四序列,其中,所述第二关键字为所述返回值的关键字;根据所述返回值和所述第二关键字,确定出每一第二关键字对应的第二键值对;利用分隔符,将所述第二键值对按照所述第二关键字在所述第四序列中的顺序进行拼接,确定出第五序列;利用分隔符,将所述第五序列和所述第一签名值对中的第一签名值拼接,确定出第六序列;按照预设的第二哈希算法,对所述第六序列进行计算,获得第四签名值;根据所述第四签名值的关键字和所述第四签名值,获得第四签名值对。
第一校验模块306,用于利用第四签名值对与第三签名值对,对所述响应消息进行一致性校验。
应用本发明图3所示实施例,在进行数据一致性校验过程中,针对服务器利用客户端公钥加密后的第三签名值对,利用客户端私钥进行解密,相对于HTPPS加解密算法,使用的算法更加简单,数据开销小,提高了加解密的速度,降低了数据一致性校验的耗时,进而提高了对数据进行防篡改处理的效率。
图4为本发明实施例提供的另一种数据一致性校验的装置的结构示意图,应用于服务器,可以包括:第二接收模块401、第三计算模块402、第二校验模块403、第四计算模块404和第二发送模块405,其中,
第二接收模块401,用于接收客户端发送的包含第一签名值对和请求参数的请求消息,所述第一签名值对为:所述客户端按照预设的第一算法,对用户的请求参数和客户端公钥进行计算获得的。
第三计算模块402,用于按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对。
具体的,所述第三计算模块,具体用于:利用字典,对所述请求参数的第三关键字进行稳定排序,得到第七序列;根据所述请求参数和所述第三关键字,确定出每一第三关键字对应的第三键值对;利用分隔符,将所述第三键值对按照所述第三关键字在所述第七序列中的顺序进行拼接,得到第八序列;利用分隔符,将所述第八序列与所述客户端公钥拼接,得到第九序列;按照预设的第一哈希算法,对所述第九序列进行计算,获得第二签名值;根据所述第二签名值的关键字和所述第二签名值,获得第二签名值对。
第二校验模块403,利用所述第二签名值对与所述第一签名值对,对所述请求消息进行一致性校验。
第四计算模块404,按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对。
具体的,所述第四计算模块404,具体用于:利用字典,对所述返回值的第四关键字进行稳定排序,得到第十序列;根据所述返回值和所述第四关键字,确定出每一第四关键字对应的第四键值对;利用分隔符,将所述第四键值对按照所述第四关键字在所述第十序列中的顺序进行拼接,得到第十一序列;利用分隔符,将所述第十一序列与所述第一签名值对中的第一签名值拼接,确定出第十二序列;按照预设的第二哈希算法,对所述第十二序列进行计算,获得第三签名值;根据所述第三签名值的关键字和所述第三签名值,获得第三签名值对。
第二发送模块405,用于将服务器针对所述请求参数的返回值和利用客户端公钥加密的第三签名值对加入响应消息发送至客户端,以使客户端按照预设的第二算法,对服务器的返回值和第一签名值进行计算,获得第四签名值对,使用与所述客户端公钥对应的客户端私钥解密所述加密的第三签名值对后获得第三签名值对,利用所述第四签名值对和所述第三签名值对,对所述响应消息进行一致性校验。
应用本发明图4所示实施例,在进行数据一致性校验过程中,利用非对称加密算法对服务器返回的第三签名值对进行加密,客户端利用非对称加密算法对加密后的第三签名值对解密,相对于HTPPS加解密算法,使用的算法更加简单,数据开销小,提高了加解密的速度,降低了数据一致性校验的耗时,进而提高了对数据进行防篡改处理的效率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种数据一致性校验的方法,应用于客户端,其特征在于,所述方法包括:
按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对;
将所述第一签名值对和所述请求参数加入请求消息发送至服务器,以使服务器按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第二签名值对,利用第二签名值对与第一签名值对,对所述请求消息进行一致性校验;
接收服务器发送的包含返回值和加密的第三签名值对的响应消息,所述加密的第三签名值对为:所述服务器先按照预设第二算法,对所述第一签名值对和返回值进行计算获得第三签名值对后,使用所述客户端公钥进行加密获得的;
使用预设的与所述客户端公钥对应客户端私钥,对所述加密的第三签名值对进行解密,获得所述第三签名值对;
按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对;
利用第四签名值对与第三签名值对,对所述响应消息进行一致性校验。
2.根据权利要求1所述的方法,其特征在于,所述按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对,包括:
利用字典,对第一关键字进行稳定排序,确定出第一序列,其中,所述第一关键字为所述请求参数的关键字;
根据所述请求参数和所述第一关键字,确定出每一第一关键字对应的第一键值对;
利用分隔符,将所述第一键值对按照所述第一关键字在所述第一序列中的顺序进行拼接,确定出第二序列;
利用分隔符,将所述第二序列和所述客户端公钥进行拼接,确定出第三序列;
按照预设的第一哈希算法,对所述第三序列进行计算,获得第一签名值;
根据所述第一签名值的关键字和所述第一签名值,确定出第一签名值对。
3.根据权利要求1所述的方法,其特征在于,所述按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对,包括:
利用字典,对第二关键字进行稳定排序,确定出第四序列,其中,所述第二关键字为所述返回值的关键字;
根据所述返回值和所述第二关键字,确定出每一第二关键字对应的第二键值对;
利用分隔符,将所述第二键值对按照所述第二关键字在所述第四序列中的顺序进行拼接,确定出第五序列;
利用分隔符,将所述第五序列和所述第一签名值对中的第一签名值拼接,确定出第六序列;
按照预设的第二哈希算法,对所述第六序列进行计算,获得第四签名值;
根据所述第四签名值的关键字和所述第四签名值,获得第四签名值对。
4.一种数据一致性校验的方法,其特征在于,应用于服务器,所述方法包括:
接收客户端发送的包含第一签名值对和请求参数的请求消息,所述第一签名值对为:所述客户端按照预设的第一算法,对用户的请求参数和客户端公钥进行计算获得的;
按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对;
利用所述第二签名值对与所述第一签名值对,对所述请求消息进行一致性校验;
按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对;
将服务器针对所述请求参数的返回值和利用客户端公钥加密的第三签名值对加入响应消息发送至客户端,以使客户端按照预设的第二算法,对服务器的返回值和第一签名值进行计算,获得第四签名值对,使用与所述客户端公钥对应的客户端私钥解密所述加密的第三签名值对后获得第三签名值对,利用所述第四签名值对和所述第三签名值对,对所述响应消息进行一致性校验。
5.根据权利要求4所述的方法,其特征在于,所述按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对,包括:
利用字典,对所述请求参数的第三关键字进行稳定排序,得到第七序列;
根据所述请求参数和所述第三关键字,确定出每一第三关键字对应的第三键值对;
利用分隔符,将所述第三键值对按照所述第三关键字在所述第七序列中的顺序进行拼接,得到第八序列;
利用分隔符,将所述第八序列与所述客户端公钥拼接,得到第九序列;
按照预设的第一哈希算法,对所述第九序列进行计算,获得第二签名值;
根据所述第二签名值的关键字和所述第二签名值,获得第二签名值对。
6.根据权利要求4所述的方法,其特征在于,所述按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对,包括:
利用字典,对所述返回值的第四关键字进行稳定排序,得到第十序列;
根据所述返回值和所述第四关键字,确定出每一第四关键字对应的第四键值对;
利用分隔符,将所述第四键值对按照所述第四关键字在所述第十序列中的顺序进行拼接,得到第十一序列;
利用分隔符,将所述第十一序列与所述第一签名值对中的第一签名值拼接,确定出第十二序列;
按照预设的第二哈希算法,对所述第十二序列进行计算,获得第三签名值;
根据所述第三签名值的关键字和所述第三签名值,获得第三签名值对。
7.一种数据一致性校验的装置,应用于客户端,其特征在于,所述装置包括:第一计算模块、第一发送模块、第一接收模块、解密模块、第二计算模块和第一校验模块,其中,
所述第一计算模块,用于按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第一签名值对;
所述第一发送模块,用于将所述第一签名值对和所述请求参数加入请求消息发送至服务器,以使服务器按照预设的第一算法,对用户的请求参数和客户端公钥进行计算,获得第二签名值对,利用第二签名值对与第一签名值对,对所述请求消息进行一致性校验;
所述第一接收模块,用于接收服务器发送的包含返回值和加密的第三签名值对的响应消息,所述加密的第三签名值对为:所述服务器先按照预设第二算法,对所述第一签名值对和返回值进行计算获得第三签名值对后,使用所述客户端公钥进行加密获得的;
所述解密模块,用于使用预设的与所述客户端公钥对应客户端私钥,对所述加密的第三签名值对进行解密,获得所述第三签名值对;
所述第二计算模块,用于按照所述预设的第二算法,对所述第一签名值对和返回值进行计算,获得第四签名值对;
所述第一校验模块,用于利用第四签名值对与第三签名值对,对所述响应消息进行一致性校验。
8.根据权利要求7所述的装置,其特征在于,所述第一计算模块,具体用于:
利用字典,对第一关键字进行稳定排序,确定出第一序列,其中,所述第一关键字为所述请求参数的关键字;
根据所述请求参数和所述第一关键字,确定出每一第一关键字对应的第一键值对;
利用分隔符,将所述第一键值对按照所述第一关键字在所述第一序列中的顺序进行拼接,确定出第二序列;
利用分隔符,将所述第二序列和所述客户端公钥进行拼接,确定出第三序列;
按照预设的第一哈希算法,对所述第三序列进行计算,获得第一签名值;
根据所述第一签名值的关键字和所述第一签名值,确定出第一签名值对。
9.根据权利要求7所述的装置,其特征在于,所述第二计算模块,具体用于:
利用字典,对第二关键字进行稳定排序,确定出第四序列,其中,所述第二关键字为所述返回值的关键字;
根据所述返回值和所述第二关键字,确定出每一第二关键字对应的第二键值对;
利用分隔符,将所述第二键值对按照所述第二关键字在所述第四序列中的顺序进行拼接,确定出第五序列;
利用分隔符,将所述第五序列和所述第一签名值对中的第一签名值拼接,确定出第六序列;
按照预设的第二哈希算法,对所述第六序列进行计算,获得第四签名值;
根据所述第四签名值的关键字和所述第四签名值,获得第四签名值对。
10.一种数据一致性校验的装置,其特征在于,应用于服务器,所述装置包括:第二接收模块、第三计算模块、第二校验模块、第四计算模块和第二发送模块,其中,
所述第二接收模块,用于接收客户端发送的包含第一签名值对和请求参数的请求消息,所述第一签名值对为:所述客户端按照预设的第一算法,对用户的请求参数和客户端公钥进行计算获得的;
所述第三计算模块,用于按照预设的第一算法,对所述请求参数和所述客户端公钥进行计算,获得第二签名值对;
所述第二校验模块,利用所述第二签名值对与所述第一签名值对,对所述请求消息进行一致性校验;
所述第四计算模块,按照预设的第二算法,对与所述请求参数对应的返回值和所述第一签名值对进行计算,获得第三签名值对;
所述第二发送模块,用于将服务器针对所述请求参数的返回值和利用客户端公钥加密的第三签名值对加入响应消息发送至客户端,以使客户端按照预设的第二算法,对服务器的返回值和第一签名值进行计算,获得第四签名值对,使用与所述客户端公钥对应的客户端私钥解密所述加密的第三签名值对后获得第三签名值对,利用所述第四签名值对和所述第三签名值对,对所述响应消息进行一致性校验。
11.根据权利要求10所述的装置,其特征在于,所述第三计算模块,具体用于:
利用字典,对所述请求参数的第三关键字进行稳定排序,得到第七序列;
根据所述请求参数和所述第三关键字,确定出每一第三关键字对应的第三键值对;
利用分隔符,将所述第三键值对按照所述第三关键字在所述第七序列中的顺序进行拼接,得到第八序列;
利用分隔符,将所述第八序列与所述客户端公钥拼接,得到第九序列;
按照预设的第一哈希算法,对所述第九序列进行计算,获得第二签名值;
根据所述第二签名值的关键字和所述第二签名值,获得第二签名值对。
12.根据权利要求10所述的装置,其特征在于,所述第四计算模块,具体用于:
利用字典,对所述返回值的第四关键字进行稳定排序,得到第十序列;
根据所述返回值和所述第四关键字,确定出每一第四关键字对应的第四键值对;
利用分隔符,将所述第四键值对按照所述第四关键字在所述第十序列中的顺序进行拼接,得到第十一序列;
利用分隔符,将所述第十一序列与所述第一签名值对中的第一签名值拼接,确定出第十二序列;
按照预设的第二哈希算法,对所述第十二序列进行计算,获得第三签名值;
根据所述第三签名值的关键字和所述第三签名值,获得第三签名值对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611246963.5A CN106850566B (zh) | 2016-12-29 | 2016-12-29 | 一种数据一致性校验的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611246963.5A CN106850566B (zh) | 2016-12-29 | 2016-12-29 | 一种数据一致性校验的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106850566A true CN106850566A (zh) | 2017-06-13 |
CN106850566B CN106850566B (zh) | 2020-04-03 |
Family
ID=59113936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611246963.5A Active CN106850566B (zh) | 2016-12-29 | 2016-12-29 | 一种数据一致性校验的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850566B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108400979A (zh) * | 2018-02-06 | 2018-08-14 | 武汉斗鱼网络科技有限公司 | 应用于客户端和服务器的通信方法及电子设备 |
CN108573016A (zh) * | 2017-12-25 | 2018-09-25 | 北京金山云网络技术有限公司 | 一种数据一致性检查方法、装置、设备和存储介质 |
CN108875061A (zh) * | 2018-06-29 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种分布式文件系统的一致性测试方法及相关装置 |
CN110069939A (zh) * | 2019-03-12 | 2019-07-30 | 平安科技(深圳)有限公司 | 加密数据一致性校验方法、装置、计算机设备及存储介质 |
CN110289947A (zh) * | 2019-04-29 | 2019-09-27 | 北京开态智慧科技有限公司 | 数据传输一致性校验方法、装置、计算机设备及存储介质 |
CN110545173A (zh) * | 2019-07-29 | 2019-12-06 | 大众问问(北京)信息科技有限公司 | 一种安全验证及发送请求的方法及装置 |
CN112532586A (zh) * | 2020-11-03 | 2021-03-19 | 华帝股份有限公司 | 一种网络通信方法、系统、计算机设备及存储介质 |
CN115665257A (zh) * | 2022-12-27 | 2023-01-31 | 成都同步新创科技股份有限公司 | 基于反向代理和动态脚本的请求处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101384042A (zh) * | 2008-10-15 | 2009-03-11 | 东南大学 | 基于安全数字接口加密卡的手机加密方法 |
CN101662366A (zh) * | 2009-05-27 | 2010-03-03 | 西安西电捷通无线网络通信有限公司 | 基于哈希函数的双向认证方法及系统 |
CN102075522A (zh) * | 2010-12-22 | 2011-05-25 | 北京航空航天大学 | 一种结合数字证书和动态密码的安全认证与交易方法 |
CN103391292A (zh) * | 2013-07-18 | 2013-11-13 | 百度在线网络技术(北京)有限公司 | 针对移动应用的安全登录方法、系统和装置 |
CN103780648A (zh) * | 2012-10-22 | 2014-05-07 | 百度在线网络技术(北京)有限公司 | 内网和外网的开发者信息的同步系统和方法 |
-
2016
- 2016-12-29 CN CN201611246963.5A patent/CN106850566B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101384042A (zh) * | 2008-10-15 | 2009-03-11 | 东南大学 | 基于安全数字接口加密卡的手机加密方法 |
CN101662366A (zh) * | 2009-05-27 | 2010-03-03 | 西安西电捷通无线网络通信有限公司 | 基于哈希函数的双向认证方法及系统 |
CN102075522A (zh) * | 2010-12-22 | 2011-05-25 | 北京航空航天大学 | 一种结合数字证书和动态密码的安全认证与交易方法 |
CN103780648A (zh) * | 2012-10-22 | 2014-05-07 | 百度在线网络技术(北京)有限公司 | 内网和外网的开发者信息的同步系统和方法 |
CN103391292A (zh) * | 2013-07-18 | 2013-11-13 | 百度在线网络技术(北京)有限公司 | 针对移动应用的安全登录方法、系统和装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573016A (zh) * | 2017-12-25 | 2018-09-25 | 北京金山云网络技术有限公司 | 一种数据一致性检查方法、装置、设备和存储介质 |
CN108400979A (zh) * | 2018-02-06 | 2018-08-14 | 武汉斗鱼网络科技有限公司 | 应用于客户端和服务器的通信方法及电子设备 |
CN108400979B (zh) * | 2018-02-06 | 2021-07-30 | 武汉斗鱼网络科技有限公司 | 应用于客户端和服务器的通信方法及电子设备 |
CN108875061A (zh) * | 2018-06-29 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种分布式文件系统的一致性测试方法及相关装置 |
CN110069939A (zh) * | 2019-03-12 | 2019-07-30 | 平安科技(深圳)有限公司 | 加密数据一致性校验方法、装置、计算机设备及存储介质 |
WO2020181822A1 (zh) * | 2019-03-12 | 2020-09-17 | 平安科技(深圳)有限公司 | 加密数据一致性校验方法、装置、计算机设备及存储介质 |
CN110289947A (zh) * | 2019-04-29 | 2019-09-27 | 北京开态智慧科技有限公司 | 数据传输一致性校验方法、装置、计算机设备及存储介质 |
CN110545173A (zh) * | 2019-07-29 | 2019-12-06 | 大众问问(北京)信息科技有限公司 | 一种安全验证及发送请求的方法及装置 |
CN112532586A (zh) * | 2020-11-03 | 2021-03-19 | 华帝股份有限公司 | 一种网络通信方法、系统、计算机设备及存储介质 |
CN115665257A (zh) * | 2022-12-27 | 2023-01-31 | 成都同步新创科技股份有限公司 | 基于反向代理和动态脚本的请求处理方法及装置 |
CN115665257B (zh) * | 2022-12-27 | 2023-04-28 | 成都同步新创科技股份有限公司 | 基于反向代理和动态脚本的请求处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106850566B (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103118027B (zh) | 基于国密算法建立tls通道的方法 | |
CN106850566A (zh) | 一种数据一致性校验的方法及装置 | |
CN109309565B (zh) | 一种安全认证的方法及装置 | |
CN110069918B (zh) | 一种基于区块链技术的高效双因子跨域认证方法 | |
CN103338215B (zh) | 基于国密算法建立tls通道的方法 | |
US20170214664A1 (en) | Secure connections for low power devices | |
CN109327313A (zh) | 一种具有隐私保护特性的双向身份认证方法、服务器 | |
CN104158653A (zh) | 一种基于商密算法的安全通信方法 | |
JP5224481B2 (ja) | パスワード認証方法 | |
CN111435913A (zh) | 一种物联网终端的身份认证方法、装置和存储介质 | |
CN110233826B (zh) | 基于用户间数据混淆的隐私保护方法、终端数据聚合系统 | |
CN109951513A (zh) | 基于量子密钥卡的抗量子计算智能家庭量子云存储方法和系统 | |
Liang et al. | Novel private data access control scheme suitable for mobile edge computing | |
CN111416712B (zh) | 基于多个移动设备的量子保密通信身份认证系统及方法 | |
CN106657002A (zh) | 一种新型防撞库关联时间多密码的身份认证方法 | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
CN115276978A (zh) | 一种数据处理方法以及相关装置 | |
CN106230840A (zh) | 一种高安全性的口令认证方法 | |
CN115913521A (zh) | 基于量子密钥进行身份认证的方法 | |
CN108964908A (zh) | 一种受控密钥协商的方法及系统 | |
CN117499123A (zh) | 一种融合tee和秘密共享的分布式生物特征认证方法及系统 | |
CN109412799B (zh) | 一种生成本地密钥的系统及其方法 | |
CN115801341A (zh) | 一种面向分布式可调节负荷互动的区块链可信认证方法 | |
CN102014136B (zh) | 基于随机握手的p2p网络安全通信方法 | |
Merzeh et al. | GDPR compliance IoT authentication model for smart home environment |
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 |