数据匹配方法、装置及计算机可读存储介质与流程

文档序号:12864125阅读:212来源:国知局
数据匹配方法、装置及计算机可读存储介质与流程

本公开涉及互联网技术领域,特别涉及一种数据匹配方法、装置及计算机可读存储介质。



背景技术:

随着互联网技术的不断发展,为了实现多方的共赢,多个独立方可以组成联盟,并在联盟中进行数据的共享,确定多个独立方之间的交集数据。对于联盟中进行数据共享的两方或者多方而言,将各个独立方的数据进行匹配,便可以得到多个独立方之间的交集数据,进而基于交集数据,可以有针对性的进行方案的策划等。例如,两个或更多国家可能希望通过共享某一案件中嫌疑人的信息,确定各个国家正在监视的相同的嫌疑人的信息,以便更全面的对嫌疑人进行监视。

相关技术中,联盟中的多个独立方在确定相互之间存在的交集数据时,多个独立方中的某一独立方需将全部数据直接分享给与其存在联盟的其他独立方,其他独立方在接收到数据后,将某一独立方的数据与自身的数据进行匹配,确定交集数据。

在实现本公开的过程中,发明人发现相关技术至少存在以下问题:

由于在进行数据的匹配时,多个独立方中的某一独立方需要将待匹配的全部数据分享给联盟中其他的独立方,导致某一独立方需要公开暴露自己待匹配的全部数据,使得有时若联盟中的全部独立方均不愿将待匹配的数据公开暴露给其他独立方时,便无法达成数据匹配,使得多个独立方构成的联盟具有不平等性,且保密性不高。



技术实现要素:

为克服相关技术中存在的问题,本公开提供一种数据匹配方法、装置及计算机可读存储介质。

根据本公开实施例的第一方面,提供一种数据匹配方法,所述方法应用于数据共享系统的区块链上的第一节点,所述方法包括:

基于加密字符串对第一待匹配数据进行加密,生成第一加密数据;

根据所述第一加密数据生成第一过滤算法,将所述第一过滤算法添加至所述数据共享系统中的区块链,以使第二节点基于所述第一过滤算法对第二加密数据进行过滤,得到第二数据,所述第二加密数据由所述第二节点基于所述加密字符串对第二待匹配数据进行加密生成;

在所述区块链中获取第二过滤算法,基于所述第二过滤算法对所述第一加密数据进行过滤,得到第一数据,所述第二过滤算法由所述第二节点根据所述第二数据生成,并由所述第二节点添加至所述区块链;

若所述第一数据与所述第二数据一致,则将所述第一数据作为所述第一节点和所述第二节点之间匹配的交集数据。

在另一个实施例中,所述基于加密字符串对第一待匹配数据进行加密,生成第一加密数据之前,所述方法还包括:

基于所述第二节点的公钥对第一随机字符串加密,得到第一密文;

将所述第一密文添加至所述区块链,以使所述第二节点在获取到所述第一密文中的第一随机字符时,基于第二随机字符串和所述第一随机字符串生成所述加密字符串,并对所述加密字符串加密,得到第二密文,将所述第二密文添加至所述区块链;

从所述区块链获取所述第二密文,基于所述第一节点的私钥,对所述第二密文解密,得到所述加密字符串。

在另一个实施例中,所述方法还包括:

若所述第一数据与所述第二数据不一致,则基于所述第一数据生成第三过滤算法,将所述第三过滤算法添加至所述区块链,以使所述第二节点基于所述第三过滤算法对所述第二数据进行过滤;

重复执行上述生成过滤算法并对数据进行过滤的过程,直至所述第一节点得到的过滤后的数据与所述第二节点得到的过滤后的数据一致。

根据本公开实施例的第二方面,提供一种数据匹配方法,所述方法应用于数据共享系统的区块链上的第二节点,所述方法包括:

基于加密字符串对第二待匹配数据进行加密,生成第二加密数据;

从区块链获取第一过滤算法,基于所述第一过滤算法对所述第二加密数据进行过滤,得到第二数据,所述第一过滤算法由第一节点生成并添加至所述区块链;

根据所述第二数据生成第二过滤算法,将所述第二过滤算法添加至所述区块链,以使所述第一节点基于所述第二过滤算法对第一加密数据进行过滤,得到第一数据;

若所述第一数据与所述第二数据一致,则将所述第二数据作为所述第一节点和所述第二节点之间的交集数据。

