CN113468599A - 文件存证方法、装置、系统、设备和存储介质 - Google Patents

文件存证方法、装置、系统、设备和存储介质 Download PDF

Info

Publication number
CN113468599A
CN113468599A CN202110732027.XA CN202110732027A CN113468599A CN 113468599 A CN113468599 A CN 113468599A CN 202110732027 A CN202110732027 A CN 202110732027A CN 113468599 A CN113468599 A CN 113468599A
Authority
CN
China
Prior art keywords
file
storage
hash value
transaction
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110732027.XA
Other languages
English (en)
Inventor
曹崇瑞
杜茂兵
李刚锐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110732027.XA priority Critical patent/CN113468599A/zh
Publication of CN113468599A publication Critical patent/CN113468599A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Abstract

本申请提供一种文件存证方法、装置、系统、设备和存储介质,该方法包括:获取待存证的预设文件;计算所述预设文件的第一密文哈希值,并发送加密后的所述预设文件至服务器;接收所述服务器返回的所述预设文件的存储地址;根据所述第一密文哈希值和所述存储地址生成所述预设文件的存证交易,并发送所述存证交易至区块链的交易池;校验所述交易池中的存证交易,并在所述预设文件的存证校验通过后,将校验结果信息写入所述区块链的智能合约。本申请通过在区块链上增加第三方文件存储服务,区块链各个节点访问同一个第三方文件存储服务,实现文件存储和存证,能保证存证文件数据一致性,提高文件存证安全性。

Description

