基于区块链的信函分发、访问方法和装置与流程

文档序号:25587476发布日期:2021-06-22 17:02阅读:104来源:国知局
基于区块链的信函分发、访问方法和装置与流程

本公开涉及计算机技术领域,特别是涉及一种基于区块链的信函分发方法和装置、一种基于区块链的信函访问方法和装置、一种电子设备、一种计算机可读存储介质以及一种计算机程序产品。



背景技术:

在相关技术中,重要合同、信用证、商业文件、商业通讯等信函,一般是通过纸质材料和数字化通讯进行传送的。

然而,在实现本公开发明构思的过程中,发明人发现:纸质信函通常是通过人工物流等方式传送的,对于距离远、处理要求时效高的信函来说,这种信函传送方案难以达到要求。而对于数字化信函来说,私密数据的保护和多方数据共享的问题,也难以解决。



技术实现要素:

有鉴于此,本公开提供了一种基于区块链的信函分发方法和装置、一种基于区块链的信函访问方法和装置、一种电子设备、一种计算机可读存储介质以及一种计算机程序产品。

本公开的一个方面提供了一种基于区块链的信函分发方法,包括:确定需要使用的信函模板;获取针对上述信函模板生成的哈希值;基于上述哈希值,获取用于生成上述信函模板的模板文件;基于上述模板文件,获取针对上述信函模板需要填充的内容;获取至少一个信函接收方的标识信息;以及将上述哈希值、上述需要填充的内容和上述标识信息写入区块链,以便上述区块链基于上述标识信息将目标信函分发至上述至少一个信函接收方,其中上述目标信函为基于上述哈希值和上述需要填充的内容生成的信函。

可选地,从上述区块链中获取针对上述信函模板生成的上述哈希值;以及基于上述哈希值,从星际文件系统中获取用于生成上述信函模板的上述模板文件。

可选地,将上述哈希值、上述需要填充的内容和上述标识信息写入区块链,包括:确定针对上述至少一个信函接收方中每个信函接收方配置的访问控制策略;基于上述访问控制策略,对上述需要填充的内容进行属性加密,以获得对应的第一密文;以及将上述第一密文与上述哈希值和上述标识信息一起写入上述区块链。

可选地,将上述哈希值、上述需要填充的内容和上述标识信息写入区块链,包括:确定针对上述至少一个信函接收方中每个信函接收方配置的访问控制策略;基于上述访问控制策略,对上述哈希值和上述需要填充的内容进行属性加密,以获得对应的第二密文;以及将上述第二密文与上述标识信息一起写入上述区块链。

可选地,还包括:针对上述每个信函接收方,针对信函接收方生成属性集合,其中上述属性集合包括:信函接收方的标识信息与对应的访问控制策略;以及基于上述属性集合,为信函接收方生成对应的用户密钥,以便信函接收方访问上述目标信函时用于对密文进行解密。

可选地,还包括:对信函接收方进行数字身份验证;以及响应于数字身份验证通过,针对上述信函接收方发起的信函分发请求执行信函分发相关操作。

本公开的另一个方面提供了一种基于区块链的信函访问方法,包括:获取通过区块链推送的针对信函模板生成的哈希值;基于上述哈希值,获取用于生成上述信函模板的模板文件;获取通过上述区块链推送的针对上述信函模板需要填充的内容或上述需要填充的内容的密文;以及基于上述模板文件和上述需要填充的内容,或者基于上述模板文件和上述密文,生成对应的目标信函并进行访问。

可选地,基于上述哈希值,获取用于生成上述信函模板的模板文件,包括:基于上述哈希值,从星际文件系统中获取用于生成上述信函模板的上述模板文件。

可选地,基于上述模板文件和上述密文,生成对应的目标信函,包括:基于信函接收方的标识信息,获取预先生成的密钥;利用上述密钥对上述密文进行属性解密,以获得对应的明文;基于上述模板文件生成上述信函模板;以及使用上述明文对上述信函模板进行内容填充,以获得上述目标信函。

本公开的另一个方面提供了一种基于区块链的信函分发装置,包括:确定模块,用于确定需要使用的信函模板;第一获取模块,用于获取针对上述信函模板生成的哈希值;第二获取模块,用于基于上述哈希值,获取用于生成上述信函模板的模板文件;第三获取模块,用于基于上述模板文件,获取针对上述信函模板需要填充的内容;第四获取模块,用于获取至少一个信函接收方的标识信息;以及信函分发模块,用于将上述哈希值、上述需要填充的内容和上述标识信息写入区块链,以便上述区块链基于上述标识信息将目标信函分发至上述至少一个信函接收方,其中上述目标信函为基于上述哈希值和上述需要填充的内容生成的信函。