在另一个实施例中,所述基于加密字符串对第二待匹配数据进行加密,生成第二加密数据之前,所述方法还包括:

从所述区块链获取第一密文,所述第一密文由所述第一节点生成并添加至所述区块链;

基于所述第二节点的私钥对所述第一密文解密,得到所述第一随机字符串;

将第二随机字符串附加在所述第一随机字符串的尾部,生成所述加密字符串;

基于所述第一节点的公钥对所述加密字符串加密,得到第二密文;

将所述第二密文添加至所述区块链,以使所述第一节点获取所述第二密文。

在另一个实施例中,所述方法还包括:

若所述第一数据与所述第二数据不一致,则在所述区块链上获取第三过滤算法,基于所述第三过滤算法对所述第二数据进行过滤,所述第三过滤算法由所述第一节点基于所述第一数据生成并添加至所述区块链;

重复执行上述生成过滤算法并对数据进行过滤的过程,直至所述第一节点得到的过滤后的数据与所述第二节点得到的过滤后的数据一致。

根据本公开实施例的第三方面,提供一种数据匹配装置,所述装置应用于数据共享系统的区块链上的第一节点,所述装置包括:

第一加密模块,被配置为基于加密字符串对第一待匹配数据进行加密,生成第一加密数据;

添加模块,被配置为根据所述第一加密数据生成第一过滤算法,将所述第一过滤算法添加至所述数据共享系统中的区块链,以使第二节点基于所述第一过滤算法对第二加密数据进行过滤,得到第二数据,所述第二加密数据由所述第二节点基于所述加密字符串对第二待匹配数据进行加密生成;

过滤模块,被配置为在所述区块链中获取第二过滤算法,基于所述第二过滤算法对所述第一加密数据进行过滤,得到第一数据,所述第二过滤算法由所述第二节点根据所述第二数据生成,并由所述第二节点添加至所述区块链;

确定模块,被配置为若所述第一数据与所述第二数据一致,则将所述第一数据作为所述第一节点和所述第二节点之间匹配的交集数据。

在另一个实施例中,所述装置还包括:

第二加密模块,被配置为基于所述第二节点的公钥对第一随机字符串加密,得到第一密文;

所述添加模块,还被配置为将所述第一密文添加至所述区块链,以使所述第二节点在获取到所述第一密文中的第一随机字符时,基于第二随机字符串和所述第一随机字符串生成所述加密字符串,并对所述加密字符串加密,得到第二密文,将所述第二密文添加至所述区块链;

解密模块,被配置为从所述区块链获取所述第二密文,基于所述第一节点的私钥,对所述第二密文解密,得到所述加密字符串。

在另一个实施例中,所述过滤模块,还被配置为若所述第一数据与所述第二数据不一致,则基于所述第一数据生成第三过滤算法,将所述第三过滤算法添加至所述区块链,以使所述第二节点基于所述第三过滤算法对所述第二数据进行过滤;重复执行上述生成过滤算法并对数据进行过滤的过程,直至所述第一节点得到的过滤后的数据与所述第二节点得到的过滤后的数据一致。

根据本公开实施例的第四方面,提供一种数据匹配装置,所述装置应用于数据共享系统的区块链上的第二节点,所述装置包括:

第一加密模块,被配置为基于加密字符串对第二待匹配数据进行加密,生成第二加密数据;

过滤模块,被配置为从区块链获取第一过滤算法,基于所述第一过滤算法对所述第二加密数据进行过滤,得到第二数据,所述第一过滤算法由第一节点生成并添加至所述区块链;

添加模块,被配置为根据所述第二数据生成第二过滤算法,将所述第二过滤算法添加至所述区块链,以使所述第一节点基于所述第二过滤算法对第一加密数据进行过滤,得到第一数据;

确定模块,被配置为若所述第一数据与所述第二数据一致,则将所述第二数据作为所述第一节点和所述第二节点之间的交集数据。

在另一个实施例中,所述装置还包括:

获取模块,被配置为从所述区块链获取第一密文,所述第一密文由所述第一节点生成并添加至所述区块链;

解密模块,被配置为基于所述第二节点的私钥对所述第一密文解密,得到所述第一随机字符串;

生成模块,被配置为将第二随机字符串附加在所述第一随机字符串的尾部,生成所述加密字符串;

第二加密模块,被配置为基于所述第一节点的公钥对所述加密字符串加密,得到第二密文;

所述添加模块,还被配置为将所述第二密文添加至所述区块链,以使所述第一节点获取所述第二密文。