文件存证方法、装置、系统、设备和存储介质
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种文件存证方法、装置、系统、设备和存储介质。
背景技术
区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任、赢得广泛应用奠定基础。
区块链文件存证,就是把文件数据存到区块链上,达到防篡改、可追溯、数据来源可信任的目的。文件数据可以是文字、视频、音频图片等任何文件形式。
在区块链数据存证中,为了实现快速交易,一般情况下,采用链上链下协同工作,采用文件与哈希值分离的方式,链上只保存文件的哈希值,原文件保存在链下。只要计算出文件的哈希值,与链上的哈希值比对,就知道文件是否被篡改了。
而在实际场景中,例如私人合同、受害人证据保管等,既要求保存证据原文,又要能保证存证。现有的链上链下协同的技术方案实现的是分离式存证,区块链合约并不支持文件存证,仅支持文件被hash(哈希)后摘要字符串存证。不能满足业务需要,同时链下存储可能存在数据泄露风险。
发明内容
本申请实施例的目的在于提供一种文件存证方法、装置、系统、设备和存储介质,通过在区块链上增加第三方文件存储服务,区块链各个节点访问同一个第三方文件存储服务,实现文件存储和存证,能保证存证文件数据一致性,提高文件存证安全性。
本申请实施例第一方面提供了一种文件存证方法,包括:获取待存证的预设文件;计算所述预设文件的第一密文哈希值,并发送加密后的所述预设文件至服务器;接收所述服务器返回的所述预设文件的存储地址;根据所述第一密文哈希值和所述存储地址生成所述预设文件的存证交易,并发送所述存证交易至区块链的交易池;校验所述交易池中的存证交易,并在所述预设文件的存证校验通过后,将校验结果信息写入所述区块链的智能合约。
于一实施例中,所述计算所述预设文件的第一密文哈希值,包括:使用公钥对所述预设文件加密,并计算加密后的所述预设文件的第一密文哈希值。
于一实施例中,所述校验所述交易池中的存证交易,包括:根据所述存证交易中的所述存储地址,从所述服务器获取存储文件;计算得到所述存储文件的第二密文哈希值;判断所述第二密文哈希值与所述第一密文哈希值是否相同,并在所述第二密文哈希值与所述第一密文哈希值相同时,标记所述预设文件存证成功。
于一实施例中,所述存证交易中包括所述预设文件的文件签名;在所述第二密文哈希值与所述第一密文哈希值相同时,所述校验所述交易池中的存证交易还包括:校验所述存储文件的文件签名是否与所述预设文件的文件签名相同,并在所述存储文件的文件签名与所述预设文件的文件签名相同时,标记所述预设文件存证成功。
于一实施例中,所述存证交易中包括所述预设文件的文件名;在所述第二密文哈希值与所述第一密文哈希值相同时,所述校验所述交易池中的存证交易还包括:校验所述存储文件的文件名是否与所述预设文件的文件名相同,并在所述存储文件的文件名与所述预设文件的文件名相同时,标记所述预设文件存证成功。
于一实施例中,还包括:接收存证查询指令,所述查询指令中包括待查询的目标文件的目标密文哈希值;根据所述目标密文哈希值,判断所述目标文件是否是本地节点上传至所述服务器;若所述目标文件是本地节点上传至所述服务器,根据本地节点存储的所述目标文件的存储地址,从所述服务器下载所述目标文件。
于一实施例中,还包括:若所述目标文件不是本地节点上传至所述服务器,根据所述目标密文哈希值,将所述查询指令发送至所述目标文件的上传节点;接收所述上传节点返回的所述目标文件,所述目标文件为所述上传节点使用私钥解密后的文件。
于一实施例中,还包括:接收来自第一节点的存证查询指令,所述查询指令中包括待查询的目标文件的目标密文哈希值;根据所述目标密文哈希值从本地节点查询所述目标文件的存储地址,并根据所述存储地址从所述服务器获取所述目标文件;使用私钥解密所述目标文件,并返回解密后的所述目标文件至所述第一节点。
本申请实施例第二方面提供了一种文件存证装置,包括:获取模块,用于获取待存证的预设文件;计算模块,用于计算所述预设文件的第一密文哈希值,并发送加密后的所述预设文件至服务器;第一接收模块,用于接收所述服务器返回的所述预设文件的存储地址;生成模块,用于根据所述第一密文哈希值和所述存储地址生成所述预设文件的存证交易,并发送所述存证交易至区块链的交易池;校验模块,用于校验所述交易池中的存证交易,并在所述预设文件的存证校验通过后,将校验结果信息写入所述区块链的智能合约。
于一实施例中,所述计算模块用于:使用公钥对所述预设文件加密,并计算加密后的所述预设文件的第一密文哈希值。
于一实施例中,所述校验模块用于:根据所述存证交易中的所述存储地址,从所述服务器获取存储文件;计算得到所述存储文件的第二密文哈希值;判断所述第二密文哈希值与所述第一密文哈希值是否相同,并在所述第二密文哈希值与所述第一密文哈希值相同时,标记所述预设文件存证成功。
于一实施例中,所述存证交易中包括所述预设文件的文件签名;在所述第二密文哈希值与所述第一密文哈希值相同时,所述校验模块还用于:校验所述存储文件的文件签名是否与所述预设文件的文件签名相同,并在所述存储文件的文件签名与所述预设文件的文件签名相同时,标记所述预设文件存证成功。
于一实施例中,所述存证交易中包括所述预设文件的文件名;在所述第二密文哈希值与所述第一密文哈希值相同时,所述校验模块还用于:校验所述存储文件的文件名是否与所述预设文件的文件名相同,并在所述存储文件的文件名与所述预设文件的文件名相同时,标记所述预设文件存证成功。
于一实施例中,还包括:第二接收模块,用于接收存证查询指令,所述查询指令中包括待查询的目标文件的目标密文哈希值;判断模块,用于根据所述目标密文哈希值,判断所述目标文件是否是本地节点上传至所述服务器;下载模块,用于若所述目标文件是本地节点上传至所述服务器,根据本地节点存储的所述目标文件的存储地址,从所述服务器下载所述目标文件。
于一实施例中,还包括:发送模块,用于若所述目标文件不是本地节点上传至所述服务器,根据所述目标密文哈希值,将所述查询指令发送至所述目标文件的上传节点;第三接收模块,用于接收所述上传节点返回的所述目标文件,所述目标文件为所述上传节点使用私钥解密后的文件。
于一实施例中,还包括:第四接收模块,用于接收来自第一节点的存证查询指令,所述查询指令中包括待查询的目标文件的目标密文哈希值;查询模块,用于根据所述目标密文哈希值从本地节点查询所述目标文件的存储地址,并根据所述存储地址从所述服务器获取所述目标文件;返回模块,用于使用私钥解密所述目标文件,并返回解密后的所述目标文件至所述第一节点。
本申请实施例第三方面提供了一种文件存证系统,包括:区块链,包括多个节点;至少一个服务器,连接所述区块链的节点,用于接收所述节点上传的待存证文件,并在存储所述待存证文件后,返回存储地址给所述节点;其中,每个所述节点与所述服务器进行数据交互,用以执行本申请实施例第一方面及其任一实施例的方法。
本申请实施例第四方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行所述计算机程序,以实现本申请实施例第一方面及其任一实施例的方法。
本申请实施例第五方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。
本申请提供的文件存证方法、装置、系统、设备和存储介质,通过在区块链上增加访问第三方文件对象存储服务,将待存证的预设文件存储至服务器,并基于预设文件的第一密文哈希值和其在服务器中的存储地址,生成存证交易,在交易池中,区块链的所有节点都可以对存证交易进行校验,校验通过后,会将校验结果写入区块链的智能合约中,完成存证上链,实现了文件的存储与存证,各个节点访问同一个第三方文件对象存储服务,所以能保证存证数据的一致性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的结构示意图;
图2为本申请一实施例的文件存证系统的示意图;
图3为本申请一实施例的文件存证方法的流程示意图;
图4为本申请一实施例的文件存证方法的流程示意图;
图5为本申请一实施例的文件存证装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以实现文件存储和存证。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机等设备。
请参看图2,其为本申请一实施例的文件存证系统200的示意图,包括:区块链20和服务器30,其中:
服务器30可以为多个,服务器30可以具备区块链20存证权限的数据库,例如nos对象存储服务器30,IPFS(InterPlanetary File System,星际文件系统)去中心化存储服务器30等。
区块链20包括多个节点201,服务器30连接区块链20的节点201,每个节点201可以与服务器30进行数据交互,比如每个区块连接点可以通过SSL(Secure Sockets Layer安全套接字协议)安全通道与服务器30进行数据通信。
于一实施例中,区块链20中的每个节点201均可以上传待存证的文件至服务器30,服务器30可以接收节点201上传的待存证文件,并在存储待存证文件后,返回存储地址给节点201。其中,节点201可有由图1所示的电子设备1实现。待存证的文件可以是文字、视频、音频、图片等形式的文件数据。
于一实施例中,区块链20的每个节点201设置有文件存储接口,以供用户通过该文件存储接口上传待存证的文件。
于一实施例中,区块链20的每个节点201还设置有文件加密组件203,以实现对文件加密,保证数据存证和传输的安全性。
请参看图3,其为本申请一实施例的文件存证方法,该方法可由图1所示的电子设备1作为区块链节点201来执行,并可以应用于如图2所示的文件存证系统200中,以实现文件的存储与存证。该方法包括如下步骤:
步骤301:获取待存证的预设文件。
在本步骤中,可以在区块链20的节点201上设置文件存证接口202,节点201的用户可以通过该文件存证接口202将待存证的预设文件上传至节点201,节点201即可获取到待存证的预设文件。预设文件可以由多个,上传至节点201的预设文件可以先暂存在待存证文件列表中。
于一实施例中,可以通过如下方式实现在区块链节点201上新增文件存证接口202:
Figure BDA0003140163910000071
Figure BDA0003140163910000081
于一实施例中,上传文件的用户可以是实名注册的用户,比如预先将用户在区块链20和/或该用户指定的服务器30上方进行实名认证,在用户上传待存证的预设文件时,先对用户进行身份信息认证,只有通过实名认证的用户才具备文件存证权限,实现公开去中心化文件存证,进一步保证文件存证的安全性。
于一实施例中,预设文件也可以由节点201主动从指定的数据库中抽取获得。
步骤302:计算预设文件的第一密文哈希值,并发送加密后的预设文件至服务器30。
在本步骤中,区块链20的每个节点201均可以进行文件存证的文件上传,并对获取的预设文件进行哈希计算,得到预设文件的第一密文哈希值,将文件的密文哈希值在区块链20与服务器30之间进行数据传输,可以进一步保证数据传输的安全性。节点201可以从多个服务器30中选择预设文件的存储的指定服务器30。
于一实施例中,可以由区块链节点201异步文件处理线程遍历待存证文件列表中的文件处理队列,将待存证的预设文件通过本节点201公钥加密,并计算加密后的密文hash(即第一密文哈希值),然后将预设文件上传到指定的第三方的服务器30。
步骤303:接收服务器30返回的预设文件的存储地址。
在本步骤中,服务器30接收到区块连节点201上传的预设文件后,会将预设文件进行存储,并返回文件存储地址给文件上传节点201。该存储地址可以用来下载该预设文件。
步骤304:根据第一密文哈希值和存储地址生成预设文件的存证交易,并发送存证交易至区块链20的交易池。
在本步骤中,上传预设文件的节点201在接收到预设文件的存储地址后,将第一密文哈希值和存储地址作为该预设文件上链存证的校验内容,生成针对该预设文件存证的存证交易,并将该存证交易发送至区块链20的交易池,以供区块链20上的所有节点201对该存证交易进行验证。
于一实施例中,上述步骤302至步骤304可以采用如下方式实现:
Figure BDA0003140163910000091
步骤305:校验交易池中的存证交易,并在预设文件的存证校验通过后,将校验结果信息写入区块链20的智能合约。
在本步骤中,区块链20上的所有节点201都可以对交易池中的存证交易执行校验,比如可以通过文件加密hash检索文件存证接口202,所有节点201都能验证文件存证性,并将校验结果保存到智能合约。
于一实施例中,可以由EVM(Ethereum Virtual Machine,以太坊虚拟机)执行ethcall(立刻执行一个新的消息调用,无需在区块链20上创建交易)本地方法校验第三方的服务器30中预设文件是否存在,并在预设文件在服务器30中存在时,将校验结果写入区块链20的智能合约中,完成该预设文件的上链存证过程。
于一实施例中,上述存证交易校验过程可以采用如下方式实现:
Figure BDA0003140163910000101
上述文件存证方法,通过在区块链20上增加访问第三方文件对象存储服务,将待存证的预设文件存储至服务器30,并基于预设文件的第一密文哈希值和其在服务器30中的存储地址,生成存证交易,在交易池中,区块链20的所有节点201都可以对存证交易进行校验,校验通过后,会将校验结果写入区块链20的智能合约中,完成存证上链,实现了文件的存储与存证,各个节点201访问同一个第三方文件对象存储服务,所以能保证存证数据的一致性。
请参看图4,其为本申请一实施例的文件存证方法,该方法可由图1所示的电子设备1作为区块链节点201来执行,并可以应用于如图2所示的文件存证系统200中,以实现文件的存储与存证。该方法包括如下步骤:
步骤401:获取待存证的预设文件。详细参见上述实施例中对步骤301的描述。
步骤402:计算预设文件的第一密文哈希值,并发送加密后的预设文件至服务器30。详细参见上述实施例中对步骤302的描述。
步骤403:接收服务器30返回的预设文件的存储地址。详细参见上述实施例中对步骤303的描述。
步骤404:根据第一密文哈希值和存储地址生成预设文件的存证交易,并发送存证交易至区块链20的交易池。详细参见上述实施例中对步骤304的描述。
步骤405:根据存证交易中的存储地址,从服务器30获取存储文件。
在本步骤中,区块链20上的所有节点201都可以对交易池中的存证交易进行校验,本实施例以其中一个节点201为例,该节点201可以从存证交易中提取文件的存储地址,然后从该存储地址指定的服务器30下载已存储的存储文件。节点201可以以轮询的方式,实时对交易池中的存证交易进行处理。
步骤406:计算得到存储文件的第二密文哈希值。
在本步骤中,从服务器30下载下来的存储文件是加密文件,在校验过程中可以无需解密,直接对存储文件进行哈希计算,得到存储文件的第二密文哈希值。
步骤407:判断第二密文哈希值与第一密文哈希值是否相同,在第二密文哈希值与第一密文哈希值相同时,进入步骤408。否则,说明预设文件存证校验失败,可以发出提示信息。
于一实施例中,存证交易中可以包括预设文件的文件签名。在步骤407中,当第二密文哈希值与第一密文哈希值相同时,还包括:校验存储文件的文件签名是否与预设文件的文件签名相同,并在存储文件的文件签名与预设文件的文件签名相同时,标记预设文件存证成功。
在本步骤中,也就是采用文件哈希值和文件签名的双重校验,只有当第二密文哈希值与第一密文哈希值相同,并且存储文件的文件签名与预设文件的文件签名也相同时,才算预设文件的存证交易校验通过,进一步增加文件存证的安全性。文件签名可以是表征文件特征的数据。
于一实施例中,存证交易中包括预设文件的文件名。在第二密文哈希值与第一密文哈希值相同时,步骤407还包括:校验存储文件的文件名是否与预设文件的文件名相同,并在存储文件的文件名与预设文件的文件名相同时,标记预设文件存证成功。
在本步骤中,还可以采用文件哈希值和文件名的双重校验,只有当第二密文哈希值与第一密文哈希值相同,并且存储文件的文件名与预设文件的文件签名也相同时,才算预设文件的存证交易校验通过,进一步增加文件存证的安全性。
于一实施例中,也可以采用文件哈希值、文件名和文件签名的三重校验国城,以进一步加强文件存证的安全性。
步骤408:标记预设文件存证成功,将校验结果信息写入区块链20的智能合约。
在本步骤中,在节点201执行ethcall校验方法之前,可以在智能合约中设定预设文件的存证状态为file->status=0,在节点201执行ethcall校验方法时,假设判定服务器30中下载的存储文件的第二密文哈希值与第一密文哈希值相同,说明,预设文件已安全存储在服务器30中,并且没有被篡改,则该预设文件的存证交易校验通过,当区块链20中一定数量的节点201或者所有节点201都判定该预设文件的存证交易校验通过时,则可以在智能合约中修改预设文件的存证状态为file->status=1,表示预设文件存证成功。
于一实施例中,在文件存证成功后,用户可以通过节点201查询智能合约来访问文件存证结果,因此该方法还可以包括:
步骤409:接收存证查询指令,查询指令中包括待查询的目标文件的目标密文哈希值。
在本步骤中,区块连的每个节点201都可以接收用户输入的存证查询指令,该查询指令中可以包括待查询的目标文件的目标密文哈希值,也就是说,当用户想要查询或者下载某一个已存证的文件时,可以通过文件的密文哈希值查询存证结果,可以保证数据传输过程都以密文进行,将进一步保证数据安全性。
步骤410:根据目标密文哈希值,判断目标文件是否是本地节点201上传至服务器30。若是,进入步骤411,否则进入步骤412。
在本步骤中,文件的密文哈希值相当于文件的指纹信息,可以表征文件的唯一特征,因此本地节点201可以将目标密文哈希值与自身曾经上传至服务器30的文件的密文哈希值列表进行对比,若目标密文哈希值在列表内,则说明用户查询的该目标文件在存证阶段是本地节点201上传到服务器30的,进入步骤411。否则进入步骤412。
步骤411:根据本地节点201存储的目标文件的存储地址,从服务器30下载目标文件。
在本步骤中,若得到目标文件是本地节点201上传至服务器30的,则本地节点201从本地节点201的存证记录中抽取出目标文件的存储地址,并依据该存储地址从服务器30下载目标文件。然后本地节点201采用私钥对目标文件解密,用户即可查看到该目标文件。
于一实施例中,输入查询指令的用户也可以是实名认证的用户,进一步保证文件存证的安全性。
步骤412:根据目标密文哈希值,将查询指令发送至目标文件的上传节点201。
在本步骤中,若目标文件在存证阶段不是本地节点201上传至服务器30的,而是由区块链20中其他节点201上传的,则可以通过将目标密文哈希值与区块链20上的存证记录进行比对,从中找到在存证阶段将目标文件上传至服务器30的上传节点201,然后将查询指令转发至目标文件的上传节点201。
步骤413:接收上传节点201返回的目标文件,目标文件为上传节点201使用私钥解密后的文件。
在本步骤中,上传节点201会根据存证记录中与目标密文哈希值对应的存储地址,从服务器30下载得到目标文件,上传节点201采用私钥对目标文件进行解密,并将解密后的目标文件返回给本地节点201,则本地节点201的用户即可查看到目标文件。
于一实施例中,上述存证结果查询和存证文件下载可以采用如下方式实现:
Figure BDA0003140163910000141
于一实施例中,上述方法还可以包括:接收来自第一节点201的存证查询指令,查询指令中包括待查询的目标文件的目标密文哈希值。根据目标密文哈希值从本地节点201查询目标文件的存储地址,并根据存储地址从服务器30获取目标文件。使用私钥解密目标文件,并返回解密后的目标文件至第一节点201。
在本步骤中,本地节点201也可以接收区块链20中其他节点201转发过来的查询指令,比如用户在第一节点201输入的查询指令,但是第一节点201不是上传节点201,而转发至本地节点201,此时,说明虽然查询用户不是本地节点201的用户,但是该用户查询的目标文件在存证阶段是本地节点201上传至服务器30的,本地节点201可以从自身的存证记录中找到目标文件的存储地址,并根据存储地址从服务器30下载目标文件,然后使用私钥解密目标文件,并将解密后的目标文件返回至第一节点201。如此,只有上传节点201才可以从服务器30下载已存证的文件,避免不合法的下载操作,进一步提高文件存证的安全性。
请参看图5,其为本申请一实施例的文件存证装置500,该装置可应用于图1所示的电子设备1,并可以应用于如图2所示的文件存证系统200中,以实现文件的存储与存证。该装置包括:获取模块501、计算模块502、第一接收模块503、生成模块504和校验模块505,各个模块的原理关系如下:
获取模块501,用于获取待存证的预设文件。详细参见上述实施例中对步骤301的描述。
计算模块502,用于计算预设文件的第一密文哈希值,并发送加密后的预设文件至服务器30。详细参见上述实施例中对步骤302的描述。
第一接收模块503,用于接收服务器30返回的预设文件的存储地址。详细参见上述实施例中对步骤303的描述。
生成模块504,用于根据第一密文哈希值和存储地址生成预设文件的存证交易,并发送存证交易至区块链20的交易池。详细参见上述实施例中对步骤304的描述。
校验模块505,用于校验交易池中的存证交易,并在预设文件的存证校验通过后,将校验结果信息写入区块链20的智能合约。详细参见上述实施例中对步骤305的描述。
于一实施例中,计算模块502用于:使用公钥对预设文件加密,并计算加密后的预设文件的第一密文哈希值。详细参见上述实施例中对步骤302的描述。
于一实施例中,校验模块505用于:根据存证交易中的存储地址,从服务器30获取存储文件。计算得到存储文件的第二密文哈希值。判断第二密文哈希值与第一密文哈希值是否相同,并在第二密文哈希值与第一密文哈希值相同时,标记预设文件存证成功。详细参见上述实施例中对步骤405至步骤408的描述。
于一实施例中,存证交易中包括预设文件的文件签名。在第二密文哈希值与第一密文哈希值相同时,校验模块505还用于:校验存储文件的文件签名是否与预设文件的文件签名相同,并在存储文件的文件签名与预设文件的文件签名相同时,标记预设文件存证成功。详细参见上述实施例中对步骤407的描述。
于一实施例中,存证交易中包括预设文件的文件名。在第二密文哈希值与第一密文哈希值相同时,校验模块505还用于:校验存储文件的文件名是否与预设文件的文件名相同,并在存储文件的文件名与预设文件的文件名相同时,标记预设文件存证成功。详细参见上述实施例中对步骤407的描述。
于一实施例中,还包括:第二接收模块506,用于接收存证查询指令,查询指令中包括待查询的目标文件的目标密文哈希值。判断模块,用于根据目标密文哈希值,判断目标文件是否是本地节点201上传至服务器30。下载模块,用于若目标文件是本地节点201上传至服务器30,根据本地节点201存储的目标文件的存储地址,从服务器30下载目标文件。详细参见上述实施例中对步骤409至步骤411的描述。
于一实施例中,还包括:发送模块507,用于若目标文件不是本地节点201上传至服务器30,根据目标密文哈希值,将查询指令发送至目标文件的上传节点201。第三接收模块508,用于接收上传节点201返回的目标文件,目标文件为上传节点201使用私钥解密后的文件。详细参见上述实施例中对步骤412至步骤413的描述。
于一实施例中,还包括:第四接收模块509,用于接收来自第一节点201的存证查询指令,查询指令中包括待查询的目标文件的目标密文哈希值。查询模块510,用于根据目标密文哈希值从本地节点201查询目标文件的存储地址,并根据存储地址从服务器30获取目标文件。返回模块511,用于使用私钥解密目标文件,并返回解密后的目标文件至第一节点201。详细参见上述实施例中相关方法步骤的描述。
上述文件存证装置500的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (12)