本公开的另一个方面提供了一种基于区块链的信函访问装置,包括:第五获取模块,用于获取通过区块链推送的针对信函模板生成的哈希值;第六获取模块,用于基于上述哈希值,获取用于生成上述信函模板的模板文件;第七获取模块,用于获取通过上述区块链推送的针对上述信函模板需要填充的内容或上述需要填充的内容的密文;信函生成模块,用于基于上述模板文件和上述需要填充的内容,或者基于上述模板文件和上述密文,生成对应的目标信函;以及信函访问模块,用于对上述目标信函进行访问。

本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现本公开实施例的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现本公开实施例的方法。

本公开的另一方面提供了一种计算机程序产品,包括计算机程序,上述计算机程序在被处理器执行时实现根据本公开实施例的上述方法。

通过本公开的实施例,采用了基于区块链的信函分发代替通过人工物流传输信函的方式,使得信函分发方可以将信函分发至至少一个信函接收方。并根据获取的每个信函接收方的标识信息,将与该信函对应的信函模板对应的哈希值和信函分发方所填写的内容,通过区块链推送至对应信函接收方。从而可以使信函接受方根据获取的哈希值和填写的内容,获知信函分发方分发的信函内容。该方案可以实现多方消息共享,同时还可以保证信函传送的时效性。同时,通过将哈希值、填写的内容和标识信息写入到区块链,可以避免哈希值、填写的内容和标识信息被篡改或泄露,从而保证所传送的信息的可靠性和准确性。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的适于基于区块链的信函分发、访问方法和装置的系统架构;

图2示意性示出了根据本公开实施例的适于基于区块链的信函分发、访问方法和装置的应用场景;

图3示意性示出了根据本公开实施例的基于区块链的信函分发方法的流程图;

图4示意性示出了根据本公开实施例的将哈希值、需要填充的内容和标识信息写入区块链的流程图;

图5示意性示出了根据本公开另一实施例的将哈希值、需要填充的内容和标识信息写入区块链的流程图;

图6示意性示出了根据本公开实施例的基于区块链的信函访问方法的流程图;

图7示意性示出了根据本公开实施例的基于模板文件和密文生成对应的目标信函的流程图;

图8示意性示出了根据本公开实施例的基于区块链的信函分发装置的框图;

图9示意性示出了根据本公开实施例的基于区块链的信函访问装置的框图;以及

图10示意性示出了根据本公开实施例的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了该特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。

本公开的实施例提供了一种基于区块链的信函分发方法以及能够应用该方法的装置。该方法包括:确定需要使用的信函模板;获取针对该信函模板生成的哈希值;基于该哈希值,获取用于生成该信函模板的模板文件;基于该模板文件,获取针对该信函模板需要填充的内容;获取至少一个信函接收方的标识信息;以及将该哈希值、该需要填充的内容和该标识信息写入区块链,以便该区块链基于该标识信息将目标信函分发至该至少一个信函接收方,其中该目标信函为基于该哈希值和该需要填充的内容生成的信函。

图1示意性示出了根据本公开实施例的适于基于区块链的信函分发、访问方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括终端设备110、120、130和区块链网络140。区块链网络140可以包括共识记账节点141、142等多个共识记账节点。终端设备110、120、130和共识记账节点141、142之间可以通过网络进行数据传输等,网络可以包括各种连接类型,例如有线和/或无线通信链路等等。

用户可以使用终端设备110、120、130与区块链网络140中的共识记账节点节点交互,以分发或访问信函等。终端设备110、120、130上可以安装有各种通讯客户端应用,例如网上银行应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。

终端设备110、120、130可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

图2示意性示出了根据本公开实施例的适于基于区块链的信函分发、访问方法和装置的应用场景。

如图2所示,在本实施例提供的应用场景中,用户a作为信函分发方,可以将同一信函(例如商业合同)同时分发给用户b、用户c和用户d,并且用户a在分发信函时,可以对用户b、用户c和用户d授予相同或者不同的权限,使得用户b、用户c和用户d可以基于自身被授予的权限访问信函中对应的内容。例如,假设用户a分发的信函210包括内容“xxxx、xyyy和zzzz”,可以授权用户b仅能查看其中的内容“xxxx”,授权用户c仅能查看其中的内容“yyyy”,授权用户d仅能查看其中的内容“zzzz”。需要说明的是,在本公开实施例中,可以通过属性权限加密,使得不同用户可以访问区块链中共享的信函的不同内容。对应地,用户b获取的目标信函220中的内容则是“xxxx”,用户c获取的目标信函230中的内容则是“yyyy”,用户d获取的目标信函240中的内容则是“zzzz”。

