信息提供方法及装置
技术领域
本公开涉及计算机技术领域,具体地,涉及信息提供方法及装置。
背景技术
区块链技术利用链式数据结构来验证和存储数据,并利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和访问安全。在利用区块链技术处理交易时,针对客户端发起的交易,通常在该交易通过验证时才会调用智能合约来执行该交易,因而能够保证交易安全性。数据一旦被写入每个节点上的区块链,一方面,意味着数据在区块链网络中被公开,另一方面,写入区块链的数据也难以被删除与篡改。此外,中心化设备也可以采用类似于区块链存储(可以视为中心化的区块链存储)的方式对数据进行存储。
在信息传播场景中,出于保护著作权或保密等目的,需要限制用户对预定信息的查看权限。区块链技术的安全性和可靠性能够好地实现这种需求。因而,区块链技术在信息传播场景中有广泛的应用前景。
发明内容
鉴于上述,本公开提供了信息提供方法及装置。利用本公开的方法和装置,通过在允许用户查看预定信息时,向用户的终端设备提供解密密钥以用于对加密信息解密,能够严格限制用户对预定信息的查看权限。
根据本公开的一个方面,提供了一种用于向终端设备提供信息的方法,包括:将加密信息和从区块链获取的所述加密信息的区块链交易哈希发送给用户的第一终端设备,所述加密信息是利用针对预定信息的加密密钥对所述预定信息进行加密处理而生成的;从所述第一终端设备接收针对所述加密信息的信息查看请求,所述信息查看请求包括所述区块链交易哈希;当确定允许所述用户查看所述预定信息时,响应于所述信息查看请求,基于所述区块链交易哈希和预先存储的密钥索引,获取对应于所述加密密钥的解密密钥,所述密钥索引指示所述区块链交易哈希所对应的解密密钥;以及将所述解密密钥发送给所述第一终端设备。
可选地,在一个示例中,所述方法还可以包括:在满足预定条件时,删除所存储的解密密钥。
可选地,在一个示例中,在满足预定条件时,删除所存储的解密密钥可以包括以下中的至少一者:在从所述第一终端设备接收到所述查看结束消息时,删除所存储的解密密钥;在从预定数量的用户的第一终端设备接收到所述查看结束消息时,删除所存储的解密密钥;在将所述解密密钥发送给所述第一终端设备之后,经过预定时间后,删除所存储的解密密钥;在确定不允许所述用户查看所述预定信息时,删除所存储的解密密钥。
可选地,在一个示例中,所述密钥索引可以存储在密钥存储库中,获取所述解密密钥以及删除所存储的解密密钥可以基于密钥存储库访问密钥执行。
可选地,在一个示例中,所述加密信息可以是在确定允许所述用户查看所述预定信息时发送给所述第一终端设备的。
可选地,在一个示例中,在将所述加密信息的区块链交易哈希发送给所述第一终端设备之后,以及将所述加密信息发送给所述第一终端设备之前,所述方法还可以包括:从所述第一终端设备接收针对所述加密信息的加密信息提供请求,所述加密信息提供请求包括所述区块链交易哈希和用户标识;以及基于所述区块链交易哈希和所述用户标识,确定是否允许所述用户查看所述预定信息。
可选地,在一个示例中,所述方法还可以包括:在获取到第二终端设备发布的预定信息时,利用加密密钥对所述预定信息进行加密处理,以得到所述加密信息;以及将所述加密信息发送至区块链***以执行区块链上链操作;以及从区块链中获取所述加密信息对应的区块链交易哈希。
可选地,在一个示例中,所述方法还可以包括:在获取到第二终端设备发布的预定信息时,针对所述预定信息随机生成所述加密密钥和所述解密密钥;以及在获取到所述区块链交易哈希时,存储所述密钥索引。
根据本公开的另一方面,还提供一种用于在终端设备提供信息的方法,包括:获取加密信息和所述加密信息的区块链交易哈希,所述加密信息是利用加密密钥对预定信息进行加密处理而生成的;在获取到所述加密信息和区块链交易哈希时,向信息提供服务器发送信息查看请求,所述信息查看请求包括所述区块链交易哈希;从所述信息提供服务器接收对应于所述区块链交易哈希的解密密钥;利用所述解密密钥对所述加密信息进行解密,以得到所述预定信息;存储所述解密密钥和所述预定信息;以及在满足预定条件时,删除所存储的预定信息和解密密钥。
可选地,在一个示例中,存储所述解密密钥和所述预定信息可以包括:缓存所述解密密钥和所述预定信息。
可选地,在一个示例中,获取加密信息和所述加密信息的区块链交易哈希可以包括:从所述信息提供服务器获取所述区块链交易哈希;在获取到所述区块链交易哈希之后,向所述信息提供服务器发送针对所述加密信息的加密信息提供请求,所述加密信息提供请求包括所述区块链交易哈希和用户标识;以及从所述信息提供服务器接收对应于所述区块链交哈希的加密信息。
可选地,在一个示例中,在向所述信息提供服务器发送针对所述加密信息的加密信息提供请求之前,获取加密信息和所述加密信息的区块链交易哈希还可以包括:在获取到所述加密信息和区块链交易哈希时,向所述终端设备的用户发出确认提示消息;以及向所述信息提供服务器发送针对所述加密信息的加密信息提供请求包括:在接收到针对所述确认提示消息的确认指示时,向所述信息提供服务器发送所述加密信息提供请求。
可选地,在一个示例中,在获取到所述加密信息和区块链交易哈希时,向信息提供服务器发送信息查看请求可以包括:响应于所述加密信息和所述区块链交易哈希,向所述用户发出信息查看提示消息;以及在接收到针对所述信息查看提示消息的查看确认状态信号时,向所述信息提供服务器发送信息查看请求,所述查看确认状态信号指示所述用户正在查看所述预定信息。
可选地,在一个示例中,所述预定条件可以包括:不存在所述查看确认状态信号;和/或获取到所述查看确认状态信号之后经过预定时间。
可选地,在一个示例中,所述方法还可以包括:在满足所述预定条件时,向所述信息提供服务器发送查看结束消息。
根据本公开的另一方面,还提供一种用于向终端设备提供信息的装置,包括:加密信息数据发送单元,被配置为将加密信息和从区块链获取的所述加密信息的区块链交易哈希发送给用户的第一终端设备,所述加密信息是利用针对预定信息的加密密钥对所述预定信息进行加密处理而生成的;信息查看请求接收单元,被配置为从所述第一终端设备接收针对所述加密信息的信息查看请求,所述信息查看请求包括所述区块链交易哈希;解密密钥获取单元,被配置为当确定允许所述用户查看所述预定信息时,响应于所述信息查看请求,基于所述区块链交易哈希和预先存储的密钥索引,获取对应于所述加密密钥的解密密钥,所述密钥索引指示所述区块链交易哈希所对应的解密密钥;以及解密密钥发送单元,被配置为将所述解密密钥发送给所述第一终端设备。
可选地,在一个示例中,还可以包括:解密密钥删除单元,被配置为在满足预定条件时,删除所存储的解密密钥。
可选地,在一个示例中,所述解密密钥删除单元被配置为:在从所述第一终端设备接收到所述查看结束消息时,删除所存储的解密密钥;在从预定数量的用户的第一终端设备接收到所述查看结束消息时,删除所存储的解密密钥;在将所述解密密钥发送给所述第一终端设备之后,经过预定时间后,删除所存储的解密密钥;或在确定不允许所述用户查看所述预定信息时,删除所存储的解密密钥。
可选地,在一个示例中,所述解密密钥删除单元可以被配置为:基于密钥存储库访问密钥,删除所存储的解密密钥;所述解密密钥获取单元被配置为:进一步基于所述密钥存储库访问密钥,获取所述解密密钥。
可选地,在一个示例中,加密信息数据发送单元可以被配置为:在确定允许所述用户查看所述预定信息时,将加密信息发送给所述第一终端设备。
可选地,在一个示例中,所述装置还可以包括:加密信息提供请求接收单元,被配置为在将所述加密信息的区块链交易哈希发送给所述第一终端设备之后,以及将所述加密信息发送给所述第一终端设备之前,从所述第一终端设备接收针对所述加密信息的加密信息提供请求,所述加密信息提供请求包括所述区块链交易哈希和用户标识;以及用户审核单元,被配置为基于所述区块链交易哈希和所述用户标识,确定是否允许所述用户查看所述预定信息。
可选地,在一个示例中,所述装置还可以包括:信息加密单元,被配置为在获取到第二终端设备发布的预定信息时,利用加密密钥对所述预定信息进行加密处理,以得到所述加密信息;区块链上链单元,被配置为将所述加密信息发送至区块链***以执行区块链上链操作;以及区块链交易哈希获取单元,被配置为获取所述加密信息对应的区块链交易哈希。
可选地,在一个示例中,所述装置还可以包括:密钥生成单元,被配置为在获取到第二终端设备发布的预定信息时,针对所述预定信息随机生成所述加密密钥和所述解密密钥;以及密钥索引存储单元,被配置为在获取到所述区块链交易哈希时,存储所述密钥索引。
可选地,在一个示例中,所述加密信息数据发送单元可以被配置为:将所述区块链交易哈希推送给一个或多个被指定的用户的第一终端设备;或在接收到用户标识时,将所述区块链交易哈希发送给所述用户标识对应的用户的第一终端设备。
根据本公开的另一方面,还提供一种用于在终端设备提供信息的装置,包括:加密信息数据获取单元,被配置为获取加密信息和所述加密信息的区块链交易哈希,所述加密信息是利用加密密钥对预定信息进行加密处理而生成的;信息查看请求发送单元,被配置为在获取到所述加密信息和区块链交易哈希时,向信息提供服务器发送信息查看请求,所述信息查看请求包括所述区块链交易哈希;解密密钥接收单元,被配置为从所述信息提供服务器接收对应于所述区块链交易哈希的解密密钥;加密信息解密单元,被配置为利用所述解密密钥对所述加密信息进行解密,以得到所述预定信息;信息存储单元,被配置为存储所述解密密钥和所述预定信息;以及信息删除单元,被配置为在满足预定条件时,删除所缓存的预定信息和解密密钥。
可选地,在一个示例中,所述信息存储单元可以被配置为:缓存所述解密密钥和所述预定信息。
可选地,在一个示例中,所述加密信息数据获取单元可以包括:区块链交易哈希获取模块,被配置为从所述信息提供服务器获取所述区块链交易哈希;加密信息提供请求发送模块,被配置为在获取到所述区块链交易哈希之后,向所述信息提供服务器发送针对所述加密信息的加密信息提供请求,所述加密信息提供请求包括所述区块链交易哈希和用户标识;以及加密信息接收模块,被配置为从所述信息提供服务器接收对应于所述区块链交哈希的加密信息。
可选地,在一个示例中,所述加密信息数据获取单元还可以包括:确定提示消息发送模块,被配置为在向所述信息提供服务器发送针对所述加密信息的加密信息提供请求之前,在获取到所述区块链交易哈希时,向所述终端设备的用户发出确认提示消息;以及加密信息提供请求发送模块,被配置为:在接收到针对所述确认提示的确认指示消息时,向所述信息提供服务器发送所述加密信息提供请求。
可选地,在一个示例中,所述信息查看请求发送单元可以包括:信息查看提示消息发送模块,被配置为在获取到所述加密信息和所述区块链交易哈希时,向所述用户发出信息查看提示消息;以及信息查看请求发送模块,被配置为在接收到针对所述信息查看提示消息的查看确认状态信号时,向所述信息提供服务器发送信息查看请求,所述查看确认状态信号指示所述用户在查看所述预定信息。
可选地,在一个示例中,所述预定条件可以包括:不存在所述查看确认状态信号;和/或获取到所述查看确认状态信号之后经过预定时间。
可选地,在一个示例中,所述装置还可以包括:查看结束消息发送单元,被配置为在满足所述预定条件时,向所述信息提供服务器发送查看结束消息。
根据本公开的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上第一方面所述的方法。
根据本公开的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上第一方面所述的方法。
根据本公开的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上第二方面所述的方法。
根据本公开的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上第二方面所述的方法。
利用本公开的方法和装置,通过向用户的终端设备提供加密信息,并在允许用户查看预定信息时,向用户的终端设备提供对应于该加密信息的解密密钥以用于对加密信息解密,能够严格限制用户对预定信息的查看权限。此外,通过在用户终端设备上缓存所获取的解密密钥和解密得到的预定信息,并在满足预定条件时删除解密密钥和预定信息,从而能够在满足预定条件的情况下,使用户无法查看预定信息。
利用本公开的方法和装置,通过使信息提供服务器在满足预定条件时删除解密密钥,能够使得任何人都无法再次查看预定信息,从而能够提高预定信息的安全性。
利用本公开的方法和装置,通过设置对密钥存储库的访问权限,使得基于密钥存储库访问密钥才能访问解密密钥,能够防止解密密钥被泄漏或更改。
利用本公开的方法和装置,通过针对预定信息随机生成加密密钥和对应的解密密钥,能够降低解密密钥被他人获知的可能性,进一步提高对预定信息的查看权限的限制级别。
利用本公开的方法和装置,通过在不存在查看确认状态信号时删除用户的终端设备上的解密密钥和预定信息,能够避免用户通过截图等手段复制预定信息。
附图说明
通过参照下面的附图,可以实现对于本公开内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开的实施例,但并不构成对本公开的实施例的限制。在附图中:
图1示出了可用于执行根据本公开的实施例的信息提供方法的环境的示例的示意图;
图2示出了执行根据本公开的实施例的信息提供方法的***架构的示例的示意图;
图3A是根据本公开的一个实施例的向终端设备提供信息的方法和在终端设备提供信息的方法的流程图;
图3B是根据本公开的另一实施例的向终端设备提供信息的方法和在终端设备提供信息的方法的流程图;
图4是根据本公开的另一实施例的向终端设备提供信息的方法和在终端设备提供信息的方法的流程图;
图5是根据本公开的一个实施例的向终端设备提供信息的方法中的信息加密过程的一个示例的流程图;
图6是根据本公开的一个实施例的在终端设备提供信息的方法中的信息解密和信息删除过程的一个示例的流程图;
图7是根据本公开的一个实施例的信息提供装置的结构框图;
图8是根据本公开的另一实施例的信息提供装置的结构框图;
图9是根据本公开的另一实施例的信息提供装置的结构框图;
图10是图9所示的信息提供装置中的加密信息数据获取单元的一个示例的结构框图;
图11是图9所示的信息提供装置中的信息查看请求发送单元的一个示例的结构框图;
图12是根据本公开的一个实施例的用于实现向终端设备提供信息的方法的计算设备的结构框图;
图13是根据本公开的一个实施例的用于实现在终端设备提供信息的方法的计算设备的结构框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
现在结合附图来描述本公开的信息提供方法及装置。
区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链包括一个或多个区块。区块链中的每个区块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易(transaction)。对已经被区块链网络的节点验证的交易进行哈希处理并形成Merkle树。在Merkle树中,对叶节点处的数据进行哈希处理,并且针对Merkle树的每个分支,在该分支的根处级联该分支的所有哈希值。针对Merkle树执行上述处理,直到整个Merkle树的根节点。Merkle树的根节点存储代表该Merkle树中的所有数据的哈希值。当一个哈希值声称是Merkle树中存储的交易时,可以通过判断该哈希值是否与Merkle树的结构一致来进行快速验证。
区块链是用于存储交易的数据结构。区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网络。如上所述,区块链网络可以包括公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包括特定对等支付网络。此外,术语“区块链”不特别指代任何特定的区块链。
公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现共识协议。共识协议的示例包括但不限于:工作量证明(POW,proof-of-work),权益证明(POS,proof-of-stake)和权威证明(POA,proof-of-authority)。在本公开中,采用POW作为非限制性示例。
私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许谁参与网络以及的网络参与水平(例如,仅在某些交易情形下)进行限制。在私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对添加新实体进行投票,监管机构控制许可等)。
联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权节点控制。例如,由若干个(例如,10个)实体(例如,金融机构,保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是参与实体的私有网络。在一些示例中,每个参与实体(节点)必须按序对每个区块进行签名,并将该区块添加到区块链。在一些示例中,可以由参与实体(节点)的子集(例如,至少7个实体)来对每个区块进行签名,并将该区块添加到区块链。
在本公开中参***区块链网络来详细描述本公开的实施例。然而,可以预期,本公开的实施例可以在任何适合的区块链网络中实现。
区块链是防篡改的共享数字分类账,其在公有或私有对等网络中记录交易。分类帐被分发到网络中的所有成员节点,并且网络中发生的资产交易历史记录被永久记录在区块中。
共识机制确保分布式区块链网络中的所有网络节点按照相同的顺序执行交易,并且随后写入相同的分类账。共识机制可以用于解决拜占庭问题。
图1示出了可用于执行根据本公开的实施例的交易验证方法的环境100的示例的示意图。在一些示例中,环境100使得实体能够参与区块链网络102。如图1所示,环境100包括网络104、和计算设备/***106、108。在一些示例中,网络104可以包括局域网(LAN),广域网(WAN),因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端***。在一些示例中,可以通过有线和/或无线通信链路来访问网络104。在一些示例中,计算设备/***106、108通过网络104相互通信,以及通过网络104实现与区块链网络102之间的通信,以及区块链网络102中的节点(或,节点设备)通过网络104来进行通信。通常,网络104表示一个或多个通信网络。在一些情况下,计算设备/***106、108可以是云计算***(未示出)的节点,或者每个计算设备/***106、108可以是单独的云计算***,其包括通过网络104互连的多个计算机并且用作分布式处理***。
在所说明的示例中,计算设备/***106、108中的每个可以包括能够参与作为区块链网络102中的节点的任何合适的计算***。计算设备/***的示例包括但不限于,服务器,台式计算机,笔记本电脑,平板电脑设备和智能手机等。在一些示例中,计算设备/***106、108上可以安装有用于与区块链网络102交互的一个或多个计算机实现的服务。例如,计算设备/***106可以上可以安装有第一实体(例如,用户A)的服务,比如,第一实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理***。计算设备/***108可以上可以安装有第二实体(例如,用户B)的服务,比如,第二实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理***。在图1的示例中,区块链网络102被表示为节点的对等网络,并且计算设备/***106、108分别作为参与区块链网络102的第一实体和第二实体的节点。
图2示出了执行根据本公开的实施例的交易验证方法的***架构200的示例的示意图。***架构200的示例包括分别与参与方A,参与方B和参与方C对应的参与方***202、204、206。每个参与方(例如,用户,企业)参与被提供来作为对等网络的区块链网络212。区块链网络212包括多个节点214,其中,节点214中的至少一些节点在区块链216中记录信息,并且所记录的信息不可更改。尽管在区块链网络212内示意性地示出了单个区块链216,但是可以提供区块链216的多个副本,并且在区块链网络212中维护多个副本,如稍后详细描述的。
在所示出的示例中,每个参与方***202、204、206分别由参与方A,参与方B和参与方C提供,或者被提供来作为参与方A,参与方B和参与方C,并且充当区块链网络212内的对应节点214。如这里所使用的,节点通常是指连接到区块链网络212的单个***(例如,计算机,服务器),并且使得相应的参与方能够参与区块链网络。在图2示出的示例中,参与方对应于每个节点214。然而,一个参与方可以操作区块链网络212内的多个节点214,和/或多个参与方可以共享单个节点214。在一些示例中,参与方***202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)来与区块链网络212通信,或者通过区块链网络212进行通信。
节点214在区块链网络212的参与度可以不同。例如,一些节点214可以参与共识过程(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与共识过程。作为另一示例,一些节点214存储区块链216的完整副本,而其他节点214仅存储区块链216的部分副本。在图2的示例中,参与方***202、204、206各自存储区块链216的完整副本216'、216”、216”'。
区块链(例如,图2中的区块链216)由一连串的区块组成,每个区块存储数据。数据的示例可以包括表示两个或更多参与方之间的交易的交易数据。在本公开中,交易被使用来作为非限制性示例,可以预期的是,任何适当的数据都可以存储在区块链中(例如,文档,图像,视频,音频)。交易的示例可以包括但不限于交换有价值的东西(例如,资产,产品,服务和货币等)。交易数据被不可更改地存储在区块链中。
在存储在区块中之前,对交易数据进行哈希处理。哈希处理是将(作为字符串数据提供的)交易数据转换为固定长度的哈希值(也被作为字符串数据提供)的过程。通过对交易数据进行哈希处理后,即使交易数据出现轻微更改,也会导致得到完全不同的哈希值。哈希值通常是通过使用哈希函数来对交易数据进行哈希处理而生成的。哈希函数的示例包括但不限于安全散列算法(SHA)-256,其输出256比特的哈希值。
多个交易的交易数据可以在被哈希化之后存储在区块中。例如,对两个交易数据进行哈希处理得到两个哈希值,然后,对所得到的两个哈希值再次进行哈希处理以得到另一哈希值。重复该过程,直到对于要存储在区块中的所有交易,得到单个哈希值。该哈希值被称为Merkle根哈希,并且被存储在区块的头部。任何交易的更改都会导致其哈希值发生变化,最终导致Merkle根哈希值发生变化。
通过共识协议来将区块添加到区块链中。区块链网络中的多个节点参与共识协议,并且经过竞争之后将区块添加到区块链中。这样的节点被称为矿工节点(或记账节点)。以上介绍的POW用作非限制性示例。
矿工节点执行共识过程来将交易(所对应的区块)添加到区块链。虽然多个矿工节点参与共识过程,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识过程中竞争以将其区块添加到区块链中。更详细地,矿工节点周期性地从交易池中收集待处理的交易(例如,直到达到在区块中可以包括的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与方的交易消息。矿工节点创建区块,并将交易添加到区块中。在将交易添加到区块之前,矿工节点检查待添加的交易中是否存在区块链的区块中具有的交易。如果该交易已被添加到另一个区块中,则该交易将被丢弃。
矿工节点生成区块头,对区块中的所有交易进行哈希处理,并且成对地组合哈希值以生成进一步的哈希值,直到针对区块中的所有交易得到单个哈希值(Merkle根哈希)。然后,将Merkle根哈希添加到区块头中。矿工还确定区块链中的最新区块(即,添加到区块链的最后一个区块)的哈希值。矿工节点还可以在区块头中添加随机数值(noune值)和时间戳。在挖掘过程中,矿工节点尝试找到满足所需参数的哈希值。矿工节点不断更改nonce值,直到找到满足所需参数的哈希值。
区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并且以这种方式彼此竞争。最终,一个矿工节点找到满足所需参数的哈希值,并将该哈希值通告给区块链网络中的所有其他矿工节点。其他矿工节点验证哈希值,如果确定为正确,则验证区块中的每个交易,接受该区块,并将该区块附加到它们的区块链副本中。以这种方式,区块链的全局状态在区块链网络内的所有矿工节点上达成一致。上述过程是POW共识协议。
在图2所提供的示例中,参与方A想要向参与方B发送一定数量的资金。参与方A生成交易消息,并将交易消息发送到区块链网络,该交易消息被增加到交易池中。区块链网络中的每个矿工节点创建区块,并从交易池中获取交易,并将交易添加到区块。按照这种方式,参与方A所发布的交易被添加到矿工节点的区块中。
在一些区块链网络中,实施密码技术来维护交易的隐私性。例如,如果两个节点想要保持交易私密性,使得区块链网络中的其他节点不能获悉交易细节,则节点可以对交易数据进行加密处理。加密方法的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥进行加密(根据明文生成密文)和解密(根据密文生成明文)的加密过程。在对称加密中,多个节点可以使用相同的密钥,因此每个节点都可以对交易数据进行加密/解密。
非对称加密中使用密钥对来进行加密和解密,且每个密钥对包括的私钥和公钥不同。对于一个节点来说,其具有的非对称加密的密钥对中的私钥需要保密存储;公钥可以公开出去,让其它节点获得。如果用公钥对数据进行加密,只有用对应的私钥才能解密。例如,再次参考图1。参与方A可以使用参与方B的公钥来加密数据,并将加密后的数据发送至参与方B。参与方B可以使用其私钥来解密从参与方A发来的加密数据(密文)并解密得到原始数据(明文)。使用节点的公钥加密的消息,只能使用成对秘钥中对应的私钥解密。
非对称加密还可以用于提供数字签名,这使得交易中的参与方能够确认交易中的其他参与方以及交易的有效性。例如,参与方A可以对消息进行数字签名,而另一个参与方B可以根据参与方A的数字签名确认消息是由该参与方A发送的。数字签名还可以用于确保消息在传输过程中不被篡改。例如,再次参考图1。参与方A将向参与方B发送消息。参与方A生成消息的哈希值,然后使用其私钥对哈希值进行加密来生成数字签名。参与方A将该数字签名附加到消息,并将具有数字签名的消息发送给参与方B。参与方B使用参与方A的公钥解密数字签名,从而解密出对应的哈希值。参与方B对所接收的消息进行哈希处理以得到另一哈希值,然后比较两个哈希值。如果哈希值相同,则参与方B可以确认该消息确实来自参与方A,并且未被篡改。
图3A是根据本公开的一个实施例的向终端设备提供信息的方法和在终端设备提供信息的方法的流程图。图3B是根据本公开的另一实施例的向终端设备提供信息的方法和在终端设备提供信息的方法的流程图。
如图3A所示,在3A02,信息提供服务器将加密信息和从区块链获取的加密信息的区块链交易哈希发送给用户的第一终端设备。加密信息是利用针对预定信息的加密密钥对预定信息进行加密处理而生成的。预定信息或加密信息可以预先存储在信息提供服务器中。在一个示例中,可以从信息发布用户接收由信息发布用户进行加密处理的加密信息。用户是查看预定信息的用户。预定信息例如可以是文本、音频、视频、图片等任意格式。
信息提供服务器可以将加密信息发送到区块链***中,以由区块链***执行区块链上链操作。区块链上链操作可以包括共识处理、智能合约执行处理等过程。在加密信息被存储到区块链中之后,信息提供服务器可以从区块链中获取加密信息和该加密信息在区块链中的区块链交易哈希。在另一示例中,信息提供服务器也可以不从区块链中获取加密信息。信息提供服务器在将加密信息发送到区块链***之后,可以加密信息存储在数据库中,从而可以在不访问区块链的情况下获取加密信息。在一个示例中,加密信息也可以不是由信息提供服务器发送到区块链***中进行上链的。此时,信息提供服务器可以从区块链中获取加密信息和对应的区块链交易哈希。
加密密钥可以是基于预定信息的具体内容,利用密钥生成算法生成的。例如,可以基于预定信息生成针对预定信息的非对称密钥,以作为加密密钥和解密密钥。在另一示例中,还可以预先生成密钥库,在对预定信息进行解密时,从密钥库中选取一个或一组密钥进行加密处理。加密处理还可以利用对称加密算法实现,在该示例中,加密密钥与解密密钥相同。
第一终端设备在从信息提供服务器接收到加密信息和该加密信息的区块链交易哈希之后,在3A04,向信息提供服务器发送信息查看请求,以向信息提供服务器请求提供用于解密加密信息的解密密钥。信息查看请求包括用户的用户标识和所接收到的区块链交易哈希。用户标识用于唯一地标识该用户,用户标识可以包括用户ID,还可以包括该用户的终端设备标识(例如终端设备的物理地址或终端设备的加入信息提供服务器所在网络的入网编号等)。当用户标识包括终端设备标识和用户ID时,能够在多个用户同时使用同一终端设备时,识别用户。区块链交易哈希用于通知信息提供服务器用户想要查看的加密信息。在另一示例中,第一终端设备还可以从信息提供服务器下载加密信息和相应的区块链交易哈希。
信息提供服务器在接收到信息查看请求时,在3A06,基于信息查看请求中的用户标识和区块链交易哈希,确定是否允许该用户查看预定信息。信息提供服务器可以维护各个用户查看预定信息的信息查看记录,以记录每个用户对预定信息的查看历史。信息查看记录可以包括用户标识、预定信息对应的区块链交易哈希、查看次数或用户查看的时间戳等信息。在一个示例中,可以设置允许用户查看预定信息的次数,当查看次数超过所设定的次数时不允许用户查看。例如,可以设置为仅允许用户查看一次预定信息。此时,可以基于用户标识和区块链交易哈希和信息查看记录,确定该用户是否查看过相应的预定信息。还可以进一步基于接收到信息查看请求时的时间点和消息查看记录中的时间戳来确定用户是否查看过预定信息。如果未查看过则允许用户查看,如果用户已查看过,则确定不允许该用户查看。
在另一示例中,还可以设置各个用户针对预定信息的查看权限。例如,可以存储有针对预定信息的白名单,只有在白名单中的用户可以查看预定信息。或者,还可以设置不允许查看预定信息的黑名单。由此,即使其他用户截获或通过其他途径获知了区块链交易哈希,也不能够查看预定信息。
在另一示例中,由于加密信息的数据容量较大,为了避免浪费网络流量,加密信息可以是在确定允许用户查看预定信息时发送给用户的。如图3B所示,可以在3B02确定是否允许用户查看预定信息。例如,信息提供服务器可以在向用户推送加密信息和区块链交易哈希之前,基于用户的用户ID和将要推送的区块链交易哈希来确定是否允许用户查看预定信息。
如果确定允许用户查看预定信息,信息提供服务器可以在3B04,将加密信息和区块链交易哈希发送给用户的第一终端设备。第一终端设备在接收到加密信息和区块链交易哈希之后,在3B06,向信息提供服务器发送信息查看请求,以请求查看加密信息中的预定信息。
当信息提供服务器确定允许用户查看预定信息时,如图3A和3B所示,在308,获取对应于加密密钥的解密密钥。对应于加密密钥的解密密钥可以存储在信息提供服务器中,信息提供服务器可以从本地存储器中获取解密密钥。在一个示例中,加密密钥和对应于加密密钥的解密密钥可以由信息发布用户指定。信息提供服务器可以向信息发布用户请求提供解密密钥,以由信息发布用户将解密密钥发送给信息提供服务器。
在获取到解密密钥之后,在310,信息提供服务器将解密密钥发送给第一终端设备。第一终端设备在获取到解密密钥之后,在312,利用解密密钥对加密信息进行解密处理,以得到加密信息中的预定信息。第一终端设备可以存储解密密钥和解密得到的预定信息,以用于在展示给用户。通过在接收到信息查看请求消息时将解密密钥发送给第一终端设备,能够防止解密密钥在第一终端设备上长时间存储。
在一个示例中,为防止第一终端设备的用户将所获得的解密密钥和预定信息永久性存储,第一终端设备可以将缓存所获得的解密密钥和预定信息。例如,可以将解密密钥和预定信息缓存在第一终端设备的内存中。在本公开中,“缓存”是指存储在易失性存储器(例如内存)中。在另一示例中,可以将解密密钥和解密得到的预定信息保存在加密数据库中,仅第一终端设备可以访问该加密数据库。第一终端设备可以利用数据库访问密钥(例如数据库访问身份证书)来读取或写入信息。加密数据库可以位于第一终端设备上。
接下来,第一终端设备在316,确定是否满足预定条件。当满足预定条件是,在318,删除所存储的解密密钥和预定信息。在删除解密密钥和预定信息之后,由于没有解密密钥,第一终端设备将无法获得预定信息,因而用户无法再查看该预定信息。在一个示例中,可以在将解密获得的预定信息缓存之后经过预定时间后,删除解密密钥和通过解密获得的预定信息。在另一示例中,可以在获取到用户查看预定信息的查看信号后经过预定时间之后,删除解密密钥和预定信息。当解密密钥和预定信息被存储在加密数据库中时,第一终端设备可以向加密数据库发送删除指令。该删除指令可以用数据库访问密钥进行加密。
图4是根据本公开的另一实施例的向终端设备提供信息的方法和在终端设备提供信息的方法的流程图。
如图4所示,在402,信息提供服务器将从区块链中获取的对应于预定信息的区块链交易哈希发送给第一终端设备。当信息提供服务器想要向用户推送预定信息时,可以将对应的区块链交易哈希推送给第一终端设备。信息服务器可以向多个用户广播区块链交易哈希,还可以向单个或多个指定用户推送区块链交易哈希。在一个示例中,可以由第一终端设备向信息提供服务器发送用户标识,以请求提供信息,信息提供服务器可以在接收到第一终端设备的请求时,从区块链中获取区块链交易哈希,并发送给对应于用户标识的第一终端设备。例如,第一终端设备向信息提供服务器发送的信息提供请求中可以包括时间段,信息提供服务器可以从区块链中获取相应时间段内的加密信息的区块块链交易哈希,并发送给第一终端设备。
由于接收区块链交易哈希需要占用网络流量以及本地存储空间,因而第一终端设备在监听到区块链交易哈希时,在404,向用户发送确认提示消息,以提示用户确认是否接收所监听到的区块链交易哈希。然后,在406,确定是否接收到用户针对区块链交易哈希的确认指示。
当接收到确认指示时,在408,接收区块链交易哈希,以将其加载到第一终端设备上。接收区块链交易哈希之后,在410,第一终端设备向信息提供服务器发送加密信息提供请求,以请求信息提供服务器向其提供加密信息。加密信息提供请求包括区块链交易哈希和用户标识。
信息提供服务器在接收到加密信息提供请求之后,在412,基于加密信息提供请求中的用户标识和区块链交易哈希,确定是否允许该用户查看预定信息。如果确定允许该用户查看预定信息,则在414,信息提供服务器将加密信息发送给第一终端设备。第一终端设备在获取到加密信息之后,在416,向信息提供服务器发送信息查看请求,以请求获取对加密信息进行解密的解密密钥。
信息提供服务器在接收到信息查看请求时,在418,获取对应的解密密钥,然后在420,将解密密钥发送给第一终端设备。第一终端设备在接收到解密密钥之后,在422,利用解密密钥对加密信息进行解密,并缓存所得到的预定信息。然后,在424,第一终端设备确定是否满足预定条件。
当满足预定条件时,在426,第一终端设备删除所缓存的预定信息和解密密钥。第一终端设备还可以在满足预定条件时,在428,向信息提供服务器发送查看结束消息,以通知信息提供服务器用户对预定信息的查看动作已结束。
在接收到查看结束消息时,在432,信息提供服务器可以将信息查看记录发送到区块链***中,以将信息查看记录保存到区块链中。由此,可以借助于区块链不可篡改的特性,可靠地记录信息查看记录。
为了进一步提高预定信息的安全性,信息提供服务器可以在满足预定条件时删除解密密钥。例如,在图4所示的示例中,在430,信息提供服务器可以在接收到查看结束消息时,删除解密密钥。当允许多个用户查看预定信息时,还可以在从预定数量的用户接收到信息查看结束消息时,删除解密密钥。例如,可以在从全部用户或三分之二的多数目标数据接收到信息查看结束消息时,删除解密密钥。在另一示例中,可以在确定不允许用户查看预定信息时,删除解密密钥。例如,如果设置为只允许用户查看一次预定信息,则可以在确定用户已查看过预定信息时,删除解密密钥。在另一示例中,还可以在将解密密钥发送给用户之后,经过预定时间后,删除解密密钥。
解密密钥可以存储在信息提供服务器的存储器中,此时可以从信息提供服务器的存储器中删除解密密钥。解密密钥还可以存储在独立于信息提供服务器的实体中,此时,信息提供服务器可以在满足预定条件时向存储解密密钥的实体发送删除指令,以删除解密密钥。
在一个示例中,解密密钥可以存储在密钥存储库中。密钥存储库可以位于信息提供服务器中,还可以独立于信息提供服务器而设置。在该示例中,可以设置密钥存储库的访问权限,以使得只有信息提供服务器可以访问密钥存储库。信息提供服务器可以凭借密钥存储库访问密钥来访问密钥存储库,以存储或删除解密密钥。密钥存储库访问密钥例如可以包括私钥和数字身份证书。信息提供服务器在向密钥存储库发送存储指令或删除指令时,可以用私钥对存储指令或删除指令(或其哈希值)进行加密,并将指令密文和指令明文发送给密钥存储库,从而密钥存储库在接收到指令密文和指令明文后可以用数字身份证书中的公钥对信息提供服务器进行验证。当验证通过时,可以执行密钥存储指令或密钥删除指令。
图5是根据本公开的一个实施例的向终端设备提供信息的方法中的信息加密过程的一个示例的流程图。
如图5所示,在502,获取第二终端设备发布的预定信息。信息发布用户可以经由信息提供服务器向信息查看用户提供信息,以防止其发布的信息被他人获知或保护其对所发布的信息的著作权。
在获取到预定信息时,在504,针对所获取的预定信息,随机生成加密密钥和对应的解密密钥。在随机生成加密密钥时,由于密钥的生成具有随机性,当解密密钥在满足预定条件而被删除之后,难以再次获知解密密钥,因而能够提高预定信息的安全性。加密密钥和解密密钥可以相同,当对预定信息进行对称加密时,所生成的加密密钥同时也是解密密钥。在另一示例中,可以基于随机信息生成用于非对称加密的私钥和公钥。
在生成加密密钥之后,在506,利用所生成的加密密钥对预定信息进行加密,以得到加密信息。生成加密信息之后,在508,将加密信息发送到区块链***中,以将加密信息存储到区块链中。
在加密信息被存储到区块链中之后,在510,从区块链中获取加密信息的区块链交易哈希。然后,在512,基于区块链交易哈希和对应于加密密钥的解密密钥生成密钥索引,并存储该密钥索引。当密钥索引存储在密钥存储库中时,可以基于密钥存储库访问密钥将密钥索引存储到密钥存储库。
图6是根据本公开的一个实施例的在终端设备提供信息的方法中的信息解密和信息删除过程的一个示例的流程图。
如图6所示,当在终端设备向用户提供信息时,在块602,响应于加密信息和区块链交易哈希,向用户发出信息查看提示消息。
然后,在块604,确定是否接收到查看确认状态信号。例如,可以在接收到加密信息和区块链交易哈希之后,提示用户查看预定消息,用户可以按住查看按钮,以发出查看确认状态信号。该查看确认状态信号指示用户正在查看预定信息。当查看确认状态信号不存在时,表明用户已结束查看。例如,当用户松开查看按钮时,表明用户已结束查看。
在接收到查看确认状态信号时,在块606,向信息提供服务器发送信息查看请求,以请求信息提供服务器提供解密密码。然后在块608,确定是否接收到解密密钥。
当接收到解密密钥时,在块610,利用解密密钥对加密信息进行解密,并缓存所得到的预定信息和解密密钥。然后,在块612,将所获得的预定信息提供在第一终端设备上,以由用户进行查看。
在将预定信息提供在第一终端设备上之后,在块614,监听查看确认状态信息是否始终存在。同时,可以在块616,确定将预定信息提供到终端设备上之后是否已经过预定时间。
当查看确认状态信号消失或预定时间到时,在块618,删除所缓存的解密密钥和预定信息。例如,可以在将预定信息提供到第一终端设备上时,启动定时器,当用户松开查看按钮或定时时间到时,删除所缓存的解密密钥和预定信息。该预定时间可以根据预定信息来确定。例如,如果用户查看预定信息需要15秒,则可以将预定信息设置为15秒。
当存在查看确认状态信号时,表明用户始终处于操作第一终端设备以进行查看的状态,从而用户无法进行存储或截图等其它操作。例如,第一终端设备可以是智能手机,当用户按住屏幕以查看预定信息时,无法操作智能手机以进行截图操作。此外,在预定时间内用户仅有时间查看预定信息而没有时间进行存储操作,因而能够防止用户采用其它手段存储预定信息或解密密钥。因而,通过该示例,能够避免用户采用其它手段永久保存预定信息,从而能够避免预定信息被泄漏。
图7是根据本公开的一个实施例的信息提供装置的结构框图。如图7所示,信息提供装置700包括加密信息数据发送单元710、信息查看请求接收单元720、解密密钥获取单元730和解密密钥发送单元740。
加密信息数据发送单元710被配置为将加密信息和从区块链获取的加密信息的区块链交易哈希发送给用户的第一终端设备,加密信息是利用针对预定信息的加密密钥对预定信息进行加密处理而生成的。信息查看请求接收单元720被配置为从第一终端设备接收针对加密信息的信息查看请求,信息查看请求包括区块链交易哈希。解密密钥获取单元730被配置为当确定允许用户查看预定信息时,响应于信息查看请求,基于区块链交易哈希和预先存储的密钥索引,获取对应于加密密钥的解密密钥,密钥索引包括区块链交易哈希和区块链交易哈希对应的解密密钥。解密密钥发送单元740被配置为将解密密钥发送给第一终端设备。
图8是根据本公开的另一实施例的信息提供装置的结构框图。如图8所示,信息提供装置800包括密钥生成单元801、信息加密单元802、区块链上链单元803、区块链交易哈希获取单元804、密钥索引存储单元805、加密信息数据发送单元806、加密信息提供请求接收单元807、用户审核单元808、信息查看请求接收单元809、解密密钥获取单元810、解密密钥发送单元811和解密密钥删除单元。
密钥生成单元801被配置为在获取到第二终端设备发布的预定信息时,针对预定信息随机生成加密密钥和对应加密密钥的解密密钥。信息加密单元802被配置为在获取到第二终端设备发布的预定信息时,利用加密密钥对预定信息进行加密处理,以得到加密信息。区块链上链单元803被配置为将加密信息发送至区块链***以执行区块链上链操作,并获取加密信息对应的区块链交易哈希。
在加密信息被存储到区块链中后,区块链交易哈希获取单元804从区块链中获取对应于加密信息的区块链交易哈希。然后,密钥索引存储单元805存储区块链交易哈希与对应于加密密钥的解密密钥的密钥索引。
加密信息数据发送单元806被配置为将加密信息的区块链交易哈希发送给第一终端设备。然后,加密信息提供请求接收单元807从第一终端设备接收加密信息提供请求。在接收到加密信息提供请求接收之后,用户审核单元808基于加密信息提供请求中的用户标识和区块链交易哈希,确定是否允许用户查看预定信息。当确定允许用户查看预定信息时,加密信息数据发送单元806将对应于区块链交易哈希的加密信息发送给第一终端设备。
在将加密信息发送给第一终端设备之后,信息查看请求接收单元809从第一终端设备接收信息查看请求。然后,解密密钥获取单元810基于信息查看请求中的区块链交易哈希和密钥索引,获取对应于区块链交易哈希的解密密钥。在获取解密密钥之后,解密密钥发送单元811将解密密钥发送人第一终端设备。解密密钥删除单元被配置为在满足预定条件时,删除被存储的解密密钥。
在一个示例中,加密信息数据发送单元806可以将区块链交易哈希推送给一个或多个被指定的用户的第一终端设备,还可以在接收到用户标识时,将区块链交易哈希发送给用户标识对应的用户的第一终端设备。
图8所示出的各个单元并不全是必要组成元素,在某些示例中可以不包括其中的部分单元。例如,在一个示例中,可以不包括密钥生成单元和信息加密单元。在另一示例中,可以不包括区块链上链单元,此时加密信息可以不是由信息提供装置发送到区块链***中的。在另一示例中,可以不包括加密信息提供请求单元。
图9是根据本公开的另一实施例的信息提供装置的结构框图。如图9所示,信息提供装置900包括加密信息数据获取单元910、信息查看请求发送单元920、解密密钥接收单元930、加密信息解密单元940和信息删除单元950。
加密信息数据获取单元910被配置为获取加密信息和加密信息的区块链交易哈希,加密信息是利用加密密钥对预定信息进行加密处理而生成的。信息查看请求发送单元920被配置为在获取到加密信息和区块链交易哈希时,向信息提供服务器发送信息查看请求,信息查看请求包括所述区块链交易哈希。解密密钥接收单元930被配置为从信息提供服务器接收对应于区块链交易哈希的解密密钥并缓存解密密钥。加密信息解密单元940被配置为利用解密密钥对加密信息进行解密,以得到预定信息,并缓存预定信息。信息删除单元950被配置为在满足预定条件时,删除所缓存的预定信息和解密密钥。
虽然图9中未示出,信息提供装置900还可以包括查看结束消息发送单元。查看结束消息发送单元被配置为在满足预定条件时,向信息提供服务器发送查看结束消息。
图10是图9所示的信息提供装置中的加密信息数据获取单元的一个示例的结构框图。如图10所示,加密信息数据获取单元910包括区块链交易哈希获取模块911、确认提示消息发送模块912、加密信息提供请求发送模块913和加密信息接收模块914。
区块链交易哈希获取模块911被配置为从监听信息提供服务器获取区块链交易哈希。确认提示消息发送模块912被配置为在监听到区块链交易哈希时,向用户发送确认提示消息,以提示用户确认是否接收该区块链交易哈希。当接收到用户针对确认提示消息的确认指示时,区块链交易哈希获取模块911接收所监听到的区块链交易哈希,以将其加载到第一终端设备上。加密信息提供请求发送模块913被配置为在获取到区块链交易哈希之后,向信息提供服务器发送针对加密信息的加密信息提供请求,加密信息提供请求包括区块链交易哈希和用户标识。加密信息接收模块913被配置为从信息提供服务器接收对应于区块链交哈希的加密信息。
在另一示例中,加密信息数据获取单元可以不包括确认提示消息发送模块。此时,区块链交易哈希获取模块被配置为接收信息提供服务器发送的区块链交易哈希。当接收到区块链交易哈希时,加密信息提供请求发送模块向信息提供服务器发送加密信息提供请求。
图11是图9所示的信息提供装置中的信息查看请求发送单元的一个示例的结构框图。如图11所示,信息查看请求发送单元920包括信息查看提示消息发送模块921和信息查看请求发送模块922。
信息查看提示消息发送模块921被配置为响应于加密信息和区块链交易哈希,向用户发出信息查看提示消息。信息查看请求发送模块922被配置为在接收到针对信息查看提示消息的查看确认状态信号时,向信息提供服务器发送信息查看请求,查看确认状态信号指示用户在查看预定信息。
在该示例中,信息删除单元950可以被配置为在不存在查看确认状态信号和/或获取到查看确认状态信号之后经过预定时间时,删除解密密钥和解密得到的预定信息。
以上参照图1到图11,对根据本公开的信息提供方法及装置的实施例进行了描述。在以上对方法实施例的描述中所提及的细节,同样适用于本公开的装置的实施例。
本公开的信息提供装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见。
本公开的信息提供装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本公开中,信息提供装置例如可以利用计算设备实现。
图12是根据本公开的一个实施例的用于实现向终端设备提供信息的方法的计算设备的结构框图。如图12所示,计算设备1200包括处理器1210、存储器1220、内存1230、通信接口1240和内部总线1250,并且处理器1210、存储器(例如,非易失性存储器)1220、内存1230、通信接口1240经由总线1250连接在一起。根据一个实施例,计算设备1200可以包括至少一个处理器1210,该至少一个处理器1210执行在计算机可读存储介质(即,存储器1220)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器1220中存储计算机可执行指令,其当执行时使得至少一个处理器1210:将加密信息和从区块链获取的所述加密信息的区块链交易哈希发送给用户的第一终端设备,所述加密信息是利用针对预定信息的加密密钥对所述预定信息进行加密处理而生成的;从所述第一终端设备接收针对所述加密信息的信息查看请求,所述信息查看请求包括所述区块链交易哈希;当确定允许所述用户查看所述预定信息时,响应于所述信息查看请求,基于所述区块链交易哈希和预先存储的密钥索引,获取对应于所述加密密钥的解密密钥,所述密钥索引包括所述区块链交易哈希和所述区块链交易哈希对应的解密密钥;以及将所述解密密钥发送给所述第一终端设备。
图13是根据本公开的一个实施例的用于实现在终端设备提供信息的方法的计算设备的结构框图。如图13所示,计算设备1300包括处理器1310、存储器1320、内存1330、通信接口1340和内部总线1350,并且处理器1310、存储器(例如,非易失性存储器)1320、内存1330、通信接口1340经由总线1350连接在一起。根据一个实施例,计算设备1300可以包括至少一个处理器1310,该至少一个处理器1310执行在计算机可读存储介质(即,存储器1320)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
应该理解,在存储器1220中存储的计算机可执行指令当执行时使得至少一个处理器1210进行本公开的各个实施例中以上结合图1-5、7-8描述的各种操作和功能。
在一个实施例中,在存储器1320中存储计算机可执行指令,其当执行时使得至少一个处理器1310:获取加密信息和所述加密信息的区块链交易哈希,所述加密信息是利用加密密钥对预定信息进行加密处理而生成的;在获取到所述加密信息和区块链交易哈希时,向信息提供服务器发送信息查看请求,所述信息查看请求包括所述区块链交易哈希;从所述信息提供服务器接收对应于所述区块链交易哈希的解密密钥;利用所述解密密钥对所述加密信息进行解密,以得到所述预定信息;存储所述解密密钥和所述预定信息;以及在满足预定条件时,删除所存储的预定信息和解密密钥。
应该理解,在存储器1320中存储的计算机可执行指令当执行时使得至少一个处理器1310进行本公开的各个实施例中以上结合图1-5、9-11描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-5、7-8或图1-5、9-11描述的各种操作和功能。
具体地,可以提供配有可读存储介质的***或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各***结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本公开的实施例的可选实施方式,但是,本公开的实施例并不限于上述实施方式中的具体细节,在本公开的实施例的技术构思范围内,可以对本公开的实施例的技术方案进行多种简单变型,这些简单变型均属于本公开的实施例的保护范围。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。