1.一种文件存证方法,其特征在于,包括:
获取待存证的预设文件;
计算所述预设文件的第一密文哈希值,并发送加密后的所述预设文件至服务器;
接收所述服务器返回的所述预设文件的存储地址;
根据所述第一密文哈希值和所述存储地址生成所述预设文件的存证交易,并发送所述存证交易至区块链的交易池;
校验所述交易池中的存证交易,并在所述预设文件的存证校验通过后,将校验结果信息写入所述区块链的智能合约。
2.根据权利要求1所述的方法,其特征在于,所述计算所述预设文件的第一密文哈希值,包括:
使用公钥对所述预设文件加密,并计算加密后的所述预设文件的第一密文哈希值。
3.根据权利要求1所述的方法,其特征在于,所述校验所述交易池中的存证交易,包括:
根据所述存证交易中的所述存储地址,从所述服务器获取存储文件;
计算得到所述存储文件的第二密文哈希值;
判断所述第二密文哈希值与所述第一密文哈希值是否相同,并在所述第二密文哈希值与所述第一密文哈希值相同时,标记所述预设文件存证成功。
4.根据权利要求3所述的方法,其特征在于,所述存证交易中包括所述预设文件的文件签名;在所述第二密文哈希值与所述第一密文哈希值相同时,所述校验所述交易池中的存证交易还包括:
校验所述存储文件的文件签名是否与所述预设文件的文件签名相同,并在所述存储文件的文件签名与所述预设文件的文件签名相同时,标记所述预设文件存证成功。
5.根据权利要求3所述的方法,其特征在于,所述存证交易中包括所述预设文件的文件名;在所述第二密文哈希值与所述第一密文哈希值相同时,所述校验所述交易池中的存证交易还包括:
校验所述存储文件的文件名是否与所述预设文件的文件名相同,并在所述存储文件的文件名与所述预设文件的文件名相同时,标记所述预设文件存证成功。
6.根据权利要求1所述的方法,其特征在于,还包括:
接收存证查询指令,所述查询指令中包括待查询的目标文件的目标密文哈希值;
根据所述目标密文哈希值,判断所述目标文件是否是本地节点上传至所述服务器;
若所述目标文件是本地节点上传至所述服务器,根据本地节点存储的所述目标文件的存储地址,从所述服务器下载所述目标文件。
7.根据权利要求6所述的方法,其特征在于,还包括:
若所述目标文件不是本地节点上传至所述服务器,根据所述目标密文哈希值,将所述查询指令发送至所述目标文件的上传节点;
接收所述上传节点返回的所述目标文件,所述目标文件为所述上传节点使用私钥解密后的文件。
8.根据权利要求1所述的方法,其特征在于,还包括:
接收来自第一节点的存证查询指令,所述查询指令中包括待查询的目标文件的目标密文哈希值;
根据所述目标密文哈希值从本地节点查询所述目标文件的存储地址,并根据所述存储地址从所述服务器获取所述目标文件;
使用私钥解密所述目标文件,并返回解密后的所述目标文件至所述第一节点。
9.一种文件存证装置,其特征在于,包括:
获取模块,用于获取待存证的预设文件;
计算模块,用于计算所述预设文件的第一密文哈希值,并发送加密后的所述预设文件至服务器;
第一接收模块,用于接收所述服务器返回的所述预设文件的存储地址;
生成模块,用于根据所述第一密文哈希值和所述存储地址生成所述预设文件的存证交易,并发送所述存证交易至区块链的交易池;
校验模块,用于校验所述交易池中的存证交易,并在所述预设文件的存证校验通过后,将校验结果信息写入所述区块链的智能合约。
10.一种文件存证系统,其特征在于,包括:
区块链,包括多个节点;
至少一个服务器,连接所述区块链的节点,用于接收所述节点上传的待存证文件,并在存储所述待存证文件后,返回存储地址给所述节点;
其中,每个所述节点与所述服务器进行数据交互,用以执行如权利要求1至8中任一项所述的方法。
11.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序,以实现如权利要求1至8中任一项所述的方法。
12.一种非暂态电子设备可读存储介质,其特征在于,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行权利要求1至8中任一项所述的方法。
CN202110732027.XA 2021-06-30 2021-06-30 文件存证方法、装置、系统、设备和存储介质 Pending CN113468599A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110732027.XA CN113468599A (zh) 2021-06-30 2021-06-30 文件存证方法、装置、系统、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110732027.XA CN113468599A (zh) 2021-06-30 2021-06-30 文件存证方法、装置、系统、设备和存储介质