用户a基于区块链分发信函时,可以选择已有的信函模板或者自定义新的信函模板,然后确定需要在信函模板中填充的内容。由于生成信函模板后,可以同时生成与信函模板一一对应的哈希值,并在区块链网络中进行全网广播,因此在分发信函时,响应于用户选择的或者自定义的信函模板,可以从区块链的共识记账节点中获取与信函模板对应的哈希值,进而基于该哈希值获取与之对应的模板文件,基于获取的模板文件可以确定需要在信函模板中填写的信函内容。

在实际分发信函时,可以使用与信函模板对应的哈希值代替信函模板本身(即使用哈希值代替对应的模板文件本身),并将该哈希值与信函填充内容一起写入区块链(如在区块链网络进行全网广播,或者仅发送给指定的一个或者多个信函接收方)来实现信函分发。应该理解,在信函接收方是被指定的一个或者多个的情况下,可以将这些信函接收方各自的身份标识信息(简称标识信息)与哈希值与信函填充内容一起写入区块链,以便共识记账节点可以根据用户的身份标识信息,将哈希值与信函填充内容推送至对应的信函接收方。

在对信函进行访问时,用户b可以登录区块链网络中的任一节点(共识记账节点,以下简称“节点”)来访问用户a分发的信函。具体地,可以从区块链中获取该信函,并从中解析出对应的哈希值和信函填充内容。并根据该哈希值,获取与该哈希值对应的模板文件。并利用获得的信函填充内容对基于获取的模板文件生成的信函模板进行内容填充,以获得目标信函并进行访问。

需要说明的是,在用户b登录到区块链网络中的任一节点时,可以对用户b的身份信息进行验证,例如,验证用户b的标识信息。在用户b验证通过的情况下(例如用户b的标识信息正确),可以将用户b登录的节点与用户b的标识信息进行关联,以便用户a在分发信函时,可以基于用户b的标识信息,将哈希值和信函填充内容推送至与用户b的标识信息关联的节点。

图3示意性示出了根据本公开实施例的基于区块链的信函分发方法的流程图。如图3所示,该方法可以包括操作s310~s360。

在操作s310,确定需要使用的信函模板。

根据本公开的实施例,用户登录到区块链中的任一节点,并选择分发信函需要分发使用的信函模板。响应于根据用户的选择,区块链节点可以确定用户本次分发需要使用的信函模板。其中,在本公开实施例中,信函可以包括但不限于信用证、商业文件、商业通讯、重要合同等。

根据本公开的实施例,用户选择的信函模板可以是区块链中已有的信函模板,也可以是用户自定义的信函模板,本公开实施例在此不做限定。

在操作s320,获取针对信函模板生成的哈希值。

根据本公开的实施例,在生成信函模板后,可以生成与信函模板一一对应的哈希值,并在区块链网络中进行全网广播。因此在分发信函时,响应于用户选择的信函模板,可以从区块链节点中获取与所选择的信函模板对应的哈希值,需要说明的是,在用户选择的信函模板是其自定义的信函模板的情况下,可以生成与该自定义的信函模板对应的哈希值,并将该哈希值写入区块链中,以便其他用户在选择该信函模板分发信函时,可以从区块链节点中获取到该信函模板的哈希值。

在操作s330,基于哈希值,获取用于生成信函模板的模板文件。

根据本公开的实施例,根据操作s320获取的哈希值,可以从星际文件系统中获取对应的模板文件,以便基于该模板文件生成该信函模板。

在操作s340,基于模板文件,获取针对信函模板需要填充的内容。

根据本公开的实施例,根据操作s330获取的模板文件,可以确定需要填充的内容。例如,当需要分发商业合作类信函时,用户可以选择与该类信函对应的信函模板,并填写相关信息,例如在“名称”一栏填写“xx”,在“年龄”一栏填写“30”,等等。

在操作s350,获取至少一个信函接收方的标识信息。

根据本公开的实施例,信函分发方可以将同一信函(例如商业合同)同时分发给至少一个信函接收方。具体地,可以获取每个信函接收方的标识信息,并根据该标识信息,将信函分发至每一个指定的信函接收方。应该理解,标识信息可以表征信函接收方的身份,标识信息可以是信函接收方的数字身份号码(did),该did可以作为信函接收方的唯一标识符。