在另一个实施例中,所述过滤模块,还被配置为若所述第一数据与所述第二数据不一致,则在所述区块链上获取第三过滤算法,基于所述第三过滤算法对所述第二数据进行过滤,所述第三过滤算法由所述第一节点基于所述第一数据生成并添加至所述区块链;重复执行上述生成过滤算法并对数据进行过滤的过程,直至所述第一节点得到的过滤后的数据与所述第二节点得到的过滤后的数据一致。

根据本公开实施例的第五方面,提供一种数据匹配装置,所述装置应用于数据共享系统的区块链上的第一节点,所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:基于加密字符串对第一待匹配数据进行加密,生成第一加密数据;根据所述第一加密数据生成第一过滤算法,将所述第一过滤算法添加至所述数据共享系统中的区块链,以使第二节点基于所述第一过滤算法对第二加密数据进行过滤,得到第二数据,所述第二加密数据由所述第二节点基于所述加密字符串对第二待匹配数据进行加密生成;在所述区块链中获取第二过滤算法,基于所述第二过滤算法对所述第一加密数据进行过滤,得到第一数据,所述第二过滤算法由所述第二节点根据所述第二数据生成,并由所述第二节点添加至所述区块链;若所述第一数据与所述第二数据一致,则将所述第一数据作为所述第一节点和所述第二节点之间匹配的交集数据。

根据本公开实施例的第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行以完成上述的数据匹配方法。

根据本公开实施例的第七方面,提供一种数据匹配装置,所述装置应用于数据共享系统的区块链上的第二节点,所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:基于加密字符串对第二待匹配数据进行加密,生成第二加密数据;从区块链获取第一过滤算法,基于所述第一过滤算法对所述第二加密数据进行过滤,得到第二数据,所述第一过滤算法由第一节点生成并添加至所述区块链;根据所述第二数据生成第二过滤算法,将所述第二过滤算法添加至所述区块链,以使所述第一节点基于所述第二过滤算法对第一加密数据进行过滤,得到第一数据;若所述第一数据与所述第二数据一致,则将所述第二数据作为所述第一节点和所述第二节点之间的交集数据。

根据本公开实施例的第八方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行以完成上述的数据匹配方法。

本公开的实施例提供的技术方案可以包括以下有益效果:

数据共享系统的区块链上的第一节点和第二节点基于加密字符串对各自的待匹配数据进行加密,生成第一加密数据和第二加密数据,并由第一节点根据第一加密数据生成第一过滤算法,将第一过滤算法添加至数据共享系统中的区块链,第二节点在区块链中获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据;随后,第二节点根据第二数据生成第二过滤算法,将第二过滤算法添加至区块链,由第一节点在区块链上获取第二过滤算法,并基于第二过滤算法对第一加密数据进行过滤,得到第一数据,使得在第一数据和第二数据一致时即可将第一数据作为第一节点和第二节点之间的交集数据,第一节点和第二节点仅需公开对待匹配数据进行加密处理后得到的加密数据,无需公开原待匹配数据,提高了确定交集数据时的保密性,保证了数据共享系统的区块链上各个节点的平等性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种数据匹配方法的流程图。

图2是根据一示例性实施例示出的一种数据匹配方法的流程图。

图3a是根据一示例性实施例示出的一种数据匹配方法的流程图。

图3b是根据一示例性实施例示出的一种数据匹配方法的流程图。

图4a是根据一示例性实施例示出的一种数据匹配装置的框图。

图4b是根据一示例性实施例示出的一种数据匹配装置的框图。

图5a是根据一示例性实施例示出的一种数据匹配装置的框图。

图5b是根据一示例性实施例示出的一种数据匹配装置的框图。

图6是根据一示例性实施例示出的一种数据匹配装置600的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种数据匹配方法的流程图,如图1所示,该方法用于数据共享系统的区块链上的第一节点,该方法包括以下步骤。

在步骤101中,基于加密字符串对第一待匹配数据进行加密,生成第一加密数据。

在步骤102中,根据第一加密数据生成第一过滤算法,将第一过滤算法添加至数据共享系统中的区块链,以使第二节点基于第一过滤算法对第二加密数据进行过滤,得到第二数据,第二加密数据由第二节点基于加密字符串对第二待匹配数据进行加密生成。

在步骤103中,在区块链中获取第二过滤算法,基于第二过滤算法对第一加密数据进行过滤,得到第一数据,第二过滤算法由第二节点根据第二数据生成,并由第二节点添加至区块链。

在步骤104中,若第一数据与第二数据一致,则将第一数据作为第一节点和第二节点之间匹配的交集数据。

本公开实施例提供的方法,数据共享系统的区块链上的第一节点和第二节点基于加密字符串对各自的待匹配数据进行加密,生成第一加密数据和第二加密数据,并由第一节点根据第一加密数据生成第一过滤算法,将第一过滤算法添加至数据共享系统中的区块链,第二节点在区块链中获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据;随后,第二节点根据第二数据生成第二过滤算法,将第二过滤算法添加至区块链,由第一节点在区块链上获取第二过滤算法,并基于第二过滤算法对第一加密数据进行过滤,得到第一数据,使得在第一数据和第二数据一致时即可将第一数据作为第一节点和第二节点之间的交集数据,第一节点和第二节点仅需公开对待匹配数据进行加密处理后得到的加密数据,无需公开原待匹配数据,提高了确定交集数据时的保密性,保证了数据共享系统的区块链上各个节点的平等性。

在另一个实施例中,基于加密字符串对第一待匹配数据进行加密,生成第一加密数据之前,方法还包括:

基于第二节点的公钥对第一随机字符串加密,得到第一密文;

将第一密文添加至区块链,以使第二节点在获取到第一密文中的第一随机字符时,基于第二随机字符串和第一随机字符串生成加密字符串,并对加密字符串加密,得到第二密文,将第二密文添加至区块链;

从区块链获取第二密文,基于第一节点的私钥,对第二密文解密,得到加密字符串。

在另一个实施例中,该方法还包括:

若第一数据与第二数据不一致,则基于第一数据生成第三过滤算法,将第三过滤算法添加至区块链,以使第二节点基于第三过滤算法对第二数据进行过滤;

重复执行上述生成过滤算法并对数据进行过滤的过程,直至第一节点得到的过滤后的数据与第二节点得到的过滤后的数据一致。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图2是根据一示例性实施例示出的一种数据匹配方法的流程图,如图2所示,该方法用于数据共享系统的区块链上的第二节点,该方法包括以下步骤。

在步骤201中,基于加密字符串对第二待匹配数据进行加密,生成第二加密数据。

在步骤202中,从区块链获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据,第一过滤算法由第一节点生成并添加至区块链。

在步骤203中,根据第二数据生成第二过滤算法,将第二过滤算法添加至区块链,以使第一节点基于第二过滤算法对第一加密数据进行过滤,得到第一数据。

在步骤204中,若第一数据与第二数据一致,则将第二数据作为第一节点和第二节点之间的交集数据。

本公开实施例提供的方法,数据共享系统的区块链上的第一节点和第二节点基于加密字符串对各自的待匹配数据进行加密,生成第一加密数据和第二加密数据,并由第一节点根据第一加密数据生成第一过滤算法,将第一过滤算法添加至数据共享系统中的区块链,第二节点在区块链中获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据;随后,第二节点根据第二数据生成第二过滤算法,将第二过滤算法添加至区块链,由第一节点在区块链上获取第二过滤算法,并基于第二过滤算法对第一加密数据进行过滤,得到第一数据,使得在第一数据和第二数据一致时即可将第一数据作为第一节点和第二节点之间的交集数据,第一节点和第二节点仅需公开对待匹配数据进行加密处理后得到的加密数据,无需公开原待匹配数据,提高了确定交集数据时的保密性,保证了数据共享系统的区块链上各个节点的平等性。

在另一个实施例中,基于加密字符串对第二待匹配数据进行加密,生成第二加密数据之前,方法还包括:

从区块链获取第一密文,第一密文由第一节点生成并添加至区块链;

基于第二节点的私钥对第一密文解密,得到第一随机字符串;

将第二随机字符串附加在第一随机字符串的尾部,生成加密字符串;

基于第一节点的公钥对加密字符串加密,得到第二密文;

将第二密文添加至区块链,以使第一节点获取第二密文。

在另一个实施例中,该方法还包括:

若第一数据与第二数据不一致,则在区块链上获取第三过滤算法,基于第三过滤算法对第二数据进行过滤,第三过滤算法由第一节点基于第一数据生成并添加至区块链;

重复执行上述生成过滤算法并对数据进行过滤的过程,直至第一节点得到的过滤后的数据与第二节点得到的过滤后的数据一致。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图3a是根据一示例性实施例示出的一种数据匹配方法的流程图,如图3b所示,该方法包括以下步骤。

在步骤301中,第一节点基于第二节点的公钥对第一随机字符串加密,得到第一密文,并将第一密文添加至区块链。

在本公开实施例中,第一节点和第二节点均为数据共享系统的区块链上的节点。数据共享系统是指用于进行节点与节点之间数据共享,确定节点与节点交集数据的系统。对于数据共享系统中的每个节点,均具有与其对应的公钥和私钥,数据共享系统中每个节点的公钥均被数据共享系统中的其他节点获知,而每个节点的私钥只有其自身知晓。数据共享系统中的每个节点均存储一条相同的区块链,也即第一节点和第二节点上均存储有一条相同的区块链,区块链由多个区块组成,每个区块均存储有不同的数据,区块链上的全部区块存储的数据组成了区块链所在节点的共享数据。当数据共享系统中的某一节点向区块链中添加诸如密文、过滤算法等数据时,数据共享系统中全部节点的区块链中均会新增一个区块,也即第一节点和第二节点中存储的区块链均会新增一个区块,保证数据共享中的各个节点区块链的数据均保持一致。

发明人认识到,数据共享系统中的节点在确定交集数据时,如果通过共享待匹配数据实现,则待匹配数据的保密性不高,很可能会将某一节点的待匹配数据泄露,因此,可以通过对节点上待匹配数据进行加密处理,得到加密数据,并基于加密数据生成过滤算法,使得各个节点可以基于过滤算法对待匹配数据进行过滤,确定交集数据,无需将待匹配数据进行公开。这样,便需要各个节点基于同一个标准对待匹配数据进行加密处理,这个标准即为加密字符串。在实际应用中,该加密字符串可以为密码学中的盐,盐的实质为特定的字符串,这样,节点在基于加密字符串对待匹配数据进行加密处理时,可以先对待匹配数据做诸如md5(message-digestalgorithm5,信息摘要算法5)的散列处理,并将加密字符串插入至散列处理后的待匹配数据的预设位置,得到加密数据。需要说明的是,在本公开实施例中,各个节点对待匹配数据进行加密处理时使用的加密字符串可为上述的盐,为了使加密字符串由待进行数据匹配的节点共同生成,可为待进行数据匹配的节点分配与其对应的随机字符串,使得加密字符串由待进行数据匹配的节点的随机字符串组成,保证在进行数据匹配时对节点的公平性。另外,为了便于说明,在本公开实施例中,以第一节点和第二节点进行数据匹配为例进行说明,其中,第一节点分配到的随机字符串为第一随机字符串,第二节点分配到的随机字符串为第二随机字符串。

由于在同一时间可能存在多组需要生成加密字符串的节点,为了避免在生成加密字符串时发生错误,因此,第一节点在将自身的第一随机字符串共享给第二节点时,需要基于第二节点的公钥对第一随机字符串进行加密,生成第一密文并将第一密文添加至区块链,由于第二节点的私钥仅其自身获知,因此,第一节点添加至区块链的第一密文只有第二节点可以进行解密,避免发生错误。

在步骤302中,第二节点从区块链获取第一密文,基于第二节点的私钥对第一密文解密,得到第一随机字符串,并将第二随机字符串附加在第一随机字符串的尾部,生成加密字符串。

在本公开实施例中,由于第一密文基于第二节点的公钥进行加密,因此,第二节点在获取到第一密文后,便可以基于第二节点的私钥对密文进行解密,从而得到第一节点的第一随机字符串。第二节点在得到第一节点的第一随机字符串后,便可以基于第一随机字符串和自身的第二随机字符串生成加密字符串,以便后续基于加密字符串对待匹配数据进行加密处理。一般来说,第二节点在基于第一随机字符串和第二随机字符串生成加密字符串时,可以将第二随机字符串附加在第一随机字符串的尾部,也可将第二随机字符串附加在第一随机字符串的头部,本公开实施例对此不进行具体限定。

在步骤303中,第二节点基于第一节点的公钥对加密字符串加密,得到第二密文,并将第二密文添加至区块链。

在本公开实施例中,为了避免其他节点获取区块链中的加密字符串发生错误,第二节点在生成加密字符串后,可基于第一节点的公钥对加密字符串进行加密,得到第二密文,将第二密文添加至区块链,以便第一节点在区块链中获取第二密文,并对第二密文进行解密。

在步骤304中,第一节点从区块链上获取第二密文,基于第一节点的私钥对第二密文解密,得到加密字符串,基于加密字符串对第一待匹配数据进行加密,生成第一加密数据。

在本公开实施例中,当第二节点将第二密文添加至区块链后,由于每个节点的区块链上的数据均保持一致,则第一节点的区块链上也会存在第二密文,这样,第一节点便可以在区块链上获取第二密文,并对第二密文解密,得到加密字符串。

第一待匹配数据为第一节点上将要与第二节点上的数据进行匹配,以便确定交集数据的数据。第一节点在得到加密字符串后,可使用加密字符串对第一待匹配数据进行加密,生成第一加密数据,以便后续基于第一加密数据生成第一过滤算法,使得第二节点可以基于第一过滤算法对数据进行过滤。

需要说明的是,上述基于加密字符串对第一待匹配数据进行加密的过程可以是基于盐对第一待匹配数据进行散列计算以得到散列数据的过程,该散列计算可以是哈希算法的一种。当然,除了上述的加密算法以外,还可以采用其他类型的加密算法,如加扰等加密处理。对于第二待匹配数据,可以采用相同的加密算法。

在步骤305中,第一节点根据第一加密数据生成第一过滤算法,将第一过滤算法添加至数据共享系统中的区块链。

在本公开实施例中,第一节点在得到第一加密数据后,便可以基于第一加密数据生成第一过滤算法,并将第一过滤算法添加至区块链中,以便第二节点获取第一过滤算法,并对数据进行过滤。其中,第一过滤算法可以提供为一个过滤器,具体可为bloomfilter(布隆过滤器),第一节点在将第一过滤算法添加至区块链时,为了提高保密性,可基于第二节点的公钥对第一过滤算法加密。在实际应用的过程中,为了简化流程,也可不进行加密处理,直接将第一过滤算法添加至区块链中,本公开对此不进行具体限定。

在步骤306中,第二节点基于加密字符串对第二待匹配数据进行加密,生成第二加密数据。

在本公开实施例中,第二节点在生成加密字符串后,即可基于加密字符串对第二待匹配数据进行加密,生成第二加密数据。其中,第二待匹配数据为第二节点中将要与第一节点中的数据进行匹配以便确定交集数据的数据。

需要说明的是,在实际应用中,步骤306中的内容可以在步骤303执行完成生成加密字符串后执行,也可在第一节点执行步骤304至步骤305生成第一过滤算法的过程中执行,也可在第一节点执行步骤305生成第一过滤算法后执行,本公开对第二节点生成第二加密数据的时机不进行具体限定。

在步骤307中,第二节点从区块链获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据。

在本公开实施例中,当第一节点将第一过滤算法添加至区块链后,由于每个节点的区块链上的数据均保持一致,则第二节点的区块链上也会存在第一过滤算法,这样,第二节点可从区块链上获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据。

其中,在基于第一过滤算法对第二加密数据进行过滤时,第一过滤算法可将第二加密数据中与第一加密数据不匹配的数据过滤掉,将当前确定的第二加密数据中可能与第一加密数据匹配的数据作为第二数据。例如,若当前第二加密数据中包括0、1、2、3、4、5,第二节点在基于第一过滤算法对第二加密数据进行过滤后,确定3为与第一加密数据不匹配的数据,则将3过滤掉,将0、1、2、4、5作为第二数据。

需要说明的是,若第二节点从区块链上获取的第一过滤算法为加密的过滤算法,则需要基于第二节点的私钥对加密的过滤算法进行解密,得到第一过滤算法,再对第二加密数据进行过滤。

在步骤308中,第二节点根据第二数据生成第二过滤算法,将第二过滤算法添加至区块链。

在本公开实施例中,第二节点根据第二数据生成第二过滤算法的过程与第一节点生成第一过滤算法的过程一致,此处不再进行赘述。

需要说明的是,第二节点在将第二过滤算法添加至区块链时,为了提高保密性,可基于第一节点的公钥对第二过滤算法加密。在实际应用的过程中,为了简化流程,也可不进行加密处理,直接将第二过滤算法添加至区块链中,本公开对此不进行具体限定。

在步骤309中,第一节点在区块链中获取第二过滤算法,基于第二过滤算法对第一加密数据进行过滤,得到第一数据。

在本公开实施例中,当第二节点将第二过滤算法添加至区块链后,由于每个节点的区块链上的数据均保持一致,则第一节点的区块链上也会存在第二过滤算法,这样,第一节点可从区块链上获取第二过滤算法,基于第二过滤算法对第一加密数据进行过滤,得到第一数据。其中,第一节点在基于第二过滤算法对第一加密数据进行过滤得到第一数据的过程与上述步骤307中所示的第二节点得到第二数据的过程一致,此处不再进行赘述。

需要说明的是,若第一节点从区块链上获取的第二过滤算法为加密的过滤算法,则需要基于第一节点的私钥对加密的过滤算法进行解密,得到第二过滤算法,再对第一加密数据进行过滤。

在步骤310中,若第一数据与第二数据一致,则第一节点将第一数据作为第一节点和第二节点之间匹配的交集数据。

在本公开实施例中,若第一数据与第二数据一致,则说明第一数据和第二数据即为第一节点与第二节点之间的交集数据。其中,在确定第一数据和第二数据是否一致时,可由第一节点或第二节点执行,也可由第一节点和第二节点同时执行。这样,若由第一节点确定第一数据和第二数据是否一致,则可将第一数据作为交集数据,并由第一节点将交集数据分享给第二节点;若由第二节点确定第一数据和第二数据是否一致,则可将第二数据作为交集数据,并由第二节点将交集数据分享给第一节点。

需要说明的是,若第一数据与第二数据不一致,则表示当前还未确定第一节点与第二节点之间的交集数据,需要第一节点继续基于第一数据生成第三过滤算法,将第三过滤算法添加至区块链,以使第二节点基于第三过滤算法对第二数据进行过滤,并重复执行上述生成过滤算法并对数据进行过滤的过程,直至第一节点得到的过滤后的数据与第二节点得到的过滤后的数据一致,确定第一节点与第二节点之间的交集数据为止。

在实际应用的过程中,可以通过执行图3b中所示的流程确定第一节点与第二节点之间的交集数据:

参见图3b,第一节点基于第二节点的公钥对第一随机字符串加密,生成第一密文,将第一密文添加至区块链;第二节点在区块链上获取第一密文,对第一密文解密,得到第一随机字符串,并基于第一随机字符串和第二随机字符串生成加密字符串,用第一节点的公钥对加密字符串加密,生成第二密文,将第二密文添加至区块链;第一节点在区块链上获取第二密文,对第二密文解密,得到加密字符串,基于加密字符串对第一待匹配数据进行加密,生成第一加密数据,并根据第一加密数据生成第一过滤算法,将第一过滤算法添加至区块链;此时,第二节点基于加密字符串对第二待匹配数据进行加密,在生成第二加密数据后,便可在区块链上获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,生成第二数据,并由第一节点和第二节点分别判断第一数据与第二数据是否一致,若确定第一数据与第二数据一致,则确定第一数据和第二数据均为交集数据,完成当前流程;若确定第一数据与第二数据不一致,则需要继续执行生成过滤算法对数据进行过滤的过程,直至第一节点过滤后得到的数据与第二节点过滤后得到的数据一致。一般来说,需要重复执行5次或6次生成过滤算法对数据进行过滤的过程才可确定第一节点与第二节点之间的交集数据。

本公开实施例提供的方法,数据共享系统的区块链上的第一节点和第二节点基于加密字符串对各自的待匹配数据进行加密,生成第一加密数据和第二加密数据,并由第一节点根据第一加密数据生成第一过滤算法,将第一过滤算法添加至数据共享系统中的区块链,第二节点在区块链中获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据;随后,第二节点根据第二数据生成第二过滤算法,将第二过滤算法添加至区块链,由第一节点在区块链上获取第二过滤算法,并基于第二过滤算法对第一加密数据进行过滤,得到第一数据,使得在第一数据和第二数据一致时即可将第一数据作为第一节点和第二节点之间的交集数据,第一节点和第二节点仅需公开对待匹配数据进行加密处理后得到的加密数据,无需公开原待匹配数据,提高了确定交集数据时的保密性,保证了数据共享系统的区块链上各个节点的平等性。

图4a是根据一示例性实施例示出的一种数据匹配装置的框图。参照图4a,该装置应用于数据共享系统的区块链上的第一节点,包括第一加密模块401,添加模块402,过滤模块403和确定模块404。

该第一加密模块401,被配置为基于加密字符串对第一待匹配数据进行加密,生成第一加密数据;

该添加模块402,被配置为根据第一加密数据生成第一过滤算法,将第一过滤算法添加至数据共享系统中的区块链,以使第二节点基于第一过滤算法对第二加密数据进行过滤,得到第二数据,第二加密数据由第二节点基于加密字符串对第二待匹配数据进行加密生成;

该过滤模块403,被配置为在区块链中获取第二过滤算法,基于第二过滤算法对第一加密数据进行过滤,得到第一数据,第二过滤算法由第二节点根据第二数据生成,并由第二节点添加至区块链;

该确定模块404,被配置为若第一数据与第二数据一致,则将第一数据作为第一节点和第二节点之间匹配的交集数据。

本公开实施例提供的装置,数据共享系统的区块链上的第一节点和第二节点基于加密字符串对各自的待匹配数据进行加密,生成第一加密数据和第二加密数据,并由第一节点根据第一加密数据生成第一过滤算法,将第一过滤算法添加至数据共享系统中的区块链,第二节点在区块链中获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据;随后,第二节点根据第二数据生成第二过滤算法,将第二过滤算法添加至区块链,由第一节点在区块链上获取第二过滤算法,并基于第二过滤算法对第一加密数据进行过滤,得到第一数据,使得在第一数据和第二数据一致时即可将第一数据作为第一节点和第二节点之间的交集数据,第一节点和第二节点仅需公开对待匹配数据进行加密处理后得到的加密数据,无需公开原待匹配数据,提高了确定交集数据时的保密性,保证了数据共享系统的区块链上各个节点的平等性。

在另一个实施例中,参见图4b,该装置还包括第二加密模块405和解密模块406。

该第二加密模块405,被配置为基于第二节点的公钥对第一随机字符串加密,得到第一密文;

该添加模块402,还被配置为将第一密文添加至区块链,以使第二节点在获取到第一密文中的第一随机字符时,基于第二随机字符串和第一随机字符串生成加密字符串,并对加密字符串加密,得到第二密文,将第二密文添加至区块链;

该解密模块406,被配置为从区块链获取第二密文,基于第一节点的私钥,对第二密文解密,得到加密字符串。

在另一个实施例中,该过滤模块403,还被配置为若第一数据与第二数据不一致,则基于第一数据生成第三过滤算法,将第三过滤算法添加至区块链,以使第二节点基于第三过滤算法对第二数据进行过滤;重复执行上述生成过滤算法并对数据进行过滤的过程,直至第一节点得到的过滤后的数据与第二节点得到的过滤后的数据一致。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图5a是根据一示例性实施例示出的一种数据匹配装置的框图。参照图5a,该装置应用于数据共享系统的区块链上的第二节点,包括第一加密模块501,过滤模块502,添加模块503和确定模块504。

该第一加密模块501,被配置为基于加密字符串对第二待匹配数据进行加密,生成第二加密数据;

该过滤模块502,被配置为从区块链获取第一过滤算法,基于第一过滤算法对第二加密数据进行过滤,得到第二数据,第一过滤算法由第一节点生成并添加至区块链;

该添加模块503,被配置为根据第二数据生成第二过滤算法,将第二过滤算法添加至区块链,以使第一节点基于第二过滤算法对第一加密数据进行过滤,得到第一数据;

该确定模块504,被配置为若第一数据与第二数据一致,则将第二数据作为第一节点和第二节点之间的交集数据。

在另一个实施例中,参见图5b,该装置还包括获取模块505,解密模块506,生成模块507和第二加密模块508。

该获取模块505,被配置为从区块链获取第一密文,第一密文由第一节点生成并添加至区块链;

该解密模块506,被配置为基于第二节点的私钥对第一密文解密,得到第一随机字符串;

该生成模块507,被配置为将第二随机字符串附加在第一随机字符串的尾部,生成加密字符串;

该第二加密模块508,被配置为基于第一节点的公钥对加密字符串加密,得到第二密文;

该添加模块503,还被配置为将第二密文添加至区块链,以使第一节点获取第二密文。

在另一个实施例中,该过滤模块502,还被配置为若第一数据与第二数据不一致,则在区块链上获取第三过滤算法,基于第三过滤算法对第二数据进行过滤,第三过滤算法由第一节点基于第一数据生成并添加至区块链;重复执行上述生成过滤算法并对数据进行过滤的过程,直至第一节点得到的过滤后的数据与第二节点得到的过滤后的数据一致。

图6是根据一示例性实施例示出的一种数据匹配装置600的框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述数据匹配方法。

装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(i/o)接口658。装置600可以操作基于存储在存储器632的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

一种计算机可读存储介质,计算机可读存储介质上存储有指令,该指令被处理器执行以完成上述的数据匹配方法。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可执行指令,所述处理器执行所述计算机可执行指令时实现上述的数据匹配方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1