买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于区块链的用户数据授权方法、介质、装置和计算设备_网易(杭州)网络有限公司_201810445435.5 

申请/专利权人:网易(杭州)网络有限公司

申请日:2018-05-10

公开(公告)日:2021-02-23

公开(公告)号:CN108632284B

主分类号:H04L29/06(20060101)

分类号:H04L29/06(20060101);H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.02.23#授权;2018.11.02#实质审查的生效;2018.10.09#公开

摘要:本发明的实施方式提供了一种基于区块链的用户数据授权方法,包括:第一应用客户端将用户数据的加密用户数据通过区块链节点存入区块链数据库中;响应于第二应用客户端获取所述用户数据的请求生成授权信息;通知第二应用客户端获取所述授权信息,使得第二应用客户端基于所述加密用户数据和所述授权信息获取所述用户数据。本方法通过在区块链数据库中保存加密用户数据,使得加密用户数据不会被篡改且真实的用户数据不会被泄露,并使得第二应用客户端基于授权信息和加密用户数据获取到用户数据,在保证用户数据的安全的基础上实现了用户数据在不同应用之间的共享。本发明的实施方式还提供了一种基于区块链的用户数据授权装置、介质和计算设备。

主权项:1.一种基于区块链的用户数据授权方法,应用于第一应用客户端,所述方法包括:在产生用户数据后,将所述用户数据的加密用户数据发送至区块链节点,使得各区块链节点将所述加密用户数据存入各自对应的区块链数据库中,其中,在所述区块链数据库中所述加密用户数据存储于以所述加密用户数据的标识信息为索引的数据结构中;接收区块链节点在将所述加密用户数据存入区块链数据库后返回的所述加密用户数据的标识信息;响应于第二应用客户端获取所述用户数据的请求,基于加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成授权信息;将所述授权信息和所述第二应用客户端的标识信息发送至区块链节点,使得各区块链节点根据所述第二应用客户端的标识信息,将所述授权信息存入各自对应的区块链数据库中,在所述区块链数据库中所述授权信息存储于以所述第二应用客户端的标识信息为索引的数据结构中,其中,在以所述第二应用客户端的标识信息为索引的数据结构中,存储有一条或多条用户数据对应的授权信息,不同授权信息之间通过不同标识进行区分;以及通知所述第二应用客户端根据所述第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取所述授权信息,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据。

全文数据:基于区块链的用户数据授权方法、介质、装置和计算设备技术领域[0001]本发明的实施方式涉及互联网技术领域,更具体地,本发明的实施方式涉及基于区块链的用户数据授权方法、介质、装置和计算设备。背景技术[0002]本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。[0003]互联网技术的不断发展带动了应用Application的繁荣,各种不同的应用增长迅速,用户通过使用不同的应用以实现不同的功能,解决不同的需求。[0004]尽管应用的发展相当迅猛,但其基本格局却始终没有改变,不同的应用之间彼此隔离,一个应用中形成的数据不能给其他应用共享使用,用户与每个应用的交互所形成的行为数据或信息数据,只能局限于该应用使用范围内,而不能与其他应用共享使用,也不能与用户在其他应用中所形成的行为数据或信息数据相互关联。如何在保护用户数据的安全性的前提下实现用户数据在不同应用之间的共享,是当前需要解决的问题。发明内容[0005]但是,出于无法保证用户数据的安全性等原因,现有技术无法实现不同应用对用户数据的共享。[0006]因此在现有技术中,想要在保证用户数据的安全性的前提下实现不同应用之间对用户数据的共享,这是非常令人烦恼的过程。[0007]为此,非常需要一种基于区块链的用户数据授权方法,以在保证用户数据的安全性的前提下实现不同应用之间对用户数据的共享。[0008]在本上下文中,本发明的实施方式期望提供一种基于区块链的用户数据授权方法和装置。[0009]在本发明实施方式的第一方面中,提供了一种基于区块链的用户数据授权方法,该方法应用于第一应用客户端,包括:将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将上述加密用户数据存入各自对应的区块链数据库中;响应于第二应用客户端获取上述用户数据的请求,生成授权信息;通知第二应用客户端按照预设规则获取上述授权信息,使得第二应用客户端基于上述授权信息从区块链节点对应的区块链数据库中获取上述加密用户数据,并基于上述加密用户数据和上述授权信息获取上述用户数据。[0010]在本发明的一个实施例中,上述用户数据的加密用户数据包括:利用加密密钥对上述用户数据进行加密得到的加密用户数据。上述生成授权信息包括:基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息,生成授权信息。其中,使得第二应用客户端基于上述授权信息从区块链节点对应的区块链数据库中获取上述加密用户数据,并基于上述加密用户数据和上述授权信息获取上述用户数据,包括:使得第二应用客户端在获取到上述授权信息后,根据上述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取上述加密用户数据,并利用上述解密密钥对上述加密用户数据进行解密得到上述用户数据。[0011]在本发明的另一实施例中,上述用户数据的加密用户数据包括:利用加密密钥对上述用户数据的哈希值进行加密得到的加密用户数据。上述生成授权信息包括:基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息生成授权信息。其中,使得第二应用客户端基于上述授权信息从区块链节点对应的区块链数据库中获取上述加密用户数据,并基于上述加密用户数据和上述授权信息获取上述用户数据,包括:使得第二应用客户端在获取到上述授权信息后,根据上述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取上述加密用户数据,利用上述解密密钥对上述加密用户数据进行解密得到上述用户数据的哈希值,并在根据上述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到上述用户数据。[0012]在本发明的又一实施例中,上述方法还包括:在生成授权信息后,将上述授权信息和第二应用客户端的标识信息发送至区块链节点,使得各区块链节点根据上述第二应用客户端的标识信息,将上述授权信息存入各自对应的区块链数据库中。上述通知第二应用客户端按照预设规则获取上述授权信息包括:通知第二应用客户端,使得第二应用客户端根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取上述授权信息。[0013]在本发明的再一实施例中,第二应用客户端的标识信息和第二应用客户端的公钥对应存储于各区块链节点对应的区块链数据库中。上述方法还包括:获取第二应用客户端的标识信息;根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取第二应用客户端的公钥。基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息,生成授权信息包括:利用第二应用客户端的公钥对上述解密密钥和上述加密用户数据的标识信息进行加密,得到授权信息。其中,第二应用客户端在获取到上述授权信息后,利用第二应用客户端的私钥对上述授权信息进行解密,得到上述解密密钥和上述加密用户数据的标识信息。[0014]在本发明的再一实施例中,上述响应于第二应用客户端获取上述用户数据的请求,生成授权信息包括:判断第二应用客户端是否具有获取权限,在第二应用客户端具有获取权限的情况下,生成授权信息。[0015]在本发明的再一实施例中,上述判断第二应用客户端是否具有获取权限包括:展示授权询问对话框;当接收到针对授权询问的确认输入时,确定第二应用客户端具有获取权限;以及,当接收到针对授权询问的否认输入时,确定第二应用客户端不具有获取权限。[0016]在本发明的再一实施例中,上述加密密钥包括按照预设变化规则变化的加密密钥。[0017]在本发明的再一实施例中,上述方法还包括:接收区块链节点在将上述加密用户数据存入区块链数据库后返回的上述加密用户数据的标识信息。[0018]在本发明实施方式的第二方面中,提供了一种基于区块链的用户数据授权方法,该方法应用于第二应用客户端,包括:向第一应用客户端发送获取用户数据的请求;按照预设规则获取授权信息;基于上述授权信息从区块链节点对应的区块链数据库中获取上述用户数据对应的加密用户数据;基于上述加密用户数据和上述授权信息获取上述用户数据。[0019]在本发明的一个实施例中,上述用户数据的加密用户数据包括:利用加密密钥对上述用户数据进行加密得到的加密用户数据。上述授权信息是基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息生成的。上述基于上述授权信息从区块链节点对应的区块链数据库中获取上述用户数据对应的加密用户数据包括:根据上述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取上述加密用户数据。上述基于上述加密用户数据和上述授权信息获取上述用户数据包括:利用上述解密密钥对上述加密用户数据进行解密得到上述用户数据。[0020]在本发明的另一实施例中,上述用户数据的加密用户数据包括:利用加密密钥对上述用户数据的哈希值进行加密得到的加密用户数据。上述授权信息是基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息生成的。上述基于上述授权信息从区块链节点对应的区块链数据库中获取上述用户数据对应的加密用户数据包括:根据上述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取上述加密用户数据。上述基于上述加密用户数据和上述授权信息获取上述用户数据包括:利用上述解密密钥对上述加密用户数据进行解密得到上述用户数据的哈希值,并在根据上述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到上述用户数据。[0021]在本发明的又一实施例中,第二应用客户端的标识信息和上述授权信息对应存储于各区块链节点对应的区块链数据库中。上述按照预设规则获取上述授权信息包括:根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取上述授权信息。[0022]在本发明的再一实施例中,上述方法还包括:自行将第二应用客户端的标识信息和第二应用客户端的公钥发送至区块链节点,或者,通过第二应用服务器将第二应用客户端的标识信息和第二应用客户端的公钥发送至区块链节点,使得各区块链节点根据第二应用客户端的标识信息,将第二应用客户端的公钥存入各自对应的区块链数据库中。上述授权信息是利用第二应用客户端的公钥对上述解密密钥和上述加密用户数据的标识信息进行加密生成的。上述基于上述授权信息从区块链节点对应的区块链数据库中获取上述用户数据对应的加密用户数据;基于上述加密用户数据和上述授权信息获取上述用户数据包括:利用第二应用客户端的私钥对上述授权信息进行解密,得到上述解密密钥和上述加密用户数据的标识信息。[0023]在本发明实施方式的第三方面中,提供了一种基于区块链的用户数据授权装置,该装置应用于第一应用客户端,包括:用户数据管理模块,用于将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将上述加密用户数据存入各自对应的区块链数据库中。授权模块,用于响应于第二应用客户端获取上述用户数据的请求,生成授权信息;通知第二应用客户端按照预设规则获取上述授权信息,使得第二应用客户端基于上述授权信息从区块链节点对应的区块链数据库中获取上述加密用户数据,并基于上述加密用户数据和上述授权信息获取上述用户数据。[0024]在本发明的一个实施例中,上述用户数据的加密用户数据包括:利用加密密钥对上述用户数据进行加密得到的加密用户数据。上述授权模块,用于基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息,生成授权信息,使得第二应用客户端在获取到上述授权信息后,根据上述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取上述加密用户数据,并利用上述解密密钥对上述加密用户数据进行解密得到上述用户数据。[0025]在本发明的另一实施例中,上述用户数据的加密用户数据包括利用加密密钥对上述用户数据的哈希值进行加密得到的加密用户数据。上述授权模块,用于基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息,生成授权信息,使得第二应用客户端在获取到上述授权信息后,根据上述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取上述加密用户数据,利用上述解密密钥对上述加密用户数据进行解密得到上述用户数据的哈希值,并在根据上述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到上述用户数据。[0026]在本发明的又一实施例中,上述授权模块,还用于在生成授权信息后,将第二应用客户端的标识信息和上述授权信息发送至区块链节点,使得各区块链节点根据第二应用客户端的标识信息,将上述授权信息存入各自对应的区块链数据库中。上述授权模块,用于通知第二应用客户端,使得第二应用客户端根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取上述授权信息。[0027]在本发明的再一实施例中,第二应用客户端的标识信息和第二应用客户端的公钥对应存储于各区块链节点对应的区块链数据库中。上述授权模块,还用于获取第二应用客户端的标识信息;根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取第二应用客户端的公钥。上述授权模块,用于利用第二应用客户端的公钥对上述解密密钥和上述加密用户数据的标识信息进行加密,得到授权信息。其中,第二应用客户端在获取到上述授权信息后,利用第二应用客户端的私钥对上述授权信息进行解密,得到上述解密密钥和上述加密用户数据的标识信息。[0028]在本发明的再一实施例中,上述授权模块,还用于在响应于第二应用客户端获取上述用户数据的请求时,判断第二应用客户端是否具有获取权限,在第二应用客户端具有获取权限的情况下,生成授权信息。[0029]在本发明的再一实施例中,上述授权模块,用于展示授权询问对话框;当接收到针对授权询问的确认输入时,确定第二应用客户端具有获取权限;当接收到针对授权询问的否认输入时,确定第二应用客户端不具有获取权限。[0030]在本发明的再一实施例中,上述加密密钥包括按照预设变化规则变化的加密密钥。[0031]在本发明的再一实施例中,上述用户数据管理模块,还用于接收区块链节点在将上述加密用户数据存入区块链数据库后返回的上述加密用户数据的标识信息。[0032]在本发明实施方式的第四方面中,提供了一种基于区块链的用户数据授权装置,该装置应用于第二应用客户端,包括:请求模块,用于向第一应用客户端发送获取用户数据的请求。获取模块,用于按照预设规则获取授权信息;基于上述授权信息从区块链节点对应的区块链数据库中获取上述用户数据对应的加密用户数据;基于上述加密用户数据和上述授权信息获取上述用户数据。[0033]在本发明的一个实施例中,上述用户数据的加密用户数据包括:利用加密密钥对上述用户数据进行加密得到的加密用户数据。上述授权信息是基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息生成的。上述获取模块,用于根据上述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取上述加密用户数据;以及利用上述解密密钥对上述加密用户数据进行解密得到上述用户数据。[0034]在本发明的另一实施例中,上述用户数据的加密用户数据包括:利用加笛岔钥对上述用户数据的哈希值进行加密得到的加密用户数据。上述授权信息是基于上述加密密钥对应的解密密钥以及上述加密用户数据的标识信息生成的。上述获取模块,用于根据上述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取上述加密用户数据;以及利用上述解密密钥对上述加密用户数据进行解密得到上述用户数据的哈希值,并在根据上述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到上述用户数据。[0035]在本发明的又一实施例中,第二应用客户端的标识信息和上述授权信息对应存储于各区块链节点对应的区块链数据库中。上述获取模块,用于根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取上述授权信息。[0036]在本发明的再一实施例中,上述装置还包括:信息管理模块。信息管理模块,用于自行将第二应用客户端的标识信息和第二应用客户端的公钥发送至区块链节点,或者,用于通过第二应用服务器将第二应用客户端的标识信息和第二应用客户端的公钥发送至区块链节点,使得各区块链节点根据第二应用客户端的标识信息,将第二应用客户端的公钥存入各自对应的区块链数据库中。上述授权信息是利用第二应用客户端的公钥对上述解密密钥和上述加密用户数据的标识信息进行加密生成的。上述获取模块,用于利用第二应用客户端的私钥对上述授权信息进行解密,得到上述解密密钥和上述加密用户数据的标识信息。[0037]在本发明实施方式的第五方面中,提供了一种介质,存储有计算机可执行指令,指令在被处理器执行时用于实现:上述实施例中任一项所述的基于区块链的用户数据授权方法。[0038]在本发明实施方式的第六方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,处理器执行指令时实现:上述实施例中任一项所述的基于区块链的用户数据授权方法。[0039]根据本发明实施方式的基于区块链的用户数据授权方法和装置,一方面利用了区块链数据库中的数据不可被篡改的特性使得存入区块链数据库中的加密用户数据不会被篡改,另一方面利用了加密用户数据使得所对应的真实的用户数据不会被泄露。当第二应用客户端需要使用该用户数据时,第一应用客户端响应于第二应用客户端的请求生成授权信息,使得第二应用客户端能够基于该授权信息以及区块链数据库中的加密用户数据获取到相应的用户数据,形成了一种安全、有效的用户数据授权方案以实现不同应用之间的用户数据的共享,保证了不同应用之间在具有安全界限的前提下的互联互通。附图说明[0040]通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:[0041]图1示意性地示出了根据本发明实施方式的基于区块链的用户数据授权方法及其装置的应用场景;[0042]图2示意性地示出了根据本发明一个实施例的基于区块链的用户数据授权方法的流程图;[0043]图3示意性地示出了根据本发明另一个实施例的基于区块链的用户数据授权方法的流程图;[0044]图4示意性地示出了根据本发明一个实施例的基于区块链的用户数据授权装置的框图;[0045]图5A示意性地示出了根据本发明另一个实施例的基于区块链的用户数据授权装置的框图;[0046]图5B示意性地示出了根据本发明又一个实施例的基于区块链的用户数据授权装置的框图;_[0047]图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图;[0048]图7示意性地示出了根据本发明实施方式的计算设备的框图。[0049]在附图中,相同或对应的标号表示相同或对应的部分。具体实施方式[0050]下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。[0051]本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。[0052]根据本发明的实施方式,提出了一种基于区块链的用户数据授权方法、装置、介质和计算设备。[0053]在本文中,需要理解的是,所涉及的术语包括:用户数据、加密用户数据、区块链节点、区块链数据库等。其中,用户数据表示应用客户端与用户交互过程中所产生的与用户相关的数据,如用户的个人信息、用户的好友关系、用户的行为数据等,在此不做具体限制。力口密用户数据表示按照预设方式对用户数据进行处理所得到的处理结果,加密用户数据不同于用户数据。区块链节点表示构成区块链网络的计算节点,每个区块链节点具有对应的区块链数据库,每个区块链节点具有将数据写入其对应的区块链数据库的能力。区块链数据库由一个或多个区块数据结构链接而成,各区块链节点对应的区块链数据库中所存的数据是相同的。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。[0054]下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。[0055]发明概述[0056]在实现本公开构思的过程中,发明人发现,尽管应用的发展相当迅猛,但其基本格局却始终没有改变,不同的应用之间彼此隔离,一个应用中形成的数据不能给其他应用共享使用,用户与每个应用的交互所形成的行为数据或信息数据,只能局限于该应用使用范围内,而不能与其他应用共享使用,也不能与用户在其他应用中所形成的行为数据或信息数据相互关联。如何在保护用户数据的安全性的前提下实现用户数据在不同应用之间的共享,是当前需要解决的问题。[0057]为此,本发明实施例提供了一种基于区块链的用户数据授权方法和装置,从第一应用客户端的角度出发,该方法包括:将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将上述加密用户数据存入各自对应的区块链数据库中;响应于第二应用客户端获取上述用户数据的请求,生成授权信息;通知第二应用客户端按照预设规则获取上述授权信息,使得第二应用客户端基于上述授权信息从区块链节点对应的区块链数据库中获取上述加密用户数据,并基于上述加密用户数据和上述授权信息获取上述用户数据。其中,第一应用客户端将所形成的用户数据的加密用户数据存入区块链数据库中,使得加密用户数据不会被篡改,以及利用加密用户数据使得所对应的真实的用户数据不会被泄露。当第二应用客户端需要使用该用户数据时,第一应用客户端针对第二应用客户端的请求生成授权信息,使得第二应用客户端能够基于该授权信息以及区块链数据库中的加密用户数据获取到相应的用户数据,形成了一种安全、有效的用户数据授权方案以实现不同应用之间的用户数据的共享,保证了不同应用之间在具有安全界限的前提下的互联互通。[0058]在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。[0059]应用场景总览[0060]首先参考图1详细阐述本发明实施例的基于区块链的用户数据授权方法及其装置的应用场景。[0061]图1示意性地示出了根据本发明实施方式的基于区块链的用户数据授权方法及其装置的应用场景,在图1所示的应用场景中,包括终端设备100,终端设备100中包括多个应用客户端:APP1,APP2,APP3。应用客户端APP1与其后端的APP1服务器通过网络连接,由APP1服务器为应用客户端APP1提供服务和支持,应用客户端APP1的界面与用户进行交互,应用客户端APP1与用户交互过程中产生用户数据;应用客户端APP2与其后端的APP2服务器通过网络连接,由APP2服务器为应用客户端APP2提供服务和支持,应用客户端APP2的界面与用户进行交互,应用客户端APP2与用户交互过程中产生用户数据;应用客户端APP3与其后端的APP3服务器通过网络连接,由APP3服务器为应用客户端APP3提供服务和支持,应用客户端APP3的界面与用户进行交互,应用客户端APP3与用户交互过程中产生用户数据。[0062]终端设备100可以是具有显示屏并且支持应用客户端运行的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。应用客户端APP1,APP2,APP3中每一个均可以是任意应用客户端,例如可以是社交类应用客户端,可以是办公类应用客户端,可以是娱乐类应用客户端等等。APP1服务器可以是服务器或服务器集群,APP2服务器可以是服务器或服务器集群,APP3服务器可以是服务器或服务器集群,在此不做限制。应用客户端与其相应的服务器之间的网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。[0063]本发明实施例所提供的基于区块链的用户数据授权方法及其装置可以应用于应用客户端APP1,APP2,APP3中的任意一个或多个,在实施本发明实施例所提供的基于区块链的用户数据授权方法及其装置的情况下,应用客户端APP1,APP2,APP3可以通过基于区块链的用户数据授权的方案实现用户数据的共享。[0064]应该理解,图1中的终端设备、应用客户端和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、应用客户端和服务器。[0065]示例性方法[0066]下面结合图1的应用场景,参考图2〜图3来描述根据本发明示例性实施方式的基于区块链的用户数据授权方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。[0067]图2示意性地示出了根据本发明一个实施例的基于区块链的用户数据授权方法的流程图,该方法应用于第一应用客户端。如图2所示,该方法包括如下操作:[0068]操作S201,将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将加密用户数据存入各自对应的区块链数据库中;[0069]操作S202,响应于第二应用客户端获取所述用户数据的请求,生成授权信息;以及[0070]操作S203,通知第二应用客户端按照预设规则获取所述授权信息,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据。[0071]可见,通过图2所示的方法,第一应用客户端将所形成的用户数据的加密用户数据通过区块链节点存入区块链数据库中,一方面利用了区块链数据库中的数据不可被篡改的特性使得存入区块链数据库中的加密用户数据不会被篡改,另一方面利用了加密用户数据使得所对应的真实的用户数据不会被泄露。当不同于第一应用客户端的第二应用客户端需要使用该用户数据时,第二应用客户端向第一应用客户端发出请求,第一应用客户端针对该请求生成授权信息,使得第二应用客户端能够基于该授权信息从区块链数据库中获取相应的加密用户数据,并进一步能够基于该授权信息和所获取的加密用户数据获取到相应的用户数据,形成了一种安全、有效的用户数据授权方案以实现不同应用之间的用户数据的共享,保证了不同应用之间在具有安全界限的前提下的互联互通。[0072]在本发明的一个实施例中,用户数据可以是在用户使用第一应用客户端的过程中所产生的各种与用户相关的数据,如用户的个人信息、用户的好友关系、用户的行为数据等。第一应用客户端也可以是任意的应用客户端。第一应用客户端在产生用户数据后,基于该用户数据生成加密用户数据,将该加密用户数据发送至区块链节点,使得各区块链节点将该加密用户数据存入各自对应的区块链数据库中。[0073]作为一个可选的实施例,本方案中的区块链网络由多个区块链背书节点和区块链共识节点构成,上述操作S201中的区块链节点具体可以是区块链背书节点,第一应用客户端向区块链背书节点发送加密用户数据,区块链背书节点向区块链共识节点发送请求等待区块链共识节点对待处理池中的数据的共识验证,各区块链背书节点依照该共识验证将加密用户数据存入各自对应的区块链数据库中。[0074]作为一个可选的实施例,本方案中第一应用客户端将加密用户数据发送至区块链节点,触发部署于区块链节点中的智能合约,区块链节点将加密用户数据存入对应的区块链数据库的过程可以通过区块链节点运行该智能合约来完成。[0075]在本发明的一个实施例中,操作S201中的用户数据的加密用户数据包括:利用加密密钥对所述用户数据进行加密得到的加密用户数据。操作S202生成授权信息包括:基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息,生成授权信息。其中,操作S2〇3使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据,包括:使得第二应用客户端在获取到所述授权信息后,根据所述授权信息中的加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并利用所述授权信息中的解密密钥对所述加密用户数据进行解密得到所述用户数据。[0076]进一步地,在本实施例中,图2所示的方法还可以包括:接收区块链节点在将所述加密用户数据存入区块链数据库后返回的所述加密用户数据的标识信息。[0077]例如,第一应用客户端在产生用户数据X之后,利用某种加密密钥P对该用户数据X进行加密得到加密用户数据X’,该加密密钥P对应的解密密钥为P’,第一应用客户端将该加密用户数据X’发送至区块链节点,使得各区块链节点将该加密用户数据X’存入各自对应的区块链数据库中,第一应用客户端接收区块链节点在将该加密用户数据X’存入区块链数据库后返回的加密用户数据X’的标识信息,表示在区块链数据库中加密用户数据X’存储于以加密用户数据X’的标识信息为索引的数据结构中。第一应用客户端响应于第二应用客户端获取用户数据X的请求,基于解密密钥为P’和加密用户数据X’的标识信息生成授权信息。第一应用客户端通知第二应用客户端,第二应用客户端按照预设规则获取该授权信息,基于该授权信息中的加密用户数据X’的标识信息从任一区块链节点对应的区块链数据库中获取相应的加密用户数据X’,再利用授权信息中的解密密钥为P’对加密用户数据X’进行解密,得到用户数据X。本方案通过上述过程,使得第一应用客户端能够授权第二应用客户端使用第一应用客户端产生的用户数据X。[0078]在本发明的另一个实施例中,操作S201中的用户数据的加密用户数据包括:利用加密密钥对所述用户数据的哈希值进行加密得到的加密用户数据。操作S202生成授权信息包括:基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成授权信息。其中,第二应用客户端向第一应用客户端发送获取所述用户数据的请求之后,第二应用客户端通过预设方式接收用户数据,可以是第一应用客户端响应于第二应用客户端获取所述用户数据的请求将本地存储的指定用户数据发送给第二应用客户端,也可以是第一应用客户端响应于第二应用客户端获取所述用户数据的请求通知第一应用服务器,使得第一应用服务器将存储于第一应用服务器中的指定用户数据发送给第二应用客户端,也可以是第一应用客户端响应于第二应用客户端获取所述用户数据的请求通知其他第三方存储服务器,使得该第三方存储服务器将存储于其中的指定用户数据发送给第二应用客户端,还可以是第二应用客户端直接从第一应用服务器或者第三方存储服务器请求获取指定用户数据,在此不做限制。此时,第二应用客户端虽然接收到用户数据,但无法获知其接收到的用户数据是否是第二应用客户端请求获取的用户数据。因此,操作S203使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据,包括:使得第二应用客户端在获取到所述授权信息后,根据所述授权信息中的加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据,利用所述授权信息中的解密密钥对所述加密用户数据进行解密得到所述用户数据的哈希值,并在根据所述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到所述用户数据。[0079]进一步地,在本实施例中,图2所示的方法还可以包括:接收区块链节点在将所述加密用户数据存入区块链数据库后返回的所述加密用户数据的标识信息。[0080]例如,第一应用客户端在产生用户数据x之后,预存备份用户数据x于第一应用客户端本地、第一应用服务器中、和或其他第三方存储服务器中。接着,先计算用户数据X的哈希值,再利用某种加密密钥p对该用户数据X的哈希值进行加密得到加密用户数据X’,该加密密钥P对应的解密密钥为P’,第一应用客户端将该加密用户数据X’发送至区块链节点,使得各区块链节点将该加密用户数据X’存入各自对应的区块链数据库中,第一应用客户端接收区块链节点在将该加密用户数据X’存入区块链数据库后返回的加密用户数据X’的标识信息,表示在区块链数据库中加密用户数据X’存储于以加密用户数据X’的标识信息为索引的数据结构中。第一应用客户端响应于第二应用客户端获取用户数据x的请求,一方面,基于解密密钥为P’和加密用户数据X’的标识信息生成授权信息M,另一方面,将备份用户数据X发送给第二应用客户端,可以由第一应用客户端、第一应用服务器和或其他第三方存储服务器执行发送备份用户数据X的过程,在此不做限制。第一应用客户端通知第二应用客户端,第二应用客户端按照预设规则获取该授权信息M,基于该授权信息M中的加密用户数据X’的标识信息从任一区块链节点对应的区块链数据库中获取相应的加密用户数据X’,再利用授权信息中的解密密钥为P’对加密用户数据X’进行解密,得到用户数据X的哈希值。第二应用客户端根据所得到的用户数据X的哈希值验证接收到的备份用户数据X是否是正确的用户数据X,是则说明备份用户数据x在存储和或传输的过程中没有被篡改,可以使用,否则说明备份用户数据X在存储和或传输的过程中被篡改,无法使用。本方案通过上述过程,使得第一应用客户端能够授权第二应用客户端使用第一应用客户端产生的用户数据X。[0081]为了进一步增加授权过程的安全性,在本发明的一个实施例中,利用第二应用客户端的公钥和私钥在第二应用客户端获取授权信息的过程中发挥作用。具体地,第二应用客户端的标识信息和第二应用客户端的公钥对应存储于各区块链节点对应的区块链数据库中,即在区块链数据库中第二应用客户端的公钥存储于以第二应用客户端的标识信息为索引的数据结构中,例如该数据结构可以是键值对形式,以第二应用客户端的标识信息为键,以第二应用客户端的公钥为值。图2所示的方法还包括:响应于第二应用客户端的获取所述用户数据的请求,获取第二应用客户端的标识信息;根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取第二应用客户端的公钥。则操作“02基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息,生成授权信息包括:利用第二应用客户端的公钥对所述解密密钥和所述加密用户数据的标识信息进行加密,得到授权信息。其中,第二应用客户端在获取到所述授权信息后,利用第二应用客户端的私钥对所述授权信息进行解密,得到所述解密密钥和所述加密用户数据的标识信息。_[0082]在本发明的一个实施例中,上述对用户数据或用户数据的哈希值进行加密的加密密钥可以是按照预设变化规则动态变化的加密密钥。例如可以是,按照时间段不同而变化的加密密钥,按照不同的用户数据而变化的加密密钥。相应地,不同的加密密钥对应于不同的解密密钥。则对于产生的用户数据,都存储有对应于该用户数据的加密密钥和解密密钥。第一应用客户端可以在本地维护各用户数据对应的加密密钥和解密密钥,也可以通过其他应用客户端或存储服务器来维护各用户数据对应的加密密钥和解密密钥,在此不做限制。使用按照时间段不同而变化的加密密钥,可以实现对第二应用授权权限的时间控制,例如第二应用向第一应用申请一次授权,获得允许后的授权权限只在某一个时间段内有效。[0083]在本发明的一个实施例中,图2所示的方法还包括:第一应用客户端响应于第一应用客户端获取用户数据的请求,获取第二应用客尸端的标识佶息。弟一应用各尸牺仕王成授权信息后,将该授权信息和第二应用客户端的标识信息发送至区块链节点,使得各区块链节点根据所述第二应用客户端的标识信息,将所述授权信息存入各自对应的区块链数据库中。这样在区块链数据库中所述授权信息存储于以第二应用客户端的标识信息为索引的数据结构中。则操作S203通知第二应用客户端按照预设规则获取所述授权信息包括:通知第二应用客户端,使得第二应用客户端根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取所述授权信息。[0084]依据本实施例,将授权信息也存储于区块链数据库中,保证授权信息不会被篡改。在区块链数据库中,存储有以各应用客户端的标识信息为索引的数据结构,例如该数据结构可以是键值对的形式,以应用客户端的标识信息为键,以授权信息的相关数据为值」该授权信息的相关数据可以是授权信息本身,也可以是由授权信息与其他信息组成的多元组数据。如在以第二应用客户端的标识信息为索引的数据结构中,存储有一条或多条用户数据对应的授权信息,不同授权信息之间可以通过不同标识进行区分,例如可以通过序号进行区分,可以通过时间戳进行区分,也可以通过所对应的用户标识信息进行区分,等等,在此不做限制。例如可以是,第二应用客户端在按照预设规则获取某个授权信息¥时,先根据第二应用客户端的标识信息从任一区块链节点对应的区块链数据库中查找以第二应用客户端的标识信息为索引的授权信息的相关数据,在授权信息的相关数据中通过序号、时间戳、和或用户标识信息等查找到授权信息M。[0085]在本发明的一个实施例中,在对第二应用客户端进行授权操作前,可以先查看第二应用客户端的权限以明确是否可以对第二应用客户端进行授权。具体地,图2所示方法的操作S202响应于第二应用客户端获取所述用户数据的请求,生成授权信息包括:判断第二应用客户端是否具有获取权限,在第二应用客户端具有获取权限的情况下,生成授权信息。[0086]例如可以通过询问用户的方式来判断第二应用客户端是否具有获取权限,上述判断第二应用客户端是否具有获取权限包括:展示授权询问对话框;当接收到针对授权询问的确认输入时,确定第二应用客户端具有获取权限;以及,当接收到针对授权询问的否认输入时,确定第二应用客户端不具有获取权限。[0087]图3示意性地示出了根据本发明另一个实施例的基于区块链的用户数据授权方法的流程图,该方法应用于第二应用客户端。如图3所示,该方法包括如下操作:[0088]操作S301,向第一应用客户端发送获取用户数据的请求;[0089]操作S302,按照预设规则获取授权信息;以及[0090]操作S303,基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据;基于所述加密用户数据和所述授权信息获取所述用户数据。[0091]可见,通过图3所示的方法,当第二应用客户端需要使用不同于该第二应用客户端的第一应用客户端产生的用户数据时,向第一应用客户端发送获取用户数据的请求并获取相应的授权信息,基于该授权信息从区块链数据库中获取相应的加密用户数据,并进一步基于该授权信息和所获取的加密用户数据获取到相应的用户数据。其中加密用户数据存储于区块链数据库中,一方面利用区块链数据库中的数据不可被篡改的特性使得加密用户数据不会被篡改,另一方面利用加密用户数据使得所对应的真实的用户数据不被泄露,形成了一种安全、有效的用户数据授权方案以实现不同应用之间的用户数据的共享,保证了不同应用之间在具有安全界限的前提下的互联互通。[0092]在本发明的一个实施例中,用户数据的加密用户数据包括:利用加密密钥对所述用户数据进行加密得到的加密用户数据。所述授权信息是基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成的。操作S303基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据包括:根据所述授权信息中的加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据。操作S303基于所述加密用户数据和所述授权信息获取所述用户数据包括:利用所述授权信息中的解密密钥对所述加密用户数据进行解密得到所述用户数据。[0093]在本发明的另一个实施例中,用户数据的加密用户数据包括:利用加密密钥对所述用户数据的哈希值进行加密得到的加密用户数据。所述授权信息是基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成的。图3所示的方法还包括:第二应用客户端接收第一应用客户端、第一应用服务器和或其他存储服务器预存的备份用户数据。操作S303基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据包括:根据所述授权信息中的加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据。操作S303基于所述加密用户数据和所述授权信息获取所述用户数据包括:利用所述授权信息中的解密密钥对所述加密用户数据进行解密得到所述用户数据的哈希值,并在根据所述用户数据的哈希值验证接收到的备份用户数据正确的情况下确定获取到所述用户数据。[0094]在本发明的一个实施例中,第二应用客户端的标识信息和所述授权信息对应存储于各区块链节点对应的区块链数据库中。操作S302按照预设规则获取所述授权信息包括:根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取所述授权信息。[0095]依据本实施例,授权信息被存储于区块链数据库中,保证授权信息不会被篡改。在区块链数据库中,存储有以各应用客户端的标识信息为索引的数据结构,例如该数据结构可以是键值对的形式,以应用客户端的标识信息为键,以授权信息的相关数据为值,该授权信息的相关数据可以是授权信息本身,也可以是由授权信息与其他信息组成的多元组数据。如在以第二应用客户端的标识信息为索引的数据结构中,存储有一条或多条用户数据对应的授权信息,不同授权信息之间可以通过不同标识进行区分,例如可以通过序号进行区分,可以通过时间戳进行区分,也可以通过所对应的用户标识信息进行区分,等等,在此不做限制。第二应用客户端在按照预设规则获取某个授权信息M时,可以先根据第二应用客户端的标识信息从任一区块链节点对应的区块链数据库中查找以第二应用客户端的标识信息为索引的授权信息的相关数据,在多个授权信息的相关数据中通过序号、时间戳、和或用户标识信息等从该数据结构中查找到授权信息M。[0096]为了进一步增加授权过程的安全性,在本发明的一个实施例中,利用第二应用客户端的公钥和私钥在第二应用客户端获取授权信息的过程中发挥作用。图3所示的方法还包括:将第二应用客户端的标识信息和第二应用客户端的公钥发送至区块链节点,使得各区块链节点根据第二应用客户端的标识信息,将第二应用客户端的公钥存入各自对应的^块链数据库中。其中,在区块链数据库中第二应用客户端的公钥保存于以第二应用客户端的标识信息为索引的数据结构中,例如该数据结构可以是键值对形式,以第二应用客户端的标识信息为键,以第二应用客户端的公钥为值。所述授权信息是利用第二应用客户端的公钥对所述解密密钥和所述加密用户数据的标识信息进行加密生成的。操作S303基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据;基于所述加密用户数据和所述授权信息获取所述用户数据包括:利用第二应用客户端的私钥对所述授权信息进行解密,得到所述解密密钥和所述加密用户数据的标识信息。其中,将第二应用客户端的标识信息和第二应用客户端的对应公钥发送至区块链节点,可以是第二应用客户端直接将该标识信息和该公钥发送给区块链节点,也可以由第二应用服务器将该标识信息和该公钥发送给区块链节点。_[0097]以一个具体的实施例来示例性地说明图2〜图3所示的方案,第一应用客户端产生用户数据X,第一应用客户端将该加密用户数据x’发送至区块链节点,调用部署于区块链节点中的第一智能合约使得各区块链节点将该加密用户数据X’存入各自对应的区块链数据库中,第一应用客户端接收区块链节点在将该加密用户数据X’存入区块链数据库后返回的加密用户数据X,的标识信息。第一应用客户端维护或委托其他方维护用户数据x对应的加密密钥P和解密密钥P,。第二应用客户端生成公钥和私钥,第二应用客户端自行或通过第二应用服务器将第二应用客户端的标识信息和第二应用客户端的公钥发送至区块链节点,使得各区块链节点根据第二应用客户端的标识信息,将第二应用客户端的公钥存入各自对应的区块链数据库中。[0098]当第二应用客户端需要获取第一应用客户端产生的用户数据X时,第二应用客户端调用第一应用客户端的授权组件,第二应用客户端将第二应用客户端的标识信息通过授权组件的相应接口传递给第一应用客户端,第一应用客户端在屏幕上弹出一个授权询问对话框,当接收到用户针对授权询问的确认输入时,确定第二应用客户端具有获取权限,触发授权流程。[0099]第一应用客户端根据第二应用客户端触发授权询问对话框时传入的第二应用客户端的标识信息,调用部署于区块链节点中的第二智能合约,从区块链数据库中查询以第二应用客户端的标识信息为索引的第二应用客户端的应用信息,第一应用客户端从第二应用客户端的应用信息中获取到第二应用客户端的公钥。第一应用客户端利用第二应用客户端的公钥对解密密钥P’和加密用户数据X’的标识信息进行加密得到授权信息M,第一应用客户端将第二应用客户端的标识信息和所得到的授权信息M发送至区块链节点,调用部署于区块链节点中的第三智能合约使得各区块链节点根据第二应用客户端的标识信息将授权信息M存入各自对应的区块链数据库中,使得在区块链数据库中授权信息M存储于以第二应用客户端的标识信息为索引的数据结构中。第一应用客户端所弹出的授权询问对话框被关闭时,通过接口调用通知第二应用客户端。[0100]第二应用客户端在收到通知后,通过调用部署于区块链节点中的第四智能合约根据第二应用客户端的标识信息从区块链数据库中获取授权信息M。第二应用客户端利用第二应用客户端的私钥对授权信息M进行解密得到授权信息M中的解密密钥P’和加密用户数据X’的标识信息。第二应用客户端通过调用部署于区块链节点中的第五智能合约根据加密用户数据X’的标识信息从区块链数据库中获取加密用户数据X’,再利用解密密钥P’对加密用户数据X’进行解密得到用户数据X或用户数据X的哈希值。[0101]示例性装置[0102]在介绍了本发明示例性实施方式的方法之后,接下来,参考图4-图5B对本发明示例性实施方式的、用于实现基于区块链的用户数据授权装置进行详细阐述。[0103]图4示意性地示出了根据本发明一个实施例的基于区块链的用户数据授权装置的框图,该装置应用于第一应用客户端。如图4所示,该基于区块链的用户数据授权装置400包括:用户数据管理模块401,用于将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将所述加密用户数据存入各自对应的区块链数据库中。授权模块402,用于响应于第二应用客户端获取所述用户数据的请求,生成授权信息;通知第二应用客户端按照预设规则获取所述授权信息,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据。[0104]可见,通过图4所示的装置,第一应用客户端将所形成的用户数据的加密用户数据通过区块链节点存入区块链数据库中,一方面利用了区块链数据库中的数据不可被篡改的特性使得存入区块链数据库中的加密用户数据不会被篡改,另一方面利用了加密用户数据使得所对应的真实的用户数据不会被泄露。当不同于第一应用客户端的第二应用客户端需要使用该用户数据时,第二应用客户端向第一应用客户端发出请求,第一应用客户端针对该请求生成授权信息,使得第二应用客户端能够基于该授权信息从区块链数据库中获取相应的加密用户数据,并进一步能够基于该授权信息和所获取的加密用户数据获取到相应的用户数据,形成了一种安全、有效的用户数据授权方案以实现不同应用之间的用户数据的共享,保证了不同应用之间在具有安全界限的前提下的互联互通。[0105]在本发明的一个实施例中,用户数据的加密用户数据包括:利用加密密钥对所述用户数据进行加密得到的加密用户数据。授权模块402,用于基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息,生成授权信息,使得第二应用客户端在获取到所述授权信息后,根据所述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并利用所述解密密钥对所述加密用户数据进行解密得到所述用户数据。[0106]在本发明的另一个实施例中,用户数据的加密用户数据包括利用加密密钥对所述用户数据的哈希值进行加密得到的加密用户数据。授权模块402,用于基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息,生成授权信息,使得第二应用客户端在获取到所述授权信息后,根据所述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据,利用所述解密密钥对所述加密用户数据进行解密得到所述用户数据的哈希值,并在根据所述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到所述用户数据。[0107]在本发明的一个实施例中,授权模块402,还用于在生成授权信息后,将第二应用客户端的标识信息和所述授权信息发送至区块链节点,使得各区块链节点根据第二应用客户端的标识信息,将所述授权信息存入各自对应的区块链数据库中。授权模块4〇2,用于通知第二应用客户端,使得第二应用客户端根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取所述授权信息。[0108]在本发明的一个实施例中,第二应用客户端的标识信息和第二应用客户端的公钥对应存储于各区块链节点对应的区块链数据库中。授权模块402,还用于获取第二应用客户端的标识信息;根据第二应用客户端的标识信息从区块链节点对应的区块链数据库中获取第二应用客户端的公钥。授权模块402,用于利用第二应用客户端的公钥对所述解密密钥和所述加密用户数据的标识信息进行加密,得到授权信息。其中,第二应用客户端在获取到所述授权信息后,利用第二应用客户端的私钥对所述授权信息进行解密,得到所述解密密钥和所述加密用户数据的标识信息。[0109]在本发明的一个实施例中,授权模块402,还用于在响应于第二应用客户端获取所述用户数据的请求时,判断第二应用客户端是否具有获取权限,在第二应用客户端具有获取权限的情况下,生成授权信息。[0110]具体地,授权模块402,用于展示授权询问对话框;当接收到针对授权询问的确认输入时,确定第二应用客户端具有获取权限;当接收到针对授权询问的否认输入时,确定第二应用客户端不具有获取权限。[0111]在本发明的一个实施例中,加密密钥包括按照预设变化规则变化的加密密钥。[0112]在本发明的一个实施例中,用户数据管理模块401,还用于接收区块链节点在将所述加密用户数据存入区块链数据库后返回的所述加密用户数据的标识信息。[0113]图5A示意性地示出了根据本发明另一个实施例的基于区块链的用户数据授权装置的框图,该装置应用于第二应用客户端。如图5A所示,该基于区块链的用户数据授权装置500包括:请求模块501,用于向第一应用客户端发送获取用户数据的请求。获取模块502,用于按照预设规则获取授权信息;基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据;基于所述加密用户数据和所述授权信息获取所述用户数据。[0114]可见,通过图5A所示的装置,当第二应用客户端需要使用不同于该第二应用客户端的第一应用客户端产生的用户数据时,向第一应用客户端发送获取用户数据的请求并获取相应的授权信息,基于该授权信息从区块链数据库中获取相应的加密用户数据,并进一步基于该授权信息和所获取的加密用户数据获取到相应的用户数据。其中加密用户数据存储于区块链数据库中,一方面利用区块链数据库中的数据不可被篡改的特性使得加密用户数据不会被篡改,另一方面利用加密用户数据使得所对应的真实的用户数据不被泄露,形成了一种安全、有效的用户数据授权方案以实现不同应用之间的用户数据的共享,保证了不同应用之间在具有安全界限的前提下的互联互通。[0115]在本发明的一个实施例中,用户数据的加密用户数据包括:利用加密密钥对所述用户数据进行加密得到的加密用户数据。授权信息是基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成的。获取模块502,用于根据所述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据;以及利用所述解密密钥对所述加密用户数据进行解密得到所述用户数据。[0116]在本发明的另一个实施例中,用户数据的加密用户数据包括:利用加密密钥对所述用户数据的哈希值进行加密得到的加密用户数据。授权信息是基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成的。获取模块502,用于根据所述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据;以及利用所述解密密钥对所述加密用户数据进行解密得到所述用户数据的哈希值,并在根据所述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到所述用户数据。[0117]在本发明的一个实施例中,第二应用客户端的标识信息和所述授权信息对应存储于各区块链节点对应的区块链数据库中。获取模块502,用于根据苐二应用客尸顺的标识怡息从区块链节点对应的区块链数据库中获取所述授权信息。_[0118]图5B示意性地示出了根据本发明又一个实施例的基于区块链的用户数据授权装置的框图,该装置应用于第二应用客户端。如图5B所示,该基于区块链的用户数据授权装置510包括:请求模块501、获取模块502和信息管理模块5〇3。其中请求模块5〇1和获取模块5〇2在上文中己经说明,重复的部分不再赘述。[0119]信息管理模块503,用于自行将第二应用客户端的标识信息和第二应用客户端的公钥发送至区块链节点,或者,用于通过第二应用服务器将第二应用客户端的标识信息和第二应用客户端的公钥发送至区块链节点,使得各区块链节点根据第二应用客户端的标识信息,将第二应用客户端的公钥存入各自对应的区块链数据库中。[0120]获取模块502,用于利用第二应用客户端的私钥对所述授权信息进行解密,得到所述解密密钥和所述加密用户数据的标识信息。[0121]其中,授权信息是利用第二应用客户端的公钥对所述解密密钥和所述加密用户数据的标识信息进行加密生成的。[0122]需要说明的是,装置部分实施例中各模块单元子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。[0123]示例性介质[0124]在介绍了本发明示例性实施方式的方法和装置之后,接下来,对本发明示例性实施方式的、基于区块链的用户数据授权介质进行介绍。[0125]本发明实施例提供了一种介质,存储有计算机可执行指令,上述指令在被处理器执行时用于实现上述方法实施例中任一项所述的基于区块链的用户数据授权方法。[0126]在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的基于即时通信消息记录的区块链处理方法中的步骤,例如,所述计算设备可以执行如图2中所示的操作S201,将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将加密用户数据存入各自对应的区块链数据库中;操作S202,响应于第二应用客户端获取所述用户数据的请求,生成授权信息;以及操作S203,通知第二应用客户端按照预设规则获取所述授权信息,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据。当然,所述计算设备也可以执行如图3所示的操作步骤。[0127]所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子非穷举的列表包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存)、光纤、便携式紧凑盘只读存储器CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。[0128]图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图,如图6所示,描述了根据本发明的实施方式的基于区块链的用户数据授权的程序产品60,其可以采用便携式紧凑盘只读存储器CD-ROM并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。[0129]可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括一一但不限于一一电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。[0130]可读介质上包含的程序代码可以用任何适当的介质传输,包括一一但不限于一一无线、有线、光缆,RF等等,或者上述的任意合适的组合。[0131]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言--诸如Java,C++等,还包括常规的过程式程序设计语言一一诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络一一包括局域网(LAN或广域网WAN—连接到用户计算设备,或者,可以连接到外部计算设备例如利用因特网服务提供商来通过因特网连接。[0132]示例性计算设备[0133]在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,介绍根据本发明的另一示例性实施方式的基于区块链的用户数据授权计算设备。[0134]本发明实施例还提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现上述方法实施例中任一项所述的基于区块链的用户数据授权方法。[0135]所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,g卩:完全的硬件实施方式、完全的软件实施方式包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。[0136]在一些可能的实施方式中,根据本发明的基于区块链的用户数据授权计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的信息呈现方法中的步骤。例如,所述处理单元可以执行如图2中所示的:操作S2〇l,将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将加密用户数据存入各自对应的区块链数据库中;操作S202,响应于第二应用客户端获取所述用户数据的请求,生成授权信息;以及操作S2〇3,通知第二应用客户^5按照预设规则获取所述授权fg息,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据。当然,所述计算设备也可以执行如图3所示的操作步骤。[0137]下面参照图7来描述根据本发明的这种实施方式的基于区块链的用户数据授权计算设备70。如图7所示的计算设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。[0138]如图7所示,计算设备70以通用计算设备的形式表现。计算设备70的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件包括存储单元702和处理单元701的总线703。[0139]总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。[0140]存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器RAM7021和或高速缓存存储器7022,还可以进一步包括只读存储器ROM7023。[0141]存储单元702还可以包括具有一组(至少一个)程序模块7024的程序实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。[0142]计算设备70也可以与一个或多个外部设备704例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与计算设备70交互的设备通信,和或与使得计算设备70能与一个或多个其它计算设备进行通信的任何设备例如路由器、调制解调器等等通信。这种通信可以通过输入输出(IO接口705进行。并且,计算设备70还可以通过网络适配器706与一个或者多个网络例如局域网(LAN,广域网(WAN和或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与计算设备70的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备70使用其它硬件和或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。[0143]应当注意,尽管在上文详细描述中提及了基于即时通信消息记录的区块链处理装置的若干单元模块或子单元模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元模块的特征和功能可以在一个单元模块中具体化。反之,上文描述的一个单元模块的特征和功能可以进一步划分为由多个单元模块来具体化。[0144]此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和或将一个步骤分解为多个步骤执行。[0145]虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

权利要求:1.一种基于区块链的用户数据授权方法,应用于第一应用客户端,所述方法包括:将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将所述加密用户数据存入各自对应的区块链数据库中;响应于第二应用客户端获取所述用户数据的请求,生成授权信息;通知第二应用客户端按照预设规则获取所述授权信息,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据。2.根据权利要求1所述的方法,其中:所述用户数据的加密用户数据包括:利用加密密钥对所述用户数据进行加密得到的加密用户数据;所述生成授权信息包括:基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息,生成授权信息;其中,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据,包括:使得第二应用客户端在获取到所述授权信息后,根据所述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并利用所述解密密钥对所述加密用户数据进行解密得到所述用户数据。3.根据权利要求1所述的方法,其中:所述用户数据的加密用户数据包括:利用加密密钥对所述用户数据的哈希值进行加密得到的加密用户数据;所述生成授权信息包括:基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成授权信息;其中,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据,包括:使得第二应用客户端在获取到所述授权信息后,根据所述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据,利用所述解密密钥对所述加密用户数据进行解密得到所述用户数据的哈希值,并在根据所述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到所述用户数据。4.一种基于区块链的用户数据授权方法,应用于第二应用客户端,所述方法包括:向第一应用客户端发送获取用户数据的请求;按照预设规则获取授权信息;基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据;基于所述加密用户数据和所述授权信息获取所述用户数据。5.根据权利要求4所述的方法,其中:所述用户数据的加密用户数据包括:利用加密密钥对所述用户数据进行加密得到的加密用户数据;所述授权信息是基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成的;所述基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据包括:根据所述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据;所述基于所述加密用户数据和所述授权信息获取所述用户数据包括:利用所述解密密钥对所述加密用户数据进行解密得到所述用户数据。6.根据权利要求4所述的方法,其中:所述用户数据的加密用户数据包括:利用加密密钥对所述用户数据的哈希值进行加密得到的加密用户数据;所述授权信息是基于所述加密密钥对应的解密密钥以及所述加密用户数据的标识信息生成的;所述基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据包括:根据所述加密用户数据的标识信息从区块链节点对应的区块链数据库中获取所述加密用户数据;所述基于所述加密用户数据和所述授权信息获取所述用户数据包括:利用所述解密密钥对所述加密用户数据进行解密得到所述用户数据的哈希值,并在根据所述用户数据的哈希值验证接收到的用户数据正确的情况下确定获取到所述用户数据。7.—种基于区块链的用户数据授权装置,应用于第一应用客户端,所述装置包括:用户数据管理模块,用于将用户数据的加密用户数据发送至区块链节点,使得各区块链节点将所述加密用户数据存入各自对应的区块链数据库中;授权模块,用于响应于第二应用客户端获取所述用户数据的请求,生成授权信息;通知第二应用客户端按照预设规则获取所述授权信息,使得第二应用客户端基于所述授权信息从区块链节点对应的区块链数据库中获取所述加密用户数据,并基于所述加密用户数据和所述授权信息获取所述用户数据。8.—种基于区块链的用户数据授权装置,应用于第二应用客户端,所述装置包括:请求模块,用于向第一应用客户端发送获取用户数据的请求;获取模块,用于按照预设规则获取授权信息;基于所述授权信息从区块链节点对应的区块链数据库中获取所述用户数据对应的加密用户数据;基于所述加密用户数据和所述授权信息获取所述用户数据。9.一种介质,存储有计算机可执行指令,所述指令在被处理器执行时用于实现:如权利要求1至3中任一项所述的基于区块链的用户数据授权方法;和或如权利要求4至6中任一项所述的基于区块链的用户数据授权方法。10.—种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现:如权利要求1至3中任一项所述的基于区块链的用户数据授权方法;和或如权利要求4至6中任一项所述的基于区块链的用户数据授权方法。

百度查询: 网易(杭州)网络有限公司 基于区块链的用户数据授权方法、介质、装置和计算设备

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。