在操作s360,将哈希值、需要填充的内容和标识信息写入区块链,以便区块链基于标识信息将目标信函分发至至少一个信函接收方,其中目标信函为基于哈希值和需要填充的内容生成的信函。

在一个实施例中,信函分发方可以将哈希值、需要填充的内容和标识信息写入区块链节点,并由该区块链节点将这些信息广播至区块链全网中。

在另一个实施例中,信函分发方可以将哈希值、需要填充的内容和标识信息写入区块链节点,并由该区块链节点根据前述的标识信息,将前述的哈希值和需要填充的内容推送至该标识信息指示的一个或者多个指定的区块链节点,使得指定的信函接收方才可以访问该信函。

应该理解,在本公开实施例中,考虑到信息安全,分发信函时可以进行属性权限加密。

通过本公开的实施例,将需要使用的信函模板对应的哈希值、填充的内容和表征信函接收方的标识信息一起写入区块链,以便可以根据信函接收方的标识信息,将哈希值和填充的内容,推送至相应的信函接收方,以便信函接收方可以根据获取的信息生成对应的目标信函,以实现信函的分发和访问过程。该方案相比于相关技术中利用人工物流等方式传输,可以保证信函分发的时效性。同时,通过区块链进行信息的传递可以避免传输的信函内容被篡改或泄露,从而可以保证所分发的信息的可靠性和准确性。

作为一种可选的实施例,从区块链中获取针对信函模板生成的哈希值;以及基于哈希值,从星际文件系统中获取用于生成信函模板的模板文件。

根据本公开的实施例,节点中的星际文件系统(ipfs文件系统)可以存放用于生成信函模板的模板文件,以及生成与模板文件对应的哈希值,并将哈希值写入区块链中。因此,可以基于获取的哈希值,从星际文件系统获取与该哈希值对应的模板文件。

根据本公开的实施例,在用户选择的信函模板是其自定义的信函模板的情况下,可以根据该自定义模板的固定格式、固定内容以及用户填充的内容,生成对应的模板文件,并在星际文件系统中存放该模板文件。同时由星际文件系统生成与该模板文件对应的哈希值,然后将该哈希值写入区块链。以便其他用户在选择该信函模板分发信函时,可以从区块链节点中获取到该信函模板的哈希值,并根据该哈希值从星际文件系统中获取对应的模板文件,并根据该模板文件生成对应的信函模板。

根据本公开的实施例,星际文件系统中存放的模板文件,可以存放在接入星际文件系统的各个用户节点中。因此星际文件系统中可以存放有用以表征各哈希值、各模板文件与各用户节点之间的存放关系的哈希表。例如,星际文件系统中的某个模板文件,是存放在接入星际文件系统中的a用户节点中,则该哈希表上可以记录有该模板文件信息、与该模板文件对应的哈希值、该模板文件存放的用户节点以及该模板文件存放的用户节点的信息。

或者,星际文件系统中的某个模板文件,可以是以被分成多个对象的形式进行存放。进一步地,这多个对象可以被分别存放在不同的用户节点中。因此,哈希表上可以记录有该模板文件信息、与该模板文件对应的哈希值、该模板文件被分成的对象的信息、存放不同对象的用户节点以及存放不同对象的用户节点的信息。

例如,某个模板文件被分成三个对象,例如a对象、b对象、和c对象,这三个对象分别被存放在不同用户节点中。那么哈希表上可以记录有该模板文件的信息、该模板文件的a对象的信息、该模板文件的b对象的信息、该模板文件的c对象的信息、与该模板文件对应的哈希值、以及存放a对象的用户节点、存放b对象的用户节点、存放c对象的用户节点、存放a对象的用户节点的信息、存放b对象的用户节点信息以及存放c对象的用户节点信息。

通过本公开的实施例,由于采用了从区块链中获取哈希值,并根据哈希值从星际文件系统中获取模板文件的技术手段。可以将与模板文件对应的哈希值写入区块链,进而可以保证区块链上的数据较小,从而可以节约区块链的存储资源以及减小区块链的交互压力。

图4示意性示出了根据本公开实施例的将哈希值、需要填充的内容和标识信息写入区块链的流程图。如图4所示,该方法可以包括操作s410~s430。

在操作s410,确定针对至少一个信函接收方中每个信函接收方配置的访问控制策略。

根据本公开的实施例,信函分发方可以将同一信函同时分发给不同的信函接收方。并且信函分发方在分发信函时,可以对不同的信函接收方授予相同或不同的权限,由此不同的信函接收方可以基于自身被授予的权限访问信函中对应的内容。因此考虑到由于不同的信函接收方被授权所查看的内容不同,所以在分发信函时可以对信函内容进行属性权限加密。即可以根据每个信函接收方的访问权限,确定每个信函接收方的访问控制策略。

例如,用户a作为信函分发方,同时向用户b和用户c分发同一信函,假设用户a授权用户b仅能查看该信函的第一段内容,授权用户c仅能查看该信函的第二段内容。那么可以根据用户b和用户c的访问权限,分别为用户b和用户c配置访问控制策略。

在操作s420,基于访问控制策略,对需要填充的内容进行属性加密,以获得对应的第一密文。

根据本公开的实施例,可以根据为每个信函接收方配置的访问控制策略,对需要填充的内容进行属性加密,以便不同信函接收方基于自身被授予的权限对第一密文解密时,可以获得与自身被授予的权限对应的内容。例如,可以利用公钥对该需要填充的内容进行属性加密,以获得第一密文。

例如,用户a作为信函接收方,向用户b和用户c分发同一信函,假设用户a授权用户b仅能查看该信函的第一段内容,授权用户c仅能查看该信函的第二段内容。则可以根据用户b和用户c的访问权限,分别为用户b和用户c配置访问控制策略。并根据用户b和用户c的访问控制策略,利用公钥对需要填充的内容进行属性加密,获得第一密文。

则在用户b和用户c获取到该第一密文的情况下,可以使用与各自对应的密钥对该第一密文进行解密,以获得对应的明文。例如,用户b利用与用户b对应的密钥对该第一密文进行解密,可以获得该信函中的第一段内容。用户c利用与用户c对应的密钥对该第一密文进行解密,可以获得该信函中的第二段内容。

在操作s430,将第一密文与哈希值和标识信息一起写入区块链。

通过本公开的实施例,由于采用了根据每个信函接收方的访问控制策略,对需要填充的内容进行属性加密的技术手段,可以使不同的信函接收方基于自身权限查看对应的内容,从而可以实现多方数据共享。同时,将加密后的内容、哈希值和标识信息写入区块链,从而可以保证在数据传输过程中的安全性,进而可以减少隐私信息泄露的风险。此外,使用与信函模板对应的哈希值代替信函模板本身(即使用哈希值代替对应的模板文件本身),可以节约区块链的存储资源和减小区块链的交互压力。

图5示意性示出了根据本公开另一实施例的将哈希值、需要填充的内容和标识信息写入区块链的流程图。如图5所示,该方法可以包括操作s510~s530。

在操作s510,确定针对至少一个信函接收方中每个信函接收方配置的访问控制策略。

根据本公开的实施例,信函分发方在分发信函时,可以对不同信函接收方授予相同或者不同的权限,因此可以根据每个信函接收方的访问权限,确定每个信函接收方的访问控制策略。

在操作s520,基于访问控制策略,对哈希值和需要填充的内容进行属性加密,以获得对应的第二密文。

根据本公开的实施例,可以根据每个信函接收方的访问控制策略,将获取的哈希值以及需要填充的内容进行属性加密,获得第二密文。以便在不同信函接收方对第二密文进行解密的情况下,可以获取该哈希值,以及可以对自身被授权的内容进行访问。

在操作s530,将第二密文与标识信息一起写入区块链。

通过本公开的实施例,由于采用了根据每个信函接收方的访问控制策略,对需要填充的内容进行属性加密的技术手段,可以使不同的信函接收方基于自身权限查看对应的内容,从而可以实现多方数据共享。同时,将加密后获得的第二密文和标识信息写入区块链,从而可以保证在数据传输过程中的安全性,进而可以减少隐私信息泄露的风险。此外,使用与信函模板对应的哈希值代替信函模板本身,可以节约区块链的存储资源和减小区块链的交互压力。

在一个实施例中,在将第一密文、哈希值和标识信息一起写入区块链的情况下,或,在将第二密文和标识信息一起写入区块链的情况下,可以将该第一密文、哈希值和标识信息,或,该第二密文和标识信息通过节点中的消息推送系统广播至区块链全网。

在另一个实施例中。消息推送系统可以根据写入的标识信息,将第一密文、哈希值和标识信息,或,第二密文和标识信息推送该标识信息指示的一个或者多个指定的区块链节点。

作为一种可选的实施例,该方法还包括:针对每个信函接收方,针对信函接收方生成属性集合,其中属性集合包括:信函接收方的标识信息与对应的访问控制策略;以及基于属性集合,为信函接收方生成对应的用户密钥,以便信函接收方访问目标信函时用于对密文进行解密。

