发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据安全性的数据调阅方法、装置、计算机设备和存储介质。
一种数据调阅方法,所述方法应用于区块链系统中的数据调阅节点;所述方法包括:
通过第一私钥,对所述数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密;所述第一私钥,为所述数据调阅节点的私钥;
将加密后的数据和所述第一私钥所对应的第一公钥存储至数据调阅区块中,并向所述区块链系统中各节点广播,以使所述区块链系统中的数据服务器节点根据所述第一公钥对所述加密后的数据进行解密后,对所述账户和密码进行验证,并在验证通过后获取与所述数据调阅请求对应的初始调阅数据;
从数据结果区块上,下载所述数据服务器节点所上传的通过第二私钥加密生成的数据结果报文和所述第二私钥对应的第二公钥;所述数据结果报文中,包括对所述数据服务器节点执行所述接口数据转化脚本对所述初始调阅数据转化后得到的目标调阅数据进行加密所得到的数据;所述第二私钥,为所述数据服务器节点的私钥;
根据所述第二公钥对所述数据结果报文进行解密,得到所述目标调阅数据。
在其中一个实施例中,在所述根据所述第二公钥对所述数据结果报文进行解密,得到所述目标调阅数据之后,所述方法还包括:
将对所述数据结果报文进行解密所得到的账户,与所述数据调阅节点的账户进行比对;
在账户比对通过后,将解密得到的所述目标调阅数据存储至数据存储区域。
一种数据调阅方法,所述方法应用于区块链系统中的数据服务器节点;所述方法包括:
从数据调阅区块上,下载所述区块链系统中的数据调阅节点所上传的通过第一私钥加密后的数据、以及所述第一私钥对应的第一公钥;所述加密后的数据,为根据所述第一私钥对所述数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密所得到的数据;所述第一私钥,为所述数据调阅节点的私钥;
根据所述第一公钥解密所述加密后的数据,并在对解密得到的所述账户和密码验证通过后,获取与解密得到的所述数据调阅请求对应的初始调阅数据;
执行解密得到的所述接口数据转化脚本,对所述初始调阅数据进行转化,得到目标调阅数据;
通过第二私钥,对所述目标调阅数据进行加密,生成数据结果报文;所述第二私钥,为所述数据服务器节点的私钥;
将所述数据结果报文和所述第二私钥所对应的第二公钥存储至数据结果区块中,并向所述区块链系统中各节点广播,以使所述数据调阅节点根据所述第二公钥对所述数据结果报文进行解密,得到所述目标调阅数据。
在其中一个实施例中,所述通过第二私钥,对所述目标调阅数据进行加密,生成数据结果报文包括:
通过第二私钥,对所述目标调阅数据和所述账户进行加密,生成数据结果报文;
其中,所述数据结果报文,用于指示所述数据调阅节点在对所述数据结果报文解密成功后,将解密得到的所述账户与所述数据调阅节点的账户进行比对,并在账户比对通过后,将解密得到的所述目标调阅数据存储至所述数据调阅节点中的数据存储区域。
在其中一个实施例中,在所述执行解密得到的所述接口数据转化脚本,对所述初始调阅数据进行转化,得到目标调阅数据之后,所述方法还包括:
当所述目标调阅数据的数据字段包括预设脱敏字段时,则对所述目标调阅数据进行脱敏处理,将脱敏后的数据作为新的目标调阅数据,并根据新的所述目标调阅数据,执行所述通过第二私钥,对所述目标调阅数据和所述账户进行加密及后续步骤。
在其中一个实施例中,在所述执行解密得到的所述接口数据转化脚本,对所述初始调阅数据进行转化,得到目标调阅数据之前,所述方法还包括:
识别所述接口数据转化脚本中的语句;
当识别到所述接口数据转化脚本所调阅的数据的数据字段不包括预设私密字段时,执行所述执行解密得到的所述接口数据转化脚本,对所述初始调阅数据进行转化及后续步骤;
当识别到所述接口数据转化脚本所调阅的数据的数据字段包括预设私密字段时,生成不可调阅信息,并通过所述第二私钥,对所述账户和所述不可调阅信息进行加密,生成不可调阅报文;
将所述不可调阅报文和所述第二公钥存储至消息区块,并向所述区块链系统中各节点广播,以使所述数据调阅节点根据所述第二公钥对所述不可调阅报文进行解密后,将解密得到的所述账户与所述数据调阅节点的账户进行比对,并在账户比对通过后展示解密得到的所述不可调阅信息。
一种区块链系统,所述系统包括至少一个数据调阅节点和至少一个数据服务器节点;
所述数据调阅节点,用于通过第一私钥,对所述数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密;将加密后的数据和所述第一私钥所对应的第一公钥存储至数据调阅区块中,并向所述区块链系统中各节点广播;所述第一私钥,为所述数据调阅节点的私钥;
所述数据服务器节点,用于从所述数据调阅区块上,下载所述数据调阅节点所上传的所述加密后的数据和所述第一公钥;根据所述第一公钥,对所述加密后数据进行解密;
所述数据服务器节点,还用于对解密后得到的所述账户和密码进行验证,并在验证通过后,获取与解密后得到的所述数据调阅请求对应的初始调阅数据;根据解密后得到的所述接口数据转化脚本,对所述初始调阅数据进行转化,得到目标调阅数据;
所述数据服务器节点,还用于通过第二私钥,对所述目标调阅数据进行加密,生成数据结果报文;将所述数据结果报文和所述第二私钥所对应的第二公钥存储至数据结果区块中,并向所述区块链系统中各节点广播;所述第二私钥,为所述数据服务器节点的私钥;
所述数据调阅节点,还用于从所述数据结果区块上,下载所述数据服务器节点所上传的所述数据结果报文和所述第二公钥;根据所述第二公钥,对所述数据结果报文进行解密,得到所述目标调阅数据。
一种数据调阅装置,所述装置设置于区块链系统中的数据调阅节点中;所述装置包括:
第一加密模块,用于通过第一私钥,对所述数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密;所述第一私钥,为所述数据调阅节点的私钥;
第一上链模块,用于将加密后的数据和所述第一私钥所对应的第一公钥存储至数据调阅区块中,并向所述区块链系统中各节点广播,以使所述区块链系统中的数据服务器节点根据所述第一公钥对所述加密后的数据进行解密后,对所述账户和密码进行验证,并在验证通过后获取与所述数据调阅请求对应的初始调阅数据;
第一下载模块,用于从数据结果区块上,下载所述数据服务器节点所上传的通过第二私钥加密的生成数据结果报文和所述第二私钥对应的第二公钥;所述数据结果报文中,包括对所述数据服务器节点执行所述接口数据转化脚本对所述初始调阅数据转化后得到的目标调阅数据进行加密所得到的数据;所述第二私钥,为所述数据服务器节点的私钥;
第一解密模块,用于根据所述第二公钥对所述数据结果报文进行解密,得到所述目标调阅数据。
一种数据调阅装置,所述装置设置于区块链系统中的数据服务器节点中;所述装置包括:
第二下载模块,用于从数据调阅区块上,下载所述区块链系统中的数据调阅节点所上传的通过第一私钥加密后的数据、以及所述第一私钥对应的第一公钥;所述加密后的数据,为根据所述第一私钥对所述数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密所得到的数据;所述第一私钥,为所述数据调阅节点的私钥;
第二解密模块,用于根据所述第一公钥解密所述加密后的数据,并在对解密得到的所述账户和密码验证通过后,获取与解密得到的所述数据调阅请求对应的初始调阅数据;
数据转化模块,用于执行解密得到的所述接口数据转化脚本,对所述初始调阅数据进行转化,得到目标调阅数据;
第二加密模块,用于通过第二私钥,对所述目标调阅数据进行加密,生成数据结果报文;所述第二私钥,为所述数据服务器节点的私钥;
第二上链模块,用于将所述数据结果报文和所述第二私钥所对应的第二公钥存储至数据结果区块中,并向所述区块链系统中各节点广播,以使所述数据调阅节点根据所述第二公钥对所述数据结果报文进行解密,得到所述目标调阅数据。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各实施例所述的数据调阅方法中的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行本申请各实施例所述的数据调阅方法中的步骤。
上述数据调阅方法、装置、计算机设备和存储介质,数据调阅节点和数据服务器节点之间基于区块链系统进行数据传输,将数据通过私钥加密,并将加密后的数据和对应的公钥一起存储至区块中,并向区块链系统中各节点广播,以使需要将数据传输至的节点下载区块中的数据,并根据公钥进行解密,从而得到数据。基于区块链系统,并通过公钥和私钥进行加解密,避免了传输过程中由于网络可能存在的安全隐患而导致数据泄露的问题,数据即使被区块链系统之外的设备恶意获取,也会因为得不到区块链系统的支持而无法进行解密,从而提高了数据调阅过程中的数据安全性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据调阅方法,可以应用于如图1所示的应用环境中。图中的区块链系统中包括至少一个数据调阅节点102和至少一个数据服务器节点104,形成联盟链,联盟链中的各节点之间通过网络进行通信。数据调阅节点102将账户和密码、接口数据转化脚本以及数据调阅请求进行加密后存储至数据调阅区块中,并向区块链系统中各节点广播。数据服务器节点104从数据调阅区块下载数据调阅节点102所存储的加密后的数据,在进行解密后,对账户和密码进行验证,并在验证通过后,获取与数据调阅请求对应的初始调阅数据,然后执行接口数据转化脚本,将初始调阅数据转化为目标调阅数据,再将目标调阅数据进行加密后存储至数据结果区块,并向区块链中各节点广播。数据调阅节点102从数据结果区块下载数据服务器节点104所存储的加密后的数据,并进行解密,得到目标调阅数据。其中,数据调阅节点102可以为终端或服务器。数据服务器节点104可以为服务器。
在一个实施例中,如图2所示,提供了一种数据调阅方法,以该方法应用于图1中的数据调阅节点为例进行说明,包括以下步骤:
S202,通过第一私钥,对数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密;第一私钥,为数据调阅节点的私钥。
其中,数据调阅节点,是在区块链系统中从数据调阅服务器调阅数据的节点。数据调阅节点的账户和密码,是数据调阅节点从数据服务器节点调阅数据的凭证。接口数据转化脚本,是用于将初始调阅数据转化为目标调阅数据的脚本。初始调阅数据,是用于得到目标调阅数据的、且为数据库中存储的原始数据。目标调阅数据,是数据调阅节点所需要调阅的数据。数据调阅请求,用于指示数据服务器节点调取所需调阅的数据,并将调取的数据反馈给数据调阅节点。
在一个实施例中,数据调阅节点的账户和密码,可以由区块链系统中的数据服务器节点生成。在其他实施例中,数据调阅节点的账户和密码,也可以由其他设备生成,不做限定。
在一个实施例中,接口数据转化脚本,是数据调阅节点根据调阅的数据需求所生成的脚本。比如:数据调阅节点需要调阅某企业一月份的净利润,那么,接口数据转化脚本则为用于将数据库中存储的该企业一月份的原始交易数据转化为该企业一月份的净利润的脚本。
S204,将加密后的数据和第一私钥所对应的第一公钥存储至数据调阅区块中,并向区块链系统中各节点广播,以使区块链系统中的数据服务器节点根据第一公钥对加密后的数据进行解密后,对账户和密码进行验证,并在验证通过后获取与数据调阅请求对应的初始调阅数据。
其中,第一公钥,是与第一私钥对应的数据调阅节点的公钥。数据调阅区块,是区块链系统中用于存储与数据调阅请求相关的数据的区块。
具体地,数据调阅节点可以将加密后的数据和第一公钥一起对应地存储至数据调阅区块中,并向区块链系统中的各节点广播数据调阅区块上新的消息。数据服务器节点可以在接收到数据调阅区块上新的消息后,从数据调阅区块下载数据调阅节点所存储的加密后的数据,对加密后的数据进行解密,得到数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求。数据服务器节点可以对解密得到的账户和密码进行验证,即,将解密得到的账户和密码与数据服务器节点所存储的账户和密码进行比对,如果数据服务器节点所存储的账户和密码中存在与解密得到的账户和密码一致的账户和密码,则判定验证通过(即,数据调阅节点具有从该数据服务器节点调阅数据的权限)。在验证通过后,数据服务器节点可以根据数据调阅请求,从数据库中获取对应的初始调阅数据。
在一个实施例中,当验证未通过时,数据服务器节点则不执行根据数据调阅请求获取对应的初始调阅数据及后续步骤。可以理解,当验证未通过时,表明数据调阅节点不具有从该数据服务器节点调阅数据的权限,因此,该数据服务器节点不执行用于调取数据的后续步骤。数据服务器节点可以生成验证未通过信息,并通过第二私钥对验证未通过信息进行加密,生成验证未通过报文,并将验证未通过报文和第二公钥上传至消息区块中,并向区块链系统中的各节点广播消息区块上新的消息。数据调阅节点可以在接收到消息区块上新的消息后,从消息区块下载验证未通过报文和第二公钥,并通过第二公钥解密验证未公告报文,得到验证未通过信息。
S206,从数据结果区块上,下载数据服务器节点所上传的通过第二私钥加密生成的数据结果报文和第二私钥对应的第二公钥;数据结果报文中,包括对数据服务器节点执行接口数据转化脚本对初始调阅数据转化后得到的目标调阅数据进行加密所得到的数据;第二私钥,为数据服务器节点的私钥。
其中,数据结果区块,是区块链系统中用于存储至少包括数据服务器节点响应于数据调阅请求所反馈的目标调阅数据的区块。第二公钥,是与第二私钥对应的数据服务器节点的公钥。数据结果报文,是数据服务器节点响应于数据调阅请求所反馈的加密后的结果。
具体地,数据服务器节点可以执行接口数据转化脚本,将初始调阅数据转化为目标调阅数据。比如:数据调阅节点所发送的数据调阅请求需要调阅某企业一月份的净利润,那么,数据服务器节点则可以从数据库中获取该企业一月份的原始交易数据(即,初始调阅数据),然后执行接口数据转化脚本,将该企业一月份的原始交易数据转化为该企业一月份的净利润(即,目标调阅数据)。然后,数据服务器节点可以通过第二私钥将目标调阅数据进行加密,生成数据结果报文,并将数据结果报文和第二公钥一起对应地存储至数据结果区块中,并向区块链中的各节点广播数据结果区块上新的消息。数据调阅节点在接收到数据结果区块上新的消息后,从数据结果区块下载数据结果报文和第二公钥。
S208,根据第二公钥对数据结果报文进行解密,得到目标调阅数据。
在一个实施例中,数据服务器节点可以将解密得到的账户和目标调阅数据一起加密,生成数据结果报文。数据调阅节点可以根据第二公钥,对数据结果报文进行解密,得到账户和目标调阅数据。数据调阅节点可以先将解密得到的账户与该数据调阅节点本身的账户进行对比,当账户比对通过时,表明解密得到的目标调阅数据为该数据调阅节点所调阅的数据,则将目标调阅数据推送至前端进行展示。当账户比对未通过时,表明解密得到的目标调阅数据不是本数据调阅节点所调阅的数据(即,是区块链系统中除本数据调阅节点之外的数据调阅节点所调阅的数据),则不将目标调阅数据推送至前端进行展示。
上述数据调阅方法中,数据调阅节点和数据服务器节点之间基于区块链系统进行数据传输,将数据通过私钥加密,并将加密后的数据和对应的公钥一起存储至区块中,并向区块链系统中各节点广播,以使需要将数据传输至的节点下载区块中的数据,并根据公钥进行解密,从而得到数据。基于区块链系统,并通过公钥和私钥进行加解密,避免了传输过程中由于网络可能存在的安全隐患而导致数据泄露的问题,数据即使被区块链系统之外的设备恶意获取,也会因为得不到区块链系统的支持而无法进行解密,从而提高了数据调阅过程中的数据安全性。此外,数据服务器节点通过执行数据接口脚本,将初始调阅数据转化为目标调阅数据,从而只将目标调阅数据反馈给数据调阅节点,而不反馈初始调阅数据(即,数据库中的原始数据),从而能够保护原始数据,避免原始数据中的重要信息被泄露。
在一个实施例中,在根据第二公钥对数据结果报文进行解密,得到目标调阅数据的步骤之后,该方法还包括如下步骤:将对数据结果报文进行解密所得到的账户,与数据调阅节点的账户进行比对;在账户比对通过后,将解密得到的目标调阅数据存储至数据存储区域。
在一个实施例中,数据存储区域,可以包括数据库和数据存储文件等中的至少一种。
具体地,数据服务器节点可以将解密得到的账户和目标调阅数据一起加密,生成数据结果报文。数据调阅节点可以根据第二公钥,对数据结果报文进行解密,得到账户和目标调阅数据。数据调阅节点可以先将解密得到的账户与该数据调阅节点本身的账户进行对比,当账户比对通过(即,解密得到的账户与该数据调阅节点本身的账户是一致的)时,表明解密得到的目标调阅数据为该数据调阅节点所调阅的数据,则将目标调阅数据存储至该数据调阅节点中的数据存储区域,以使数据调阅节点对存储的目标调阅数据进行展示或应用等处理。
可以理解,解密和账户比对等处理均在数据调阅节点中区块链系统的底层自动进行,因此,解密所得到的目标调阅数据在数据调阅节点的本地是不可见的。只有当账户比对通过后,区块链系统的底层才将目标调阅数据存储至该数据调阅节点中的数据存储区域,此时目标调阅数据才在数据调阅节点的本地可见。
本实施例中,数据调阅节点对数据结果报文解密后,先对解密得到的账户进行比对,在账户比对通过后,再将目标调阅数据存储至该数据调阅节点中的数据存储区域,从而避免因将非本数据调阅节点所调阅的数据错误地存储至本数据调阅节点中而导致数据泄露等问题。
在一个实施例中,如图3所示,提供了一种数据调阅方法,以该方法应用于图1中的数据服务器节点为例进行说明,包括以下步骤:
S302,从数据调阅区块上,下载区块链系统中的数据调阅节点所上传的通过第一私钥加密后的数据、以及第一私钥对应的第一公钥;加密后的数据,为根据第一私钥对数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密所得到的数据;第一私钥,为数据调阅节点的私钥。
具体地,数据调阅节点可以通过第一私钥,对数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密,并将加密后的数据和第一公钥一起对应地存储至数据调阅区块中,并向区块链系统中的各节点广播数据调阅区块上新的消息。数据服务器节点可以在接收到数据调阅区块上新的消息后,从数据调阅区块下载数据调阅节点所上传的加密后的数据和第一公钥。
S304,根据第一公钥解密加密后的数据,并在对解密得到的账户和密码验证通过后,获取与解密得到的数据调阅请求对应的初始调阅数据。
具体地,数据服务器节点可以根据第一公钥,对加密后的数据进行解密,得到数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求。数据服务器节点可以先对解密得到的账户和密码进行验证,即,将解密得到的账户和密码与数据服务器节点所存储的账户和密码进行比对,如果数据服务器节点所存储的账户和密码中存在与解密得到的账户和密码一致的账户和密码,则判定验证通过(即,数据调阅节点具有从该数据服务器节点调阅数据的权限)。在验证通过后,数据服务器节点可以根据解密得到的数据调阅请求,从数据库中获取对应的初始调阅数据。
S306,执行解密得到的接口数据转化脚本,对初始调阅数据进行转化,得到目标调阅数据。
具体地,数据服务器节点可以执行解密得到的接口数据转化脚本,对初始调阅数据进行转化,得到目标调阅数据。比如:数据调阅节点所发送的数据调阅请求需要调阅某企业一月份的净利润,那么,数据服务器节点则可以从数据库中获取该企业一月份的原始交易数据(即,初始调阅数据),然后执行接口数据转化脚本,将该企业一月份的原始交易数据转化为该企业一月份的净利润(即,目标调阅数据)。
在一个实施例中,当数据服务器节点执行解密得到的接口数据转化脚本出现错误时,数据服务器节点可以生成脚本执行错误信息,并通过第二私钥对脚本执行错误信息和解密得到的账户进行加密,生成脚本执行错误报文。其中脚本执行错误信息,用于提示执行脚本出现错误的提示性信息。数据服务器节点可以将脚本执行错误报文和第二公钥一起对应地存储至消息区块中,并向区块链中的各节点广播消息区块上新的消息。数据调阅节点在接收到消息区块上新的消息后,可以从消息区块下载第二公钥和脚本执行错误报文,并通过第二公钥对脚本执行错误报文进行解密,得到账户和脚本执行错误信息。数据调阅节点可以先将解密得到的账户与该数据调阅节点本身的账户进行比对,并在账户比对通过后,展示解密得到的脚本执行错误信息。
S308,通过第二私钥,对目标调阅数据进行加密,生成数据结果报文;第二私钥,为数据服务器节点的私钥。
具体地,数据服务器节点可以通过第二私钥,对目标调阅数据进行加密,生成数据结果报文。
S310,将数据结果报文和第二私钥所对应的第二公钥存储至数据结果区块中,并向区块链系统中各节点广播,以使数据调阅节点根据第二公钥对数据结果报文进行解密,得到目标调阅数据。
具体地,数据服务器节点可以将数据结果报文和第二公钥存储至数据结果区块中,并向区块链系统中的各节点广播数据结果区块上新的消息。数据调阅节点在接收到数据结果区块上新的消息后,从数据结果区块下载第二公钥和数据结果报文,然后根据第二公钥对数据结果报文进行解密,得到目标调阅数据。
上述数据调阅方法中,数据调阅节点和数据服务器节点之间基于区块链系统进行数据传输,将数据通过私钥加密,并将加密后的数据和对应的公钥一起存储至区块中,并向区块链系统中各节点广播,以使需要将数据传输至的节点下载区块中的数据,并根据公钥进行解密,从而得到数据。基于区块链系统,并通过公钥和私钥进行加解密,避免了传输过程中由于网络可能存在的安全隐患而导致数据泄露的问题,数据即使被区块链系统之外的设备恶意获取,也会因为得不到区块链系统的支持而无法进行解密,从而提高了数据调阅过程中的数据安全性。此外,数据服务器节点通过执行数据接口脚本,将初始调阅数据转化为目标调阅数据,从而只将目标调阅数据反馈给数据调阅节点,而不反馈初始调阅数据(即,数据库中的原始数据),从而能够保护原始数据,避免原始数据中的重要信息被泄露。
在一个实施例中,通过第二私钥,对目标调阅数据进行加密,生成数据结果报文的步骤,具体包括如下步骤:通过第二私钥,对目标调阅数据和账户进行加密,生成数据结果报文。其中,数据结果报文,用于指示数据调阅节点在对数据结果报文解密成功后,将解密得到的账户与数据调阅节点的账户进行比对,并在账户比对通过后,将解密得到的目标调阅数据存储至数据调阅节点中的数据存储区域。
在一个实施例中,数据存储区域,可以包括数据库和数据存储文件等中的至少一种。
具体地,数据服务器节点可以通过第二私钥,对目标调阅数据和解密得到的账户进行加密,生成数据结果报文,并存储至数据结果区块中。数据调阅节点可以根据第二公钥,对数据结果报文进行解密,得到账户和目标调阅数据。数据调阅节点可以先将解密得到的账户与该数据调阅节点本身的账户进行比对,当账户比对通过(即,解密得到的账户与该数据调阅节点本身的账户是一致的)时,表明解密得到的目标调阅数据为该数据调阅节点所调阅的数据,则将解密得到的目标调阅数据存储至该数据调阅节点中的数据存储区域,以使数据调阅节点对存储的目标调阅数据进行展示或应用等处理。当账户比对未通过时,表明解密得到的目标调阅数据不是本数据调阅节点所调阅的数据(即,是区块链系统中除本数据调阅节点之外的数据调阅节点所调阅的数据),则不将目标调阅数据存储至该数据调阅节点中的数据存储区域。
可以理解,解密和账户比对等处理均在数据调阅节点中区块链系统的底层自动进行,因此,解密所得到的目标调阅数据在数据调阅节点的本地是不可见的。只有当账户比对通过后,区块链系统的底层才将目标调阅数据存储至该数据调阅节点中的数据存储区域,此时目标调阅数据才在数据调阅节点的本地可见。
本实施例中,数据调阅节点对数据结果报文解密后,先对解密得到的账户进行比对,在账户比对通过后,再将目标调阅数据存储至该数据调阅节点中的数据存储区域,从而避免将非本数据调阅节点所调阅的数据错误地存储至本数据调阅节点中而导致数据泄露等问题。
在一个实施例中,在执行解密得到的接口数据转化脚本,对初始调阅数据进行转化,得到目标调阅数据的步骤之后,该方法还包括如下步骤:当目标调阅数据的数据字段包括预设脱敏字段时,则对目标调阅数据进行脱敏处理,将脱敏后的数据作为新的目标调阅数据,并根据新的目标调阅数据,执行通过第二私钥,对目标调阅数据和账户进行加密及后续步骤。
其中,预设脱敏字段,是预设的需要进行脱敏处理后才可以反馈给数据调阅节点的数据字段。即,预设的不可以直接反馈给数据调阅节点的数据字段。
可以理解,当数据调阅节点所调阅的目标调阅数据中需要包含预设脱敏字段才能完整时,数据服务器节点可以先对预设脱敏字段的数据进行脱敏处理,然后再将脱敏后的新的目标调阅数据反馈给数据调阅节点。比如:数据调阅节点所请求调阅的数据为某企业的各上游公司的全年营业额,而上游公司的名称为预设脱敏字段,不可以直接反馈给数据调阅节点,数据服务器节点可以先对各上游公司的名称进行脱敏处理,然后将各上游公司全年的营业额、以及脱敏后的各上游公司的名称作为新的目标调阅数据,通过第二私钥进行加密后上传至数据结果区块,从而反馈给数据调阅节点。
本实施例中,当执行接口数据转化脚本生成的目标调阅数据中包含预设脱敏字段时,则先对目标调阅数据进行脱敏处理,然后将脱敏后的新的目标调阅数据进行反馈,能够保障数据服务器节点中的原始数据中敏感数据的安全性。
在一个实施例中,在执行解密得到的接口数据转化脚本,对初始调阅数据进行转化,得到目标调阅数据的步骤之前,该方法还包括如下步骤:识别接口数据转化脚本中的语句;当识别到接口数据转化脚本所调阅的数据的数据字段不包括预设私密字段时,执行解密得到的接口数据转化脚本,对初始调阅数据进行转化及后续步骤;当识别到接口数据转化脚本所调阅的数据的数据字段包括预设私密字段时,生成不可调阅信息,并通过第二私钥,对账户和不可调阅信息进行加密,生成不可调阅报文;将不可调阅报文和第二公钥存储至消息区块,并向区块链系统中各节点广播,以使数据调阅节点根据第二公钥对不可调阅报文进行解密后,将解密得到的账户与数据调阅节点的账户进行比对,并在账户比对通过后展示解密得到的不可调阅信息。
其中,预设私密字段,是预设的不可以被调阅的字段。不可调阅信息,是用于提示数据调阅节点所请求调阅的数据为不可以被调阅的私密数据的提示性信息。消息区块,是区块链系统中用于存储消息类的信息的区块。
在一个实施例中,接口数据转化脚本所调阅的数据的数据字段包括预设私密字段,可以包括:接口数据转化脚本在生成目标调阅数据过程中所需使用的数据字段中包含不可用的字段、以及执行接口数据转化脚本所生成的目标调阅数据的数据字段中包含不可展示的字段等中的至少一种情况。相应地,不可调阅信息,可以包括用于提示数据调阅节点所请求调阅的数据需要使用不可用的数据字段的提示性信息、以及用于提示数据调阅节点所请求调阅的数据包括不可展示的数据字段的提示性信息等中的至少一种。
具体地,数据服务器节点在执行接口数据转化脚本之前,可以先识别接口数据转化脚本中的语句,当识别到接口数据转化脚本所调阅的数据的数据字段不包括预设私密字段时,则执行接口数据转化脚本,对初始调阅数据进行转化,得到目标调阅数据。当识别到接口数据转化脚本所调阅的数据的数据字段包括预设私密字段时,则生成不可调阅信息,并通过第二私钥,对解密得到的账户和不可调阅信息进行加密,生成不可调阅报文。然后,数据服务器节点可以将不可调阅报文和第二公钥存储至消息区块,并向区块链系统中的各节点广播消息区块上新的消息。数据调阅节点可以在接收到消息区块上新的消息后,根据第二公钥,对不可调阅报文进行解密,得到账户和不可调阅信息。数据调阅节点可以先将解密得到的账户与该数据调阅节点本身的账户进行比对,并在账户比对通过后展示解密得到的不可调阅信息,以提示所请求调阅的数据为不可以被调阅的私密数据。
本实施例中,数据服务器节点可以识别接口数据转化脚本中的语句,当识别到接口数据转化脚本所调阅的数据的数据字段包括预设私密字段时,数据服务器节点则不反馈数据调阅节点所请求调阅的数据,并通过消息区块反馈不可调阅信息给数据调阅节点,从而提示数据调阅节点所请求调阅的数据为不可以被调阅的私密数据。避免了数据库中重要或私密的数据被泄露,保障了数据库中的重要或私密的数据的安全性。
在一个实施例中,如图4所示,提供了一种数据调阅方法的时序图,该时序图具体包括如下步骤:
S1、数据调阅节点通过第一私钥,对账号和密码、接口数据转化脚本以及数据调阅请求进行加密;
S2、数据调阅节点将加密后的数据和第一公钥存储至数据调阅区块,并广播;
S3、数据服务器节点从数据调阅区块下载第一公钥和加密后的数据;
S4、数据服务器节点通过第一公钥对加密后的数据进行解密;
S5、数据服务器节点对解密得到的账户和密码进行验证;
S6、数据服务器节点在验证通过后,获取数据调阅请求对应的初始调阅数据;
S7、数据服务器节点执行接口数据转化脚本,将初始调阅数据转化为目标调阅数据;
S8、数据服务器节点通过第二私钥,对目标调阅数据和账户进行加密,生成数据结果报文;
S9、数据服务器节点将数据结果报文和第二公钥存储至数据结果区块,并广播;
S10、数据调阅节点从数据结果区块下载第二公钥和数据结果报文;
S11、数据调阅节点通过第二公钥,对数据结果报文进行解密,得到目标调阅数据和账户;
S12、数据调阅节点对账户进行比对,在账户比对通过后,将目标调阅数据存储至数据存储区域。
在一个实施例中,提供了一种区块链系统,该系统包括至少一个数据调阅节点和至少一个数据服务器节点。其中:
数据调阅节点,用于通过第一私钥,对数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密;将加密后的数据和第一私钥所对应的第一公钥存储至数据调阅区块中,并向区块链系统中各节点广播;第一私钥,为数据调阅节点的私钥。
数据服务器节点,用于从数据调阅区块上,下载数据调阅节点所上传的加密后的数据和第一公钥;根据第一公钥,对加密后数据进行解密。
数据服务器节点,还用于对解密后得到的账户和密码进行验证,并在验证通过后,获取与解密后得到的数据调阅请求对应的初始调阅数据;根据解密后得到的接口数据转化脚本,对初始调阅数据进行转化,得到目标调阅数据。
数据服务器节点,还用于通过第二私钥,对目标调阅数据进行加密,生成数据结果报文;将数据结果报文和第二私钥所对应的第二公钥存储至数据结果区块中,并向区块链系统中各节点广播;第二私钥,为数据服务器节点的私钥。
数据调阅节点,还用于从数据结果区块上,下载数据服务器节点所上传的数据结果报文和第二公钥;根据第二公钥,对数据结果报文进行解密,得到目标调阅数据。
应该理解的是,虽然图2和3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种数据调阅装置500,该装置设置于区块链系统中的数据调阅节点中。该装置包括:第一加密模块502、第一上链模块504、第一下载模块506和第一解密模块508,其中:
第一加密模块502,用于通过第一私钥,对数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密;第一私钥,为数据调阅节点的私钥。
第一上链模块504,用于将加密后的数据和第一私钥所对应的第一公钥存储至数据调阅区块中,并向区块链系统中各节点广播,以使区块链系统中的数据服务器节点根据第一公钥对加密后的数据进行解密后,对账户和密码进行验证,并在验证通过后获取与数据调阅请求对应的初始调阅数据。
第一下载模块506,用于从数据结果区块上,下载数据服务器节点所上传的通过第二私钥加密生成的数据结果报文和第二私钥对应的第二公钥;数据结果报文中,包括对数据服务器节点执行接口数据转化脚本对初始调阅数据转化后得到的目标调阅数据进行加密所得到的数据;第二私钥,为数据服务器节点的私钥。
第一解密模块508,用于根据第二公钥对数据结果报文进行解密,得到目标调阅数据。
在一个实施例中,第一解密模块508还用于将对数据结果报文进行解密所得到的账户,与数据调阅节点的账户进行比对;在账户比对通过后,将解密得到的目标调阅数据存储至数据存储区域。
在一个实施例中,如图6所示,提供了一种数据调阅装置600,该装置设置于区块链系统中的数据服务器节点中。该装置包括:第二下载模块602、第二解密模块604、数据转化模块606、第二加密模块608和第二上链模块610,其中:
第二下载模块602,用于从数据调阅区块上,下载区块链系统中的数据调阅节点所上传的通过第一私钥加密后的数据、以及第一私钥对应的第一公钥;加密后的数据,为根据第一私钥对数据调阅节点的账户和密码、接口数据转化脚本以及数据调阅请求进行加密所得到的数据;第一私钥,为数据调阅节点的私钥。
第二解密模块604,用于根据第一公钥解密加密后的数据,并在对解密得到的账户和密码验证通过后,获取与解密得到的数据调阅请求对应的初始调阅数据。
数据转化模块606,用于执行解密得到的接口数据转化脚本,对初始调阅数据进行转化,得到目标调阅数据。
第二加密模块608,用于通过第二私钥,对目标调阅数据进行加密,生成数据结果报文;第二私钥,为数据服务器节点的私钥。
第二上链模块610,用于将数据结果报文和第二私钥所对应的第二公钥存储至数据结果区块中,并向区块链系统中各节点广播,以使数据调阅节点根据第二公钥对数据结果报文进行解密,得到目标调阅数据。
在一个实施例中,第二加密模块608还用于通过第二私钥,对目标调阅数据和账户进行加密,生成数据结果报文。其中,数据结果报文,用于指示数据调阅节点在对数据结果报文解密成功后,将解密得到的账户与数据调阅节点的账户进行比对,并在账户比对通过后,将解密得到的目标调阅数据存储至数据调阅节点中的数据存储区域。
在一个实施例中,如图7所示,数据调阅装置600还包括:
消息反馈模块612,用于当目标调阅数据的数据字段包括预设脱敏字段时,则对目标调阅数据进行脱敏处理,将脱敏后的数据作为新的目标调阅数据,并根据新的目标调阅数据,执行通过第二私钥,对目标调阅数据和账户进行加密及后续步骤。
在一个实施例中,消息反馈模块612还用于识别接口数据转化脚本中的语句;当识别到接口数据转化脚本所调阅的数据的数据字段不包括预设私密字段时,执行执行解密得到的接口数据转化脚本,对初始调阅数据进行转化及后续步骤;当识别到接口数据转化脚本所调阅的数据的数据字段包括预设私密字段时,生成不可调阅信息,并通过第二私钥,对账户和不可调阅信息进行加密,生成不可调阅报文;将不可调阅报文和第二公钥存储至消息区块,并向区块链系统中各节点广播,以使数据调阅节点根据第二公钥对不可调阅报文进行解密后,将解密得到的账户与数据调阅节点的账户进行比对,并在账户比对通过后展示解密得到的不可调阅信息。
上述数据调阅装置中,数据调阅节点和数据服务器节点之间基于区块链系统进行数据传输,将数据通过私钥加密,并将加密后的数据和对应的公钥一起存储至区块中,并向区块链系统中各节点广播,以使需要将数据传输至的节点下载区块中的数据,并根据公钥进行解密,从而得到数据。基于区块链系统,并通过公钥和私钥进行加解密,避免了传输过程中由于网络可能存在的安全隐患而导致数据泄露的问题,数据即使被区块链系统之外的设备恶意获取,也会因为得不到区块链系统的支持而无法进行解密,从而提高了数据调阅过程中的数据安全性。此外,数据服务器节点通过执行数据接口脚本,将初始调阅数据转化为目标调阅数据,从而只将目标调阅数据反馈给数据调阅节点,而不反馈初始调阅数据(即,数据库中的原始数据),从而能够保护原始数据,避免原始数据中的重要信息被泄露。
关于数据调阅装置的具体限定可以参见上文中对于数据调阅方法的限定,在此不再赘述。上述数据调阅装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储原始数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据调阅方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。