CN108366057A - 一种数据处理方法、客户端及电子设备 - Google Patents

一种数据处理方法、客户端及电子设备 Download PDF

Info

Publication number
CN108366057A
CN108366057A CN201810118111.0A CN201810118111A CN108366057A CN 108366057 A CN108366057 A CN 108366057A CN 201810118111 A CN201810118111 A CN 201810118111A CN 108366057 A CN108366057 A CN 108366057A
Authority
CN
China
Prior art keywords
block
client
data
key
public key
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.)
Pending
Application number
CN201810118111.0A
Other languages
English (en)
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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810118111.0A priority Critical patent/CN108366057A/zh
Publication of CN108366057A publication Critical patent/CN108366057A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0442Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

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)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种数据处理方法、客户端及电子设备。本发明实施例方法包括:第一客户端生成配对的第一公钥和第一私钥,第一客户端接收第二客户端生成的第二公钥,并根据第二公钥和第一私钥生成第一共享秘钥第一客户端将第一公钥发送到所述第二客户端,以使得第二客户端根据第一公钥和与第二公钥配对的第二私钥生成第二共享秘钥;第一客户端根据第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;第一客户端根据第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给第二客户端。本发明实施例提高了区块链中区块数据的安全性,保证了用户数据安全。

Description

一种数据处理方法、客户端及电子设备
技术领域
本发明涉及区块链技术领域,特别涉及一种数据处理方法、客户端及电子设备。
背景技术
区块链(blockchain)本质上是一个分布式账本,其通过去中心化、去第三方信任的方式集体维护一个可靠数据库的技术方案,网络中所有的用户共同在分布式账本上记账与核账,来保证信息的真实性和不可篡改性,与传统的中心式解决方案相比,其最突出的优点是解决了对第三方的信任问题。最早的区块链底层技术来自于比特币,其主要运用了四大技术,分别是哈希运算、数字签名、P2P网络、工作量证明。区块链技术可应用于生活中诸多领域,比如供应链金融、医疗健康、文化传媒、产权认证、捐赠平台等,目前还在进一步扩展使用领域中。
区块链技术无需中心机构,实现了区块链的所有端都有完整的区块数据。同时区块链采用密码学的方法来保障已有数据不可能被篡改,在区块链上记录的每一块数据,都保持真实可靠,同时公开透明,能够被其他人所查看,所以区块链可以对陌生人不需要有信任的基础就可以进行交易。但是区块链技术在发展中存在另外一个问题,区块链的信息是公开的,所有人都可以查看,从而使得区块链中的信息缺少私密性,从而对于一些有私密信息的数据只能交易双方才能查看的信息则没有进行隐私保护。
发明内容
本发明实施例提供了一种数据处理方法、客户端及电子设备,以解决目前区块链中的信息缺少私密性,导致数据不安全的问题。
第一方面,本申请提供了一种数据处理方法,该方法包括:
第一客户端生成配对的第一公钥和第一私钥;
所述第一客户端接收第二客户端生成的第二公钥,并根据所述第二公钥和所述第一私钥生成第一共享秘钥;
所述第一客户端将所述第一公钥发送到所述第二客户端,以使得所述第二客户端根据所述第一公钥和与所述第二公钥配对的第二私钥生成第二共享秘钥,所述第一共享秘钥和所述第二共享秘钥的值相同;
所述第一客户端根据所述第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;
所述第一客户端根据所述第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给所述第二客户端。
进一步的,所述第一客户端生成配对的第一公钥和第一私钥,具体包括:
生成随机数据;
计算所述随机数据的哈希值作为所述第一私钥;
利用非对称加密算法根据所述第一私钥生成所述第一公钥。
进一步的,所述第一区块和所述第二区块为同样的数据结构;
所述数据结构包括区块的块号、前一个区块的哈希值、当前时间、计算新区块需要的key值、计算新区块哈希值中前面0的个数,随机数据、当前区块的哈希值以及区块功能数据;
其中,所述第二区块中的区块功能数据为所述第一加密数据。
进一步的,所述第一客户端根据所述加密数据以及服务器预先下发的第一区块生成第二区块,具体包括:
根据所述第一区块的块号加1,得到所述第二区块的块号;
获取当前时间;
计算所述第一区块的哈希值,作为所述第二区块中前一个区块的哈希值;
计算所述第一区块的key值;
获取所述第一加密数据,得到所述第二区块中的区块功能数据;
随机生成第一随机数据,所述第一随机数据用于加入到所述第二区块中,以使得计算的所述第二区块的哈希值满足所述服务器下发的0的个数;
对所述第二区块的块号、当前时间、所述第一区块的哈希值、预置的计算新区块哈希值中前面0的个数、所述第一随机数据及所述第二区块功能数据进行哈希计算,得到所述第二区块的哈希值;
根据所述第二区块的块号、当前时间、所述第一区块的哈希值、计算新区块需要的key值、所述第一随机数据、计算新区块哈希值中前面0的个数、所述第二区块的哈希值及所述第二区块的区块功能数据,按照所述数据结构生成所述第二区块。
进一步的,所述方法还包括:
所述第一客户端接收所述第二客户端发送的第三区块,所述第三区块中包括通过所述第二共享秘钥加密的第二加密数据;
所述第一客户端通过所述第一共享秘钥解密所述第二加密数据,得到所述第二客户端发送的区块数据。
第二方面,本申请提供一种客户端,该客户端包括:
生成模块,用于生成配对的第一公钥和第一私钥;
第一接收模块,用于接收接收目标客户端生成的第二公钥,并根据所述第二公钥和所述第一私钥生成第一共享秘钥;
第一发送模块,用于将所述第一公钥发送到所述目标客户端,以使得所述目标客户端根据所述第一公钥和与所述第二公钥配对的第二私钥生成第二共享秘钥,所述第一共享秘钥和所述第二共享秘钥的值相同;
加密模块,用于根据所述第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;
第二发送模块,用于根据所述第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给所述目标客户端。
进一步的,所述生成模块具体用于:
生成随机数据;
计算所述随机数据的哈希值作为所述第一私钥;
利用非对称加密算法根据所述第一私钥生成所述第一公钥。
进一步的,所述第一区块和所述第二区块为同样的数据结构;
所述数据结构包括区块的块号、前一个区块的哈希值、当前时间、计算新区块需要的key值、计算新区块哈希值中前面0的个数,随机数据、当前区块的哈希值以及区块功能数据;
其中,所述第二区块中的区块功能数据为所述第一加密数据。
进一步的,所述客户端还包括:
第二接收模块,用于接收所述第二客户端发送的第三区块,所述第三区块中包括通过所述第二共享秘钥加密的第二加密数据;
解密模块,用于通过所述第一共享秘钥解密所述第二加密数据,得到所述第二客户端发送的区块数据。
第三方面,本发明还提供一种电子设备,包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时可以实现第一方面中任一所述的方法。
第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一所述的方法。
本发明实施例通过第一客户端生成配对的第一公钥和第一私钥,第一客户端接收第二客户端生成的第二公钥,并根据第二公钥和第一私钥生成第一共享秘钥第一客户端将第一公钥发送到所述第二客户端,以使得第二客户端根据第一公钥和与第二公钥配对的第二私钥生成第二共享秘钥;第一客户端根据第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;第一客户端根据第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给第二客户端。本发明实施例中将第一客户端需要发送到第二客户端的数据通过预先与第二客户端交互生成的共享秘钥进行加密,再发送到第二客户端,只有具有对应共享秘钥的第二客户端才能解密,其他客户端无法获取数据,提高了区块链中区块数据的安全性,保证了用户数据安全。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中数据处理方法的一个实施例示意图;
图2是本发明实施例中图1所示实施例步骤S101的一个实施例示意图;
图3是本发明实施例中图1所示实施例步骤S105的一个实施例示意图;
图4是本发明实施例中图1所示实施例基础上,数据处理方法的另一个实施例示意图;
图5是本发明实施例中客户端的一个实施例示意图;
图6是本发明实施例中客户端的另一个实施例示意图;
图7是本发明实施例中电子设备的一个实施例示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例中数据处理方法应用于第一客户端中,该第一客户端即客户端应用于电子设备中,该电子设备可以是手机、平板电脑或者个人电脑等电子设备,也可以是未来出现有显示屏的电子设备等。
请参阅图1,本发明实施例中数据处理方法一个实施例包括:
S101、第一客户端生成配对的第一公钥和第一私钥;
具体的,本实施例中,在第一客户端和第二客户端需要进行数据交互时,第一客户端生成配对的第一公钥和第一私钥,第二客户端生成配对的第二公钥和第二私钥,第一客户端和第二客户端生成公钥和私钥的方式相同。上述第一客户端和第二客户端需要进行数据交互的场景可以是各种场景,例如交易场景,信息发送场景,信息更新场景等。
S102、第一客户端接收第二客户端生成的第二公钥,并根据第二公钥和第一私钥生成第一共享秘钥;
具体的,该第二公钥即为第二客户端生成的上述配对的第二公钥。
S103、第一客户端将第一公钥发送到第二客户端,以使得第二客户端根据第一公钥和与第二公钥配对的第二私钥生成第二共享秘钥;
由于第一客户端和第二客户端生成公钥和私钥的方式相同,且第一客户端和第二客户端交换公钥,此时,第一共享秘钥和所述第二共享秘钥的值是相同的。
S104、第一客户端根据所述第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;
具体的,第一客户端和第二客户端在交互数据时,会确定需要交互的数据,对于第一客户端,即本实施例中待存储到区块链中的数据。
S105、第一客户端根据第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给第二客户端。
本实施例,第一客户端根据加密数据和该第一区块生成第二区块,发送给第二客户端,这样既保证了在数据交互时区块链技术的特征,同时也保证了数据的安全。
另外,本实施例中的服务器可以是服务平台对应的服务器,例如直播平台对应的服务器,交易平台对应的服务器等各种提供客户服务的服务器,第一客户端和第二客户端为与该服务器建立连接关系的客户端。
本发明实施例通过第一客户端生成配对的第一公钥和第一私钥,第一客户端接收第二客户端生成的第二公钥,并根据第二公钥和第一私钥生成第一共享秘钥第一客户端将第一公钥发送到所述第二客户端,以使得第二客户端根据第一公钥和与第二公钥配对的第二私钥生成第二共享秘钥;第一客户端根据第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;第一客户端根据第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给第二客户端。本发明实施例中将第一客户端需要发送到第二客户端的数据通过预先与第二客户端交互生成的共享秘钥进行加密,再发送到第二客户端,只有具有对应共享秘钥的第二客户端才能解密,其他客户端无法获取数据,提高了区块链中区块数据的安全性,保证了用户数据安全。
进一步的,在本发明一些实施例中,如图2所示,上述步骤S101具体包括:
S1011、生成随机数据;
具体实现方式为:
Randdata=rand();
即通过调用系统函数rand来生成一段随机数据Randdata。
S1012、计算所述随机数据的哈希值作为所述第一私钥;
具体实现方式为:
APrivatekey=Md5.Create(Randdata)
即通过调用Md5函数的接口Md5.Create来对随机数据计算其Md5值,从而得到了第一私钥APrivatekey。需要说明的是,此处Md5仅为举例,也可以是使用其他哈希函数,如SHA-1等,具体不做限定。当然,此处优选最新加密最安全的哈希算法。
S1013、利用非对称加密算法根据所述第一私钥生成所述第一公钥。
具体实现方式为:
APublickey=RSA.CreatePair(APrivatekey);
即第一公钥APublickey是调用RSA的生成配对钥匙接口RSA.CreatePair来生成的,从而最终第一客户端则生成了第一公钥APublickey和第一私钥APrivatekey。
需要说明的是,本发明实施例中所述非对称加密算法还可以是RSA外的其他算法,如Elgamal算法、背包算法、Rabin算法、D-H算法、ECC(椭圆曲线加密算法)等,此处不作限定,当然,此处优选最新加密最安全的非对称加密算法。
同样的,第二客户端生成第二公钥和第二私钥的方式与上述第一客户端相同。第二客户端的生成则也会依照随机数据来生成私钥,从而尽可能保障不同客户端的私钥不一样。
具体的,上述第一客户端和第二客户端交互公钥实现生成共享秘钥的过程,下面以一个具体实施例进行举例介绍,假设客户端A和客户端B即为第一客户端和第二客户端,客户端A和客户端B会交换各自的公钥信息,来生成一个共享的秘钥,并且2个客户端A和B生成的共享秘钥是同一个值。具体实现如下:
(1)互换公钥。
客户端B将客户端B的公钥BPublickey发送给客户端A。
客户端A将客户端A的公钥APublickey发送给客户端B。
(2)客户端A生成共享秘钥。
ShareKey=RSA.CreateShareKey(BPublickey,APrivatekey);
(3)客户端B生成共享秘钥。
ShareKey=RSA.CreateShareKey(APublickey,BPrivatekey);
从而2个ShareKey的值是一致的,通过这个步骤就完成了交易的2个客户端都生成共享的秘钥。
本发明实施例中,当第一客户端和第二客户端都生成了相同的共享密钥后,则其中的一方(例如第一客户端或第二客户端)可以将隐私信息使用共享密钥来进行加密存储到区块链中,同样的双方交互信息都可以基于此共享密钥来加密隐私数据,并存储到区块链中,从而保障其信息的隐私,同时又无法篡改其内容,本发明实施例中加密可以使用对称加密算法DES来对信息进行加密。具体实现过程如下:
encryptData=DES.encrypt(secertinfo,sharekey);
其中DES.encrypt则是加密算法DES的加密接口,secertinfo则是隐私信息,sharekey则是之前协商的共享密钥,加密后的结果则是encryptData。
并且会将加密后的结果写入到区块的data字段中,从而发布到区块链中,从而交互数据的双方无法进行串改,通过上述步骤就实现了交互数据的客户端将隐私数据加密存储于区块链中。
本发明实施例中,所述第一区块和所述第二区块为同样的数据结构;所述数据结构包括区块的块号、前一个区块的哈希值、当前时间、计算新区块需要的key值、计算新区块哈希值中前面0的个数,随机数据、当前区块的哈希值以及区块功能数据;其中,所述第二区块中的区块功能数据为所述第一加密数据。
具体的,本发明实施例中,上述数据结构具体实现如下:
Struct BlockData{
Int64index;
String previousHash;
Int64timestamp;
String key;
String data;
String zero;
String randdata;
String hash;
}
其中,index用来表示区块的块号,通常从0开始递增;previousHash表示前一个区块的hash值(哈希值);timestamp表示当前时间戳;key表示计算新区块需要的key值;zero表示计算新区块的hash值中前面0的个数据(即上述生成新区块中预设数据的预设数值个数,此处预设数据指的hash值);data则表示一些数据的拼接(即上述区块功能数据),这个data字段的内容则是依据区块所需要完成的功能所设计,针对于本发明实施例中,区块功能数据,客户端的标志数据(Token)客户端之间需要传输的加密数据,例如第二区块中即为第一加密数据,对于服务器下发的第一区块,该区块功能数据可以为预设数据。有了这个区块链数据结构的设计后,当第二客户端或第一客户端收到其他客户端新产生的区块后,则可以通过对里面的数据进行校验。
本发明实施例中,第一区块可以是服务器生成的初始区块,当第一区块链为初始区块时,初始区块由于是第一个生成的区块,初始区块的区块号为0,时间戳则为当前时间,上一个区块链的hash值为0。
本发明实施例中同时设计了区块链中新区块链生成的算法,首先初始的区块链(如第一区块链)是服务器生成的,服务器会下发到到直播平台目标房间的客户端,那么该目标房间的客户端收到初始区块链后,需要算法来生成下一个区块链。具体实现如下:首先已经获取到了上一个区块链的数据结构,下一个区块链则是依据上一个区块链的数据进行生成。
本发明实施例中,假设上一个区块的名字是prevblock,新生成的区块的名字是newblock,具体生成新的区块的过程如下:
(1)计算新的区块的区块号。
Newblock.index=prevblock.index+1;
即新的区块的块号是当前块号加1。
(2)计算新的区块的时间戳。
Newblock.timestamp=time();
新区块的时间戳则是获取当前的时间。
(3)计算新的区块的上一个区块的hash值。
Newblock.previousHash=prevblock.hash;
新区块的上一个区块的hash值则是获取的上一个区块的hash。
(4)计算新的区块的上一个区块链的key值。
Newblock.key=prevblock.key;
新区块的上一个区块的key值则是获取的上一个区块的key。
(5)计算新的区块的数据。
即Newblock.data,此块数据既可以是明文数据,也可以是加密后的数据,针对于本实施例可以同时包括明文数据和加密数据,即部分公开的数据是明文数据,部分隐私数据则是加密数据。Newblock.data=AES.encrypt(Newblock.data,Newblock.key),也可以仅包括加密数据。
(6)计算新的区块的randdata值。
此randdata值则是客户端随机生成,以凑足正好整个新的区块计算的hash值前面满足服务器下发的0的个数。
(7)计算新的区块的hash值。
Newblock.hash=HASH(index+previousHash+timestamp+data+zero+randdata+key);
新区块的hash值则是有新区块的index字段和previousHash字段和timestamp字段和data字段和key字段。
本发明实施例中,哈希值对应的哈希(HASH)算法统一,该HASH算法可以是SHA-256算法,当然也可以是其他HASH算法,例如SHA-1等,此处不作限定。
至此,通过上述步骤就实现了通过一个区块生成一个新的区块的算法。而本发明实施例中,第一客户端根据该第一加密数据和第一区块生成第二区块即采用上述步骤实现。具体的,如图3所示,上述步骤S105中第一客户端根据第一加密数据以及服务器预先下发的第一区块生成第二区块,具体可以包括:
S1051、根据所述第一区块的块号加1,得到所述第二区块的块号;
S1052、获取当前时间;
S1053、计算所述第一区块的哈希值,作为所述第二区块中前一个区块的哈希值;
S1054、计算所述第一区块的key值;
S1055、获取所述第一加密数据,得到所述第二区块中的区块功能数据;
S1056、随机生成第一随机数据,所述第一随机数据用于加入到所述第二区块中,以使得计算的所述第二区块的哈希值满足所述服务器下发的0的个数;
S1057、对所述第二区块的块号、当前时间、所述第一区块的哈希值、预置的计算新区块哈希值中前面0的个数、所述第一随机数据及所述第二区块功能数据进行哈希计算,得到所述第二区块的哈希值;
S1058、根据所述第二区块的块号、当前时间、所述第一区块的哈希值、计算新区块需要的key值、所述第一随机数据、计算新区块哈希值中前面0的个数、所述第二区块的哈希值及所述第二区块的区块功能数据,按照所述数据结构生成所述第二区块。
本发明实施例中,不管是客户端还是服务器,当其收到一个区块时,首先都会对区块进行合法性校验,以判断当前的区块是否是合法的,以防止黑客伪造区块,或者区块在网络中传输被修改等因素。所以每个区块都需要进行完整性校验。具体实现如下:
通常的在客户端,除了初始区块,任意一个客户端然后收到了一个新的区块,需要对新的区块进行合法性判断。具体实现如下:
本文假设上一个区块的名字是prevblock,然后收到了一个新生成的区块的名字是newblock。
(1)首先判断其index是否正确。
Newblock.index!=prevblock.index+1;
如果新的区块的区块号不是上一个区块的区块号加1,则说明新的区块不合法,直接返回区块错误信息。
(2)然后判断区块的hash值。
Newblock.previousHash!=prevblock.hash
如果新的区块的上一个区块的hash值不等于上一个区块的hash值则认为新的区块不合法,直接返回区块错误信息。
(3)判断新的区块的hash值。
新的区块的hash值是新区块的整个数据的hash结果。
HASH(Newblock.index+Newblock.previousHash+Newblock.timestamp+Newblock.data+Newblock.randdata+Newblock.zero)!=Newblock.hash;
如果新的区块的整个区块的数据的hash值不等于新的区块hash值,则认为新的区块不合法,直接返回区块错误信息。
至此,通过上述步骤就实现了对新的区块进行合法性校验的算法。本发明实施例中,第一客户端对服务器下发的第一区块进行校验的方式可以采用上述方式。
在本发明一些实施例中,第一客户端也可以接收其他客户端发送的区块,具体的,如图4所示,所述方法还包括:
S401、第一客户端接收所述第二客户端发送的第三区块,所述第三区块中包括通过所述第二共享秘钥加密的第二加密数据;
具体的,该第二加密数据即第二客户端根据第二共享秘钥加密的数据。
S402、第一客户端通过所述第一共享秘钥解密所述第二加密数据,得到所述第二客户端发送的区块数据。
由于第一共享秘钥和第二公钥秘钥的值相同,因此,第一客户端可以直接通过第一共享秘钥解密该第三区块中的第二加密数据,得到第二客户端发送的区块数据。
具体的,即当交互数据的双方,一方将隐私信息加密后存储于区块链中后,另一方则可以解密其中存储的私密信息,并且只有交互数据的另一方才可以解密,因为只有交互数据的双方才有共享密钥(如上述第一共享秘钥和第二共享秘钥),并且区块链中的其他客户端则无法进行解密操作。同样的,本发明实施例解密可以使用对称加密算法DES来对信息进行解密,具体实现如下:
Secertinfo=DES.decrypt(encryptData,sharekey);
其中DES.decrypt则是解密算法DES的解密接口,encryptData则是隐私信息,sharekey则是之前协商的共享密钥,解密后的结果则是Secertinfo。
从而另一个客户端得到解密后的原始数据,同样的另一个客户端也可以使用同样的方法再将自己的信息进行加密存储到区块链中,通过上述步骤就完成了交互数据的客户端将隐私数据进行解密存储于区块链中的隐私数据。
下面介绍本发明实施例中客户端的实施例。
请参阅图5为本发明实施例中客户端的一个实施例示意图,该客户端包括:
生成模块501,用于生成配对的第一公钥和第一私钥;
第一接收模块502,用于接收接收目标客户端生成的第二公钥,并根据所述第二公钥和所述第一私钥生成第一共享秘钥;
第一发送模块503,用于将所述第一公钥发送到所述目标客户端,以使得所述目标客户端根据所述第一公钥和与所述第二公钥配对的第二私钥生成第二共享秘钥,所述第一共享秘钥和所述第二共享秘钥的值相同;
加密模块504,用于根据所述第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;
第二发送模块505,用于根据所述第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给所述目标客户端。
进一步的,所述生成模块501具体用于:
生成随机数据;
计算所述随机数据的哈希值作为所述第一私钥;
利用非对称加密算法根据所述第一私钥生成所述第一公钥。
进一步的,所述第一区块和所述第二区块为同样的数据结构;
所述数据结构包括区块的块号、前一个区块的哈希值、当前时间、计算新区块需要的key值、计算新区块哈希值中前面0的个数,随机数据、当前区块的哈希值以及区块功能数据;
其中,所述第二区块中的区块功能数据为所述第一加密数据。
进一步的,如图6所示,所述客户端还包括:
第二接收模块506,用于接收所述第二客户端发送的第三区块,所述第三区块中包括通过所述第二共享秘钥加密的第二加密数据;
解密模块507,用于通过所述第一共享秘钥解密所述第二加密数据,得到所述第二客户端发送的区块数据。
本发明实施例中还提供一种电子设备,请参见图7,所述电子设备包括:
存储器701,处理器702及存储在所述存储器上并可在所述处理器上运行的计算机程序703,其中,所述处理器702执行所述计算机程序703时可以实现上述数据处理方法。
需要说明的是,本申请涉及的电子设备包括但不限于是:移动终端(手机、智能手机、PAD、笔记本电脑等等)、固定终端(计算机)。
为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。存储器701可用于存储计算机程序703,上述计算机程序包括软件程序、模块和数据,处理器702通过运行执行存储在存储器701的计算机程序703,从而执行电子设备的各种功能应用以及数据处理。
在具体的实施过程中,存储器701可用于存储软件程序以及模块,处理器702通过运行存储在存储器701的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。存储器701可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如游戏类应用程序、聊天类应用程序)等;存储数据区可存储根据电子设备的使用所创建的数据(游戏配置数据、音频数据)等。此外,存储器701可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。处理器702是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器701内的软件程序和/或模块,以及调用存储在存储器701内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器702可包括一个或多个处理单元;优选的,处理器702可集成应用处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等。
本发明实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的数据处理方法的部分或全部步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法包括:
第一客户端生成配对的第一公钥和第一私钥;
所述第一客户端接收第二客户端生成的第二公钥,并根据所述第二公钥和所述第一私钥生成第一共享秘钥;
所述第一客户端将所述第一公钥发送到所述第二客户端,以使得所述第二客户端根据所述第一公钥和与所述第二公钥配对的第二私钥生成第二共享秘钥,所述第一共享秘钥和所述第二共享秘钥的值相同;
所述第一客户端根据所述第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;
所述第一客户端根据所述第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给所述第二客户端。
2.根据权利要求1所述的方法,其特征在于,所述第一客户端生成配对的第一公钥和第一私钥,具体包括:
生成随机数据;
计算所述随机数据的哈希值作为所述第一私钥;
利用非对称加密算法根据所述第一私钥生成所述第一公钥。
3.根据权利要求1所述的方法,其特征在于,所述第一区块和所述第二区块为同样的数据结构;
所述数据结构包括区块的块号、前一个区块的哈希值、当前时间、计算新区块需要的key值、计算新区块哈希值中前面0的个数,随机数据、当前区块的哈希值以及区块功能数据;
其中,所述第二区块中的区块功能数据为所述第一加密数据。
4.根据权利要求3所述的方法,其特征在于,所述第一客户端根据所述加密数据以及服务器预先下发的第一区块生成第二区块,具体包括:
根据所述第一区块的块号加1,得到所述第二区块的块号;
获取当前时间;
计算所述第一区块的哈希值,作为所述第二区块中前一个区块的哈希值;
计算所述第一区块的key值;
获取所述第一加密数据,得到所述第二区块中的区块功能数据;
随机生成第一随机数据,所述第一随机数据用于加入到所述第二区块中,以使得计算的所述第二区块的哈希值满足所述服务器下发的0的个数;
对所述第二区块的块号、当前时间、所述第一区块的哈希值、预置的计算新区块哈希值中前面0的个数、所述第一随机数据及所述第二区块功能数据进行哈希计算,得到所述第二区块的哈希值;
根据所述第二区块的块号、当前时间、所述第一区块的哈希值、计算新区块需要的key值、所述第一随机数据、计算新区块哈希值中前面0的个数、所述第二区块的哈希值及所述第二区块的区块功能数据,按照所述数据结构生成所述第二区块。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一客户端接收所述第二客户端发送的第三区块,所述第三区块中包括通过所述第二共享秘钥加密的第二加密数据;
所述第一客户端通过所述第一共享秘钥解密所述第二加密数据,得到所述第二客户端发送的区块数据。
6.一种客户端,其特征在于,所述客户端包括:
生成模块,用于生成配对的第一公钥和第一私钥;
第一接收模块,用于接收接收目标客户端生成的第二公钥,并根据所述第二公钥和所述第一私钥生成第一共享秘钥;
第一发送模块,用于将所述第一公钥发送到所述目标客户端,以使得所述目标客户端根据所述第一公钥和与所述第二公钥配对的第二私钥生成第二共享秘钥,所述第一共享秘钥和所述第二共享秘钥的值相同;
加密模块,用于根据所述第一共享秘钥加密待存储到区块链中的数据,得到第一加密数据;
第二发送模块,用于根据所述第一加密数据以及服务器预先下发的第一区块生成第二区块,并发送给所述目标客户端。
7.根据权利要求6所述的客户端,其特征在于,所述生成模块具体用于:
生成随机数据;
计算所述随机数据的哈希值作为所述第一私钥;
利用非对称加密算法根据所述第一私钥生成所述第一公钥。
8.根据权利要求6所述的客户端,其特征在于,所述第一区块和所述第二区块为同样的数据结构;
所述数据结构包括区块的块号、前一个区块的哈希值、当前时间、计算新区块需要的key值、计算新区块哈希值中前面0的个数,随机数据、当前区块的哈希值以及区块功能数据;
其中,所述第二区块中的区块功能数据为所述第一加密数据。
9.根据权利要求6所述的客户端,其特征在于,所述客户端还包括:
第二接收模块,用于接收所述第二客户端发送的第三区块,所述第三区块中包括通过所述第二共享秘钥加密的第二加密数据;
解密模块,用于通过所述第一共享秘钥解密所述第二加密数据,得到所述第二客户端发送的区块数据。
10.一种电子设备,其特征在于,包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时可以实现权利要求1至5任一所述的方法。
CN201810118111.0A 2018-02-06 2018-02-06 一种数据处理方法、客户端及电子设备 Pending CN108366057A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810118111.0A CN108366057A (zh) 2018-02-06 2018-02-06 一种数据处理方法、客户端及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810118111.0A CN108366057A (zh) 2018-02-06 2018-02-06 一种数据处理方法、客户端及电子设备

Publications (1)

Publication Number Publication Date
CN108366057A true CN108366057A (zh) 2018-08-03

Family

ID=63004565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810118111.0A Pending CN108366057A (zh) 2018-02-06 2018-02-06 一种数据处理方法、客户端及电子设备

Country Status (1)

Country Link
CN (1) CN108366057A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109102294A (zh) * 2018-08-24 2018-12-28 北京京东尚科信息技术有限公司 信息传输方法和装置
CN109543443A (zh) * 2018-10-17 2019-03-29 平安科技(深圳)有限公司 基于区块链的用户数据管理方法、装置、设备和存储介质
CN109558112A (zh) * 2018-11-14 2019-04-02 杭州复杂美科技有限公司 随机数生成方法、防作弊区块链系统、设备和存储介质
CN109691013A (zh) * 2018-08-16 2019-04-26 区链通网络有限公司 区块链节点间通信方法、装置及存储介质、区块链系统
CN109861956A (zh) * 2018-10-29 2019-06-07 梁伟 基于状态通道的数据验证系统、方法、装置及设备
CN109905395A (zh) * 2019-03-07 2019-06-18 武汉斗鱼鱼乐网络科技有限公司 一种验证客户端可信的方法及相关装置
CN110417553A (zh) * 2019-08-07 2019-11-05 北京阿尔山区块链联盟科技有限公司 多方保密通信方法、装置及用户终端
CN111294203A (zh) * 2020-01-22 2020-06-16 腾讯科技(深圳)有限公司 信息传输方法
CN111404950A (zh) * 2020-03-23 2020-07-10 腾讯科技(深圳)有限公司 一种基于区块链网络的信息共享方法、装置和相关设备
CN111510282A (zh) * 2020-04-28 2020-08-07 刘佳 信息加密算法、装置与信息解密算法、装置以及通讯方法
CN113678398A (zh) * 2019-02-21 2021-11-19 联邦科学技术研究组织 具有能量的特征为动力的区块链
CN114785583A (zh) * 2022-04-15 2022-07-22 江苏保旺达软件技术有限公司 一种接口请求的加密发送、校验方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015061941A1 (zh) * 2013-10-28 2015-05-07 华为终端有限公司 一种密钥配置方法和装置
WO2017011601A1 (en) * 2015-07-14 2017-01-19 Fmr Llc Computationally efficient transfer processing, auditing, and search apparatuses, methods and systems
CN107454110A (zh) * 2017-09-26 2017-12-08 武汉斗鱼网络科技有限公司 一种数据校验方法及服务器
CN107483446A (zh) * 2017-08-23 2017-12-15 上海点融信息科技有限责任公司 用于区块链的加密方法、设备以及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015061941A1 (zh) * 2013-10-28 2015-05-07 华为终端有限公司 一种密钥配置方法和装置
WO2017011601A1 (en) * 2015-07-14 2017-01-19 Fmr Llc Computationally efficient transfer processing, auditing, and search apparatuses, methods and systems
CN107483446A (zh) * 2017-08-23 2017-12-15 上海点融信息科技有限责任公司 用于区块链的加密方法、设备以及系统
CN107454110A (zh) * 2017-09-26 2017-12-08 武汉斗鱼网络科技有限公司 一种数据校验方法及服务器

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020034151A1 (zh) * 2018-08-16 2020-02-20 区链通网络有限公司 区块链节点间通信方法、装置及存储介质、区块链系统
CN109691013A (zh) * 2018-08-16 2019-04-26 区链通网络有限公司 区块链节点间通信方法、装置及存储介质、区块链系统
CN109102294B (zh) * 2018-08-24 2021-07-30 北京京东尚科信息技术有限公司 信息传输方法和装置
CN109102294A (zh) * 2018-08-24 2018-12-28 北京京东尚科信息技术有限公司 信息传输方法和装置
CN109543443A (zh) * 2018-10-17 2019-03-29 平安科技(深圳)有限公司 基于区块链的用户数据管理方法、装置、设备和存储介质
CN109861956A (zh) * 2018-10-29 2019-06-07 梁伟 基于状态通道的数据验证系统、方法、装置及设备
CN109558112B (zh) * 2018-11-14 2020-08-14 杭州复杂美科技有限公司 随机数生成方法、防作弊区块链系统、设备和存储介质
CN109558112A (zh) * 2018-11-14 2019-04-02 杭州复杂美科技有限公司 随机数生成方法、防作弊区块链系统、设备和存储介质
CN113678398A (zh) * 2019-02-21 2021-11-19 联邦科学技术研究组织 具有能量的特征为动力的区块链
CN109905395A (zh) * 2019-03-07 2019-06-18 武汉斗鱼鱼乐网络科技有限公司 一种验证客户端可信的方法及相关装置
CN109905395B (zh) * 2019-03-07 2021-09-07 武汉斗鱼鱼乐网络科技有限公司 一种验证客户端可信的方法及相关装置
CN110417553A (zh) * 2019-08-07 2019-11-05 北京阿尔山区块链联盟科技有限公司 多方保密通信方法、装置及用户终端
CN111294203A (zh) * 2020-01-22 2020-06-16 腾讯科技(深圳)有限公司 信息传输方法
CN111404950A (zh) * 2020-03-23 2020-07-10 腾讯科技(深圳)有限公司 一种基于区块链网络的信息共享方法、装置和相关设备
CN111404950B (zh) * 2020-03-23 2021-12-10 腾讯科技(深圳)有限公司 一种基于区块链网络的信息共享方法、装置和相关设备
CN111510282A (zh) * 2020-04-28 2020-08-07 刘佳 信息加密算法、装置与信息解密算法、装置以及通讯方法
CN114785583A (zh) * 2022-04-15 2022-07-22 江苏保旺达软件技术有限公司 一种接口请求的加密发送、校验方法、装置、设备及介质
CN114785583B (zh) * 2022-04-15 2024-01-30 江苏保旺达软件技术有限公司 一种接口请求的加密发送、校验方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN108366057A (zh) 一种数据处理方法、客户端及电子设备
US10785019B2 (en) Data transmission method and apparatus
CN109462472A (zh) 数据加密和解密的方法、装置和系统
Hota et al. Capability-based cryptographic data access control in cloud computing
US8799981B2 (en) Privacy protection system
Sanka et al. Secure data access in cloud computing
CN110061845A (zh) 区块链数据加密方法、装置、计算机设备及存储介质
CN108432205A (zh) 使用代理的安全的多方通信的系统和方法
CN109165957A (zh) 基于区块链的发票数据报销方法、系统及相关设备
CN107005413A (zh) 安全连接及相关服务的高效启动
US20100017602A1 (en) Ad-Hoc Trust Establishment Using Visual Verification
CN106537432A (zh) 对存储加密货币的钱包进行安全访问的方法及装置
CN107612934A (zh) 一种基于密钥分割的区块链移动端计算系统和方法
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
CN110417750A (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
CN109067528A (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
NO20093259A1 (no) Kryptering
CN102984273B (zh) 虚拟磁盘加密方法、解密方法、装置及云服务器
CN111611623B (zh) 一种隐私数据处理方法和装置
CN109728906A (zh) 基于非对称密钥池的抗量子计算非对称加密方法和系统
CN109495497A (zh) 基于信誉度动态管理及国产密码算法隐私信息加密传输方法
CN110445840A (zh) 一种基于区块链技术的文件存储和读取的方法
JP2024501197A (ja) データをセキュア保護するためのハイブリッド鍵導出
CN109361512A (zh) 数据传输方法
CN109495244A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180803