根据本公开的实施例,可以将根据每个信函接收方的访问权限,为每个信函接收方配置的访问控制策略。并根据为每个信函接收方配置的访问控制策略和每个信函接收方的标识信息,为每个生成属性集合。以及根据每个属性集合,为每个信函接收方生成对应的密钥。

通过本公开的实施例,由于采用了为具有不同访问权限的信函接收方,生成对应的属性集合,并基于该属性集合,为不同的信函接收方生成对应的密钥的技术手段。可以实现多方数据共享,同时,还可以使不同的信函接收方查看自身具有权限的内容。从而可以避免私密信息的泄露。

作为一种可选的实施例,该方法还包括:对信函接收方进行数字身份验证;以及响应于数字身份验证通过,针对信函接收方发起的信函分发请求执行信函分发相关操作。

根据本公开的实施例,在用户基于区块链分发信函时,可以先对用户身份进行验证。或者信函接收方在基于区块链执行访问信函前,可以对用户身份进行验证。例如,在用户基于区块链分发信函时,可以先利用用户输入的数字身份证号码(did)对用户身份进行验证。在用户输入的数字身份证号码存在的情况下,通过验证。

根据本公开的实施例,未注册用户可以通过注册,获取数字身份号码(did),该数字身份号码(did)可以作为该用户的唯一标识符。

根据本公开的实施例,对用户身份进行验证还可以包括:采集需要验证的用户的人脸图像,在该用户输入的数字身份证号码验证通过的情况下(例如可以是确认该用户输入的数字身份证号码存在),获取与该用户输入的数字身份证号码对应的人脸图像。并将采集的该用户的人脸图像和获取的与该用户输入的数字身份证号码对应的人脸图像进行比对。在该用户的人脸图像与获取的与该用户输入的数字身份证号码对应的人脸图像一致的情况下,该用户的身份验证通过。

需要说明的是,在用户进行注册时,除为用户提供与该用户唯一关联的数字身份号码外,还可以采集该用户的人脸图像,并将该用户的人脸图像和该用户的数字身份号码关联,以便在验证用户身份时使用。

通过本公开的实施例,在信函接收方进行信函分发前,可以对信函分发方的身份进行验证。在信函接收方对信函进行访问前,可以对信函接收方的身份进行验证。由此,可以保证用户身份的可靠性,进而可以避免分发的消息被泄露或篡改。

图6示意性示出了根据本公开实施例的基于区块链的信函访问方法的流程图。如图6所示,该方法可以包括操作s610~s640。

在操作s610,获取通过区块链推送的针对信函模板生成的哈希值。

根据本公开的实施例,信函分发方可以根据信函接收方的标识信息,通过消息推送系统将与信函分发方选择的信函模板对应的哈希值和信函填充的内容,推送至信函接收方所对应的节点。

在操作s620,基于哈希值,获取用于生成信函模板的模板文件。

根据本公开的实施例,在信函分发方根据信函接收方的标识信息,将哈希值推送至相应节点的情况下,信函接收方可以根据获取到的哈希值,从星际文件系统中获取到与该哈希值对应的模板文件。

在操作s630,获取通过区块链推送的针对信函模板需要填充的内容或需要填充的内容的密文。

根据本公开的实施例,信函分发方可以根据信函接收方的标识信息,将需要填充的内容推送至相应节点。或者信函分发方将需要填充的内容进行加密后获得密文,根据信函接收方的标识信息,将该密文推送至相应节点。

在操作s640,基于模板文件和需要填充的内容,或者基于模板文件和密文,生成对应的目标信函并进行访问。

在本公开的一个实施例中,可以根据模板文件,确定需要填充的内容,以便生成对应的信函模板。并根据获取到的需要填充的内容,对信函模板进行内容填充,以生成目标信函进行访问。

在本公开的另一个实施例中,可以根据模板文件,确定需要填充的内容,以便生成对应的信函模板。同时可以对获取到的密文进行解密,从而获取密文中的内容。并利用获取的内容对信函模板进行内容填充,进而生成目标信函进行访问。

例如,根据获取的模板文件,生成对应的信函模板。同时,确定该信函模板中需要在“姓名”一栏填充内容。那么可以根据获取到的需要填充的内容,例如获取到的需要填充的内容为“xx”,则可以将“xx”对应填入“姓名”一栏,即可以获得目标信函。

通过本公开的实施例,由于采用了获取通过区块链推送的哈希值,并根据该哈希值获取模板文件。以及获取区块链推送的需要填充的内容或需要填充的内容的密文。并根据该模板文件、需要填充的内容或需要填充的内容的密文,生成对应的目标信函进行访问的技术手段。可以使得多个信函接收方获取到由信函分发方发送的信函,从而可以实现多方消息共享,同时,通过区块链获取哈希值、填写的内容,可以在保证信函分发的时效性的情况下,还可以避免哈希值和填写的内容被篡改或泄露,从而可以保证所分发的信息的可靠性和准确性。

作为一种可选的实施例,基于哈希值,获取用于生成信函模板的模板文件,包括:基于哈希值,从星际文件系统中获取用于生成信函模板的模板文件。

根据本公开的实施例,信函接收方所对应的节点可以根据获取的哈希值,从星际文件系统中获取与该哈希值对应的模板文件,该模板文件可以用于生成信函模板。

图7示意性示出了根据本公开实施例的基于模板文件和密文生成对应的目标信函的流程图。

如图7所示,该方法可以包括操作s710~s740。

在操作s710,基于信函接收方的标识信息,获取预先生成的密钥。

根据本公开的实施例,在一次信函分发过程中,信函分发方可以将统一信函分发至不同的信函接收方,并对不同的信函接收方授予相同或不同的权限。因此,信函分发放方对应的节点可以根据每个信函接收方的权限,以及每个信函接收方的标识信息,为不同的信函接收方生成对应的属性集合。并基于该属性集合,为每个信函接收方生成对应的密钥。同时根据信函接收方的标识信息,将与信函模板对应的哈希值和需要填充的内容的密文,推送至对应的节点。同时,信函接收方还可以去加密系统自取对应的密钥。

在操作s720,利用密钥对密文进行属性解密,以获得对应的明文。

根据本公开的实施例,信函接收方可以使用与自身对应的密钥对密文进行解密。由于不同的信函接收方被授予相同或不同的访问权限,因此,信函接收方基于与自身对应的密钥对密文进行解密,所获得的明文与自身被授予的访问权限对应。

例如,用户a可以基于区块链节点将密文分发给用户b和用户c。那么,用户a可以根据用户b的标识信息,将哈希值和密文发给用户b,用户b可以从加密系统中取出与自身对应的密钥。用户a还可以根据用户c的标识信息,将哈希值和密文发给用户c,用户c则可以从加密系统中取出与自身对应的密钥。在用户b和用户c分别获取到与自身对应的密钥的情况下,用户b可以利用获取的密钥对该密文进行解密,则可以获得与用户a授予用户b访问权限对应的明文。用户c利用获取的密钥对该密文进行解密,则可以获得与用户a授予用户c访问权限对应的明文。

在操作s730,基于模板文件生成信函模板。

根据本公开的实施例,根据获取的模板文件,确定需要填充的内容,并生成对应的信函模板。

在操作s740,使用明文对信函模板进行内容填充,以获得目标信函。

通过本公开的实施例,由于采用了需要利用与信函接收方对应的密钥对密文进行解密的技术手段,从而可以保证在多方实现消息共享的基础上,不同信函接收方基于自身权限查看对应的内容。从而可以避免私密信息泄露的风险。

图8示意性示出了根据本公开实施例的基于区块链的信函分发装置的框图。

如图8所示,一种基于区块链的信函分发装置800包括确定模块801、第一获取模块802、第二获取模块803、第三获取模块804、第四获取模块805和信函分发模块806。该处理装置可以执行上面参考方法实施例部分描述的方法,在此不再赘述。

具体地,确定模块801,用于确定需要使用的信函模板。第一获取模块802,用于获取针对上述信函模板生成的哈希值。第二获取模块803,用于基于上述哈希值,获取用于生成上述信函模板的模板文件。第三获取模块804,用于基于上述模板文件,获取针对上述信函模板需要填充的内容第四获取模块805,用于获取至少一个信函接收方的标识信息。以及信函分发模块806,用于将上述哈希值、上述需要填充的内容和上述标识信息写入区块链,以便上述区块链基于上述标识信息将目标信函分发至上述至少一个信函接收方,其中上述目标信函为基于上述哈希值和上述需要填充的内容生成的信函。

作为一种可选的实施例,第二获取模块包括:第一获取子模块,用于从上述区块链中获取针对上述信函模板生成的上述哈希值;以及第二获取子模块,用于基于上述哈希值,从星际文件系统中获取用于生成上述信函模板的上述模板文件。