Publications (1)

Publication Number Publication Date
CN113468599A true CN113468599A (zh) 2021-10-01

Family

ID=77874065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110732027.XA Pending CN113468599A (zh) 2021-06-30 2021-06-30 文件存证方法、装置、系统、设备和存储介质

Country Status (1)

Country Link
CN (1) CN113468599A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172922A (zh) * 2021-11-08 2022-03-11 北京标信智链科技有限公司 基于区块链的交易主体资信数据的共享方法及共享装置
CN114389878A (zh) * 2022-01-13 2022-04-22 中国人民解放军国防科技大学 一种区块链分片方法及区块链网络系统
CN115002141A (zh) * 2022-06-06 2022-09-02 上海加密原生科技有限公司 基于区块链的文件存储方法及装置
CN115239339A (zh) * 2022-08-03 2022-10-25 浙江省金融综合服务平台管理有限公司 一种基于区块链的账户交易信息核验方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879903A (zh) * 2019-11-20 2020-03-13 北京海益同展信息科技有限公司 证据存储方法、证据验证方法及装置、设备和介质
CN111552676A (zh) * 2020-04-26 2020-08-18 北京众享比特科技有限公司 基于区块链的存证方法、装置、设备及介质
CN111967875A (zh) * 2020-08-19 2020-11-20 上海网班教育科技股份有限公司 基于区块链的文件上链存证方法、装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879903A (zh) * 2019-11-20 2020-03-13 北京海益同展信息科技有限公司 证据存储方法、证据验证方法及装置、设备和介质
CN111552676A (zh) * 2020-04-26 2020-08-18 北京众享比特科技有限公司 基于区块链的存证方法、装置、设备及介质
CN111967875A (zh) * 2020-08-19 2020-11-20 上海网班教育科技股份有限公司 基于区块链的文件上链存证方法、装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172922A (zh) * 2021-11-08 2022-03-11 北京标信智链科技有限公司 基于区块链的交易主体资信数据的共享方法及共享装置
CN114389878A (zh) * 2022-01-13 2022-04-22 中国人民解放军国防科技大学 一种区块链分片方法及区块链网络系统
CN114389878B (zh) * 2022-01-13 2024-03-19 中国人民解放军国防科技大学 一种区块链分片方法及区块链网络系统
CN115002141A (zh) * 2022-06-06 2022-09-02 上海加密原生科技有限公司 基于区块链的文件存储方法及装置
CN115002141B (zh) * 2022-06-06 2024-04-12 上海加密原生科技有限公司 基于区块链的文件存储方法及装置
CN115239339A (zh) * 2022-08-03 2022-10-25 浙江省金融综合服务平台管理有限公司 一种基于区块链的账户交易信息核验方法
CN115239339B (zh) * 2022-08-03 2023-02-14 浙江省金融综合服务平台管理有限公司 一种基于区块链的账户交易信息核验方法