作为一种可选的实施例,信函分发模块包括:第一确定子模块,用于确定针对上述至少一个信函接收方中每个信函接收方配置的访问控制策略;第一加密子模块,用于基于上述访问控制策略,对上述需要填充的内容进行属性加密,以获得对应的第一密文;以及第一写入子模块,用于将上述第一密文与上述哈希值和上述标识信息一起写入上述区块链。

作为一种可选的实施例,信函分发模块包括:第二确定子模块,用于确定针对上述至少一个信函接收方中每个信函接收方配置的访问控制策略;第二加密子模块,用于基于上述访问控制策略,对上述哈希值和上述需要填充的内容进行属性加密,以获得对应的第二密文;以及第二写入子模块,用于将上述第二密文与上述标识信息一起写入上述区块链。

作为一种可选的实施例,上述分发装置还包括:第一生成模块,用于针对上述每个信函接收方,针对信函接收方生成属性集合,其中上述属性集合包括:信函接收方的标识信息与对应的访问控制策略;以及第二生成模块,用于基于上述属性集合,为信函接收方生成对应的用户密钥,以便信函接收方访问上述目标信函时用于对密文进行解密。

作为一种可选的实施例,上述分发装置还包括:执行模块,用于对信函接收方进行数字身份验证;以及响应于数字身份验证通过,针对上述信函接收方发起的信函分发请求执行信函分发相关操作。

图9示意性示出了根据本公开实施例的基于区块链的信函访问装置的框图。

如图9所示,一种基于区块链的信函访问装置900包括第五获取模块901、第六获取模块902、第七获取模块903、信函生成模块904和信函访问模块905。该处理装置可以执行上面参考方法实施例部分描述的方法,在此不再赘述。

具体地、第五获取模块901,用于获取通过区块链推送的针对信函模板生成的哈希值。第六获取模块902,用于基于上述哈希值,获取用于生成上述信函模板的模板文件。第七获取模块903,用于获取通过上述区块链推送的针对上述信函模板需要填充的内容或上述需要填充的内容的密文。信函生成模块904,用于基于上述模板文件和上述需要填充的内容,或者基于上述模板文件和上述密文,生成对应的目标信函。以及信函访问模块905,用于对上述目标信函进行访问。

作为一种可选的实施例,第六获取模块包括:第一生成子模块,用于基于上述哈希值,从星际文件系统中获取用于生成上述信函模板的上述模板文件。

作为一种可选的实施例,信函生成模块包括:第三获取子模块,用于基于信函接收方的标识信息,获取预先生成的密钥;解密子模块,用于利用上述密钥对上述密文进行属性解密,以获得对应的明文;第二生成子模块,用于基于上述模板文件生成上述信函模板;以及填充子模块,用于使用上述明文对上述信函模板进行内容填充,以获得上述目标信函。

需要说明的是,装置部分的实施例方式与方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。

根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,确定模块801、第一获取模块802、第二获取模块803、第三获取模块804、第四获取模块805和信函分发模块806(或者,第五获取模块901、第六获取模块902、第七获取模块903、信函生成模块904和信函访问模块905)中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,确定模块801、第一获取模块802、第二获取模块803、第三获取模块804、第四获取模块805和信函分发模块806(或者,第五获取模块901、第六获取模块902、第七获取模块903、信函生成模块904和信函访问模块905)中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,确定模块801、第一获取模块802、第二获取模块803、第三获取模块804、第四获取模块805和信函分发模块806(或者,第五获取模块901、第六获取模块902、第七获取模块903、信函生成模块904和信函访问模块905)中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图10示意性示出了根据本公开实施例的电子设备的框图。图10示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图10所示,电子设备1000包括处理器1010、计算机可读存储介质1020。该电子设备1000可以执行根据本公开实施例的方法。

具体地,处理器1010例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器1010还可以包括用于缓存用途的板载存储器。处理器1010可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质1020,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;等等。

计算机可读存储介质1020可以包括计算机程序1021,该计算机程序1021可以包括代码/计算机可执行指令,其在由处理器1010执行时使得处理器1010执行根据本公开实施例的方法或其任何变形。

计算机程序1021可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1021中的代码可以包括一个或多个程序模块,例如包括1021a、模块1021b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1010执行时,使得处理器1010可以执行根据本公开实施例的方法或其任何变形。

根据本公开的实施例,确定模块801、第一获取模块802、第二获取模块803、第三获取模块804、第四获取模块805和信函分发模块806(或者,第五获取模块901、第六获取模块902、第七获取模块903、信函生成模块904和信函访问模块905)中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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