Similar Documents

Publication Publication Date Title
US10803205B1 (en) Retrieving public data for blockchain networks using trusted execution environments
JP7090800B2 (ja) 分散型文書およびエンティティ検証エンジン
CA3058013C (en) Managing sensitive data elements in a blockchain network
JP6985576B2 (ja) ビジネスプロセスシステム、ビジネスデータ処理方法及び装置
CN109074462B (zh) 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统
US11757641B2 (en) Decentralized data authentication
US10116645B1 (en) Controlling use of encryption keys
CN109274652B (zh) 身份信息验证系统、方法及装置及计算机存储介质
CN113468599A (zh) 文件存证方法、装置、系统、设备和存储介质
CN111164594A (zh) 用于将去中心化标识映射到真实实体的系统和方法
US9819494B2 (en) Digital signature service system based on hash function and method thereof
AU2019204712A1 (en) Managing sensitive data elements in a blockchain network
US9020149B1 (en) Protected storage for cryptographic materials
US11671263B2 (en) Cryptographically securing data files in a collaborative environment
JP2020511018A (ja) デジタル・マークを生成するためのシステム及び方法
TWI552015B (zh) 用於複合文件之方法、電腦系統及非暫時性電腦可讀儲存媒體
CN105812427B (zh) 文件上传和下载方法、装置、及文件服务器
US20180302787A1 (en) Systems and methods for securely provisioning hypertext transfer protocol secure (https) pins to a mobile client
US20230206219A1 (en) Identification token, systems and methods for identification and identity verification.
CN112435026A (zh) 用零知识证明保护文件交易信息的方法、装置和电子设备
CN115632798A (zh) 基于智能合约的电子证照认证溯源方法、系统及相关设备
CN114615031A (zh) 文件存储方法、装置、电子设备及存储介质
US11368309B2 (en) Methods and devices for generating and verifying passwords
CN112347040A (zh) 文件管理方法、装置、存储介质及终端
US10621319B2 (en) Digital certificate containing multimedia content

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination