CN113065169A - 一种文件存证方法、装置及设备 - Google Patents
一种文件存证方法、装置及设备 Download PDFInfo
- Publication number
- CN113065169A CN113065169A CN202110426516.2A CN202110426516A CN113065169A CN 113065169 A CN113065169 A CN 113065169A CN 202110426516 A CN202110426516 A CN 202110426516A CN 113065169 A CN113065169 A CN 113065169A
- Authority
- CN
- China
- Prior art keywords
- file
- positioning
- sets
- data
- file data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例公开了一种文件存证方法、装置及设备,方法包括:通过获取待存证的目标文件;按照预设拆分方式对目标文件进行拆分,得到拆分后的多个文件数据;按照预设划分方式将多个文件数据划分至多个文件集合;计算多个文件集合对应的校验码,确定每个文件集合中的定位文件数据信息,并将所述校验码以及所述定位文件数据信息存入区块链网络中。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种文件存证方法、装置及设备。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。其本质上是一个由节点参与的去中心化的分布式数据库系统。由于区块链具有去中心化、信息不可篡改、自治性等特性,采用区块链存证文件数据,也受到人们越来越多的重视和应用。
发明内容
本说明书实施例提供一种文件存证方法、装置及设备,以解决现有的文件存证以及验证方法中存在的难以定位文件中被篡改数据的问题。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供的一种文件存证方法,包括:
获取待存证的目标文件;
按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
计算所述多个文件集合对应的校验码;
确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
将所述校验码以及所述定位文件数据信息存入区块链网络中。
本说明书实施例提供的一种文件验证方法,包括:
从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
计算所述多个文件集合对应的校验码;
将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
基于所述比对结果,对所述待验证文件进行验证。
本说明书实施例提供的一种文件存证装置,包括:
目标文件获取模块,用于获取待存证的目标文件;
文件数据确定模块,用于按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
文件集合划分模块,用于按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
校验码计算模块,用于计算所述多个文件集合对应的校验码;
定位文件数据信息确定模块,用于确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
数据存储模块,用于将所述校验码以及所述定位文件数据信息存入区块链网络中。
本说明书实施例提供的一种文件验证装置,包括:
数据获取模块,用于从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
文件集合确定模块,用于基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
校验码计算模块,用于计算所述多个文件集合对应的校验码;
比对模块,用于将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
验证模块,用于基于所述比对结果,对所述待验证文件进行验证。
本说明书实施例提供的一种文件存证设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取待存证的目标文件;按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
计算所述多个文件集合对应的校验码;
确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
将所述校验码以及所述定位文件数据信息存入区块链网络中。
本说明书实施例提供的一种文件验证设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
计算所述多个文件集合对应的校验码;
将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
基于所述比对结果,对所述待验证文件进行验证。
本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现一种文件存证、验证方法。
本说明书一个实施例实现了能够达到以下有益效果:通过获取待存证的目标文件;按照预设拆分方式对目标文件进行拆分,得到拆分后的多个文件数据;按照预设划分方式将多个文件数据划分至多个文件集合;计算多个文件集合对应的校验码,确定每个文件集合中的定位文件数据信息,并将所述校验码以及所述定位文件数据信息存入区块链网络中。通过分块大文件链上存证方法,不用将目标文件对应的全部数据存储在区块链网络中,避免造成数据膨胀的缺陷。引入校验码以及定位文件数据信息,当被存证的目标文件被篡改时,可以定位到目标文件中被篡改的数据。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中一种文件存证、验证方法的应用场景示意图;
图2为本说明书实施例提供的一种文件存证方法的流程示意图;
图3为本说明书实施例提供的文件集合排列示意图;
图4为本说明书实施例提供的一种文件存证方法的流程示意图;
图5为本说明书实施例提供的基于定位文件数据信息进行初步定位示意图;
图6为本说明书实施例提供的基于定位文件数据信息进行补充定位示意图;
图7为本说明书实施例提供的基于校验码进行验证的示意图;
图8为本说明书实施例提供的一种文件存证装置的结构示意图;
图9为本说明书实施例提供的一种文件验证装置的结构示意图;
图10是本说明书实施例提供的一种文件存证、验证设备示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
在本说明书实施例中,涉及到的名词解释如下:
区块链(Block chain):“区块链”技术最初是由一位化名“中本聪”的人为比特币(一种数字货币)而设计出的一种特殊的分布式数据库技术,可以理解为是多个区块顺序存储构成的数据链,每个区块的区块头都包含有本区块的时间戳、前一个区块信息的哈希值和本区块信息的哈希值,由此实现区块与区块之间的相互验证,构成不可篡改的区块链。每个区块都可以理解为是一个数据块(存储数据的单元)。区块链作为一种去中心化的数据库,是一串使用密码学方法相互关联产生的数据块,每一个数据块中包含了一次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块与区块首尾相连形成的链,即为区块链。若需要修改块内数据,则需要修改此区块之后所有区块的内容,并将区块链网络中所有节点备份的数据进行修改。因此,区块链具有难以篡改、删除的特点,在数据已保存至区块链后,其作为一种保持内容完整性的方法具有可靠性。
Hash算法:是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。可以为一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。比较常见的是SHA256、SM3算法。
纠删算法:是一种编码容错技术,最早是在通信行业解决部分数据在传输中损耗的问题,基本原理是把传输的信号分段,加入一定的校验再让各段间发生一定的联系,即使在传输过程中丢失掉部分信号,接收端仍然能通过算法把完整的信息计算出来。例如:纠错码算法(Reed-Solomen,简称RS算法)。
由于区块链分布式账本的特性,各个参与方会拥有至少一份账本数据。现有基于区块链的文件存证方案中,一般是将文件数据直接记录在区块链上,直接通过区块链进行存证。采用文件直接上链的模式,会产生数据膨胀问题,因为区块链交易大小的限制,会严格限制文件的大小,存证方便,也会存在安全性隐患,不利于区块链技术的发展。
另一方面,一些文件中包含了敏感信息,不适合直接在链上以原文的形式进行存储。通常对于大文件或敏感文件,会采用Hash上链的方式:在上链前,通过某一种Hash算法,计算出文件的Hash值(摘要值),然后将Hash值上链存证。例如使用SHA256这种Hash算法,预先计算出需要存证文件的SHA256值,然后将32字节的SHA256值上链;这种方式无论源文件多大,都会被不可逆的转换成32字节摘要。
但是,当验证文件的真实性时,则从其它系统中获取到需要验证的文件,并再次计算文件的Hash值,并和链上进行比对比,当Hash值一致时,表示文件没有被篡改过,当Hash值不一致时,则表示文件被篡改过。在大文件Hash上链的方案中,一般需要选择强度足够的Hash算法,例如SHA256、SM3等算法;避免使用存在安全隐患的算法,例如:CRC、MD5等。
图1为本说明书实施例中一种文件存证、验证方法的应用场景示意图。如图1所示,对于待存证的目标文件X,将目标文件X进行分析,得到目标文件对应的存证数据X1,该存证数据X1可以包括摘要值、校验码以及定位文件数据信息。将存证数据X1存储在区块链网络110中。而目标文件X对应的原始数据X2,可以存放在区块链网络外的外部设备120中,例如:U盘或其他服务器中。
接下来,将针对说明书实施例提供的一种文件存证方法结合附图进行具体说明:
实施例1
图2为本说明书实施例提供的一种文件存证方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于应用服务器的程序或应用客户端。
如图2所示,该流程可以包括以下步骤:
步骤210:获取待存证的目标文件。
区块链数据存证,可以表示把数据存储在区块链上,达到防篡改、可追溯、数据来源可信任的目的。为了实现快速交易,一般情况下,采用链上链下协同工作,采用文件与哈希值分离的方式,链上只保存文件的哈希值,原文件保存在链下。只要计算出文件的哈希值,与链上的哈希值比对,就知道文件是否被篡改了。在本说明书实施例中,待存证的目标文件中的数据可以是文字、视频、音频图片等任何文件形式。目标文件对应的整个文件数据不需要全部都存储在区块链网络中,只需要存储能够表示该目标文件的相应数据即可。
步骤220:按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据。
需要说明的是,拆分在传统意义上的理解可以是:组合成一个整体的不同部分,单独被分开的过程为拆分。该步骤的中拆分可以理解为:将组成目标位文件的数据按照固定的文件数据对应的字节长度,依次分为多个文件数据,例如:目标文件中有100个字节对应的数据,可以按照每个小文件数据1个字节的拆分方式,将目标文件拆分成100个文件数据。当然也可以按照每十个字节为一个文件数据或元素的方式,即:第1至第10个字节对应的数据标记为第一个文件数据或者第一个元素,将第11至第20个字节对应的数据标记为第二个文件数据或者第二个元素,……,以此类推,将目标文件拆分为多个文件数据或者多个元素。拆分得到的文件数据或者元素,用于后续集合的划分。
步骤230:按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素,m≥1。
预设划分方式可以表示的是预先设置的每个文件集合中包含的文件个数,例如:预设划分方式为3个文件为一个文件集合。
目标文件被拆分为多个文件数据或多个元素之后,再按照预设划分方式将多个文件进行划分至多个文件集合。
需要说明的是,一个元素可以表示一个或多个文件数据,具体地,元素可以是文件数据,例如:对于目标文件X,被拆分为X1、X2、X3、X4,在划分时,将X1、X2划分至集合1,将X3、X4划分至集合2。以集合1为例,集合1中的元素可以是X1和X2对应的具体数据。
当然,在设定了每个文件集合中的元素数量固定的情况下,可能会存在最后一个集合中的元素数量不够的情况,在这种情况下,可以采用固定字符填充集合中缺少的元素。因此,元素也可以是固定字符,例如:\×00。
步骤240:计算所述多个文件集合对应的校验码。
校验码可以表示通过某种算法(例如:Hash算法或纠删算法)在一定长度的原始数据上计算后得到的一段校验数据。通过校验数据能够判断出新数据与原始数据是否一致,进一步地能从原始数据被少量修改的新数据中推算出原始数据。
因此,可以针对每一个文件集合,采用Hash算法或纠删算法计算每个文件对应的校验码。
步骤250:确定每个所述文件集合中的定位文件数据信息。
可选的,所述确定每个所述文件集合中的定位文件数据信息,具体可以包括:
将每组所述文件集合中的特定位置处的元素确定为定位文件数据,得到定位文件数据集合。
定位文件数据信息可以表示的每个文件集合中特定位置处的数据信息,更为具体地,所述定位文件数据信息可以包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息。定位文件数据也可以称为定位码。其中,定位码可以是文件集合中的一个元素,该元素可以是一个或多个文件数据;目标文件被划分为多个文件集合之后,可以通过定位码大致确定原先被划分的集合在新数据中的大致位置。例如:可以将各个集合中的第一个元素用于定位码,假设每个集合中有9个元素,根据定位码可以大致确定从定位码对应的数据开始,往后连续9个元素可能属于一个文件集合。
需要说明的是,在实际应用中,定位文件数据可以是目标文件中的原始数据,也可以是对原始数据进行计算得到的值,例如:可以是对用于定位的数据进行计算得到的哈希值或者校验值。这样,在将定位文件数据存储在区块链网络中时,只需要存储计算得到的哈希值或校验值即可。
步骤260:将所述校验码以及所述定位文件数据信息存入区块链网络中。
在对目标文件进行存证时,并不是将整个目标文件对应的数据全部存储在区块链网络中,原始数据存储在区块链网络外的设备上,例如:可以存储在移动硬盘中。而区块链网络中需要存证的数据是对该目标文件进行分析计算得到的校验码以及定位文件数据信息。后续通过校验码以及定位文件数据信息也能够定位到该目标文件中被篡改的数据。
应当理解,本说明书一个或多个实施例所述的方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。
图2中的方法,通过获取待存证的目标文件;按照预设拆分方式对目标文件进行拆分,得到拆分后的多个文件数据;按照预设划分方式将多个文件数据划分至多个文件集合;计算多个文件集合对应的校验码,确定每个文件集合中的定位文件数据信息,并将所述校验码以及所述定位文件数据信息存入区块链网络中。通过分块大文件链上存证方法,不用将目标文件对应的全部数据存储在区块链网络中,避免造成数据膨胀的缺陷。引入校验码以及定位文件数据信息,当被存证的目标文件被篡改时,可以定位到目标文件中被篡改的数据。
基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
可选的,根据权利要求1所述的方法,还可以包括:
采用哈希算法计算所述目标文件的摘要值;
将所述摘要值存储在所述区块链网络中。
需要说明的是,区块链网络中还可以存储目标文件对应的摘要值,摘要值是采用摘要算法(也称为哈希算法或散列算法)对目标文件进行计算后得到的。摘要算法用于防篡改,例如:假设目标文件中的内容经MD5计算,得到的内摘要值是A1。在验证时,如果获取的文件对应的摘要值为B,不同于原文的摘要,可以确定目标文件被篡改。
由于摘要函数是一个单向函数通过摘要函数f()对任意长度的数据计算出固定长度的摘要值,但是通过摘要值反推出原始数据较为困难。对原始数据稍微进行改变,都会导致计算出的摘要完全不同。因此,如果摘要值改变,则可以确定原始数据被篡改。
上述方法中,计算目标文件对应的摘要值,并把摘要值存储在区块链网络中,在后续验证过程中,可以先计算需要验证的文件对应的摘要值,通过与区块链网络中存储的摘要值进行比对,如果一致,可以确定目标文件没有被篡改,则不需要再进行后续定位文件中被篡改数据的相关步骤。如果摘要值不一致,则可以进一步采用本说明书实施例中的方案定位目标文件中被篡改的数据。
可选的,所述将所述校验码以及所述定位文件数据信息存入区块链网络中,具体可以包括:
按照预设拼接方式,将所述摘要值、所述校验码以及所述定位文件数据信息进行拼接,得到所述目标文件对应的存证数据;
将所述存证数据存储在区块链网络中。
需要说明的是,在对目标文件进行存证时,存储在区块链网络中的数据可以称为存证数据,存证数据中可以包括摘要值、校验码以及定位文件数据信息。更为具体地,存证数据可以是将摘要值、校验码以及定位文件数据信息进行拼接得到的。拼接方式可以是顺序拼接,也可以是按照其他预先设定的方式进行拼接。
上述方法中,在区块链系统中存储目标文件对应的存证数据,存证数据中的摘要值可以初步确定目标文件是否被篡改,通过定位文件数据信息可以确定目标文件存证时划分得到的文件集合,通过校验码可以确定目标文件中被篡改的数据。
可选的,所述将所述存证数据存入区块链网络中,具体可以包括:
基于所述存证数据,生成包含认证信息的存证证书;
将包含所述存证证书的存证数据发送到所述区块链网络中进行存储。
需要说明的是,存证证书可以对应有网络地址和/或图片,用以查看存证数据对应的存证证书;根据网络地址对应网页或图片可以查看存证证书,并在区块链网络中对存证证书进行验证,以确保存证数据的真实性。
可选的,所述按照预设划分方式将所述多个文件数据划分至多个文件集合,具体可以包括:
按照文件集合的预设文件个数,将所述多个文件数据划分至N个文件集合;每个所述文件集合中的元素之间具有顺序。
在将目标文件拆分为多个文件数据之后,可以将多个文件数据划分至多个文件集合中,在划分时,可以按照每个文件集合的预设文件个数(例如:每个文件集合中的文件个数为5个),将多个文件数据划分至多个文件集合中。
每个集合中的元素之间可以具有顺序,在对目标文件进行拆分时,可以理解为确定目标文件中每个字节对应的数据,拆分不影响原始数据在目标文件中的数据,也不会将拆分后的数据进行存储,拆分的步骤仅用于后续划分至集合的步骤,因此,可以将多个文件数据依次划分至多个文件集合中,例如:将目标文件进行拆分后得到的文件数据为A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,在划分时,假设每个文件集合中的元素个数为5个,则按照顺序划分后得到的集合为:集合1={A1,A2,A3,A4,A5}、集合2={A6,A7,A8,A9,A10}、集合3={A11,A12,A13,A14,\×00}。
上述方法,按照顺序将文件数据划分至多个文件集合中,有利于后续在验证目标文件的被篡改情况时,更快速定位出被篡改的数据所在位置。
可选的,所述计算所述多个文件集合对应的校验码之前,还可以包括:
按照矩阵的形式对N个所述文件集合进行排列,得到N行M列的矩阵;
所述计算所述多个文件集合对应的校验码,具体可以包括:
采用纠删算法,对多个所述文件集合对应的矩阵的每一行生成对应的校验码;对多个所述文件集合对应的矩阵的每一列文件集合生成对应的校验码。
在实际应用中,在将目标文件划分为多个文件集合之后,可以将多个文件集合按照矩阵的形式进行排列。
可以结合图3进行说明:
图3为本说明书实施例提供的文件集合排列示意图。如图3所示,可以依次对多个文件集合进行标号,例如:A11、A12、……、A1n、……、A21、A31、……、An1等等,并将其拼接成一个N*N的矩阵,N的值可以根据具体情况进行调整。如果还有剩余的文件集合,则可以继续进行标号并拼接成下一个N*N的矩阵。当文件集合不足以填充最后一个N*N矩阵时,使用由固定字符,例如:\x00组成的文件集合进行填充,如图3中的阴影部分所示,A33中的部分字符至Ann均是使用由固定字符组成的文件集合进行填充得到的。其中,固定字符也可以选择其他固定字符。
在进行校验码计算时,可以选择一种校验码,分别计算图3中矩阵的每一行的校验码以及每一列的校验码,例如:图3中的矩阵第一行对应的校验码为RS1,第二行对应的校验码为RS2,第三行对应的校验码为RS3,……,第N行对应的校验码为RSn;第一列对应的校验码为RSn+1,第二列对应的校验码为RSn+2,第三列对应的校验码为RSn+3,……,第N列对应的校验码为RSn+n。
需要说明的是,在计算校验码时,使用的算法不局限于使用纠删算法,还可以使用其他类型的Hash算法。
在使用纠删算法时,例如使用RS算法时,取N(Data Shards)=50,Parity Shards=2,则会产生原始文件(2/50)*2=8%的信息用来纠删及校验;并能保证矩阵中任意4个文件集合被篡改后仍能恢复出原始存证数据(每行或每列至多2个文件集合)。
通过上述方法,在对文件进行存证时,对文件进行分块校验存证的方式,以及引入校验码和定位码,在文件验证时进行错误纠正。首先对文件进行分块,然后将各个分块依次排列成n*n的二维矩阵;针对矩阵的每一行和每一列分别计算校验码,将每个矩阵的第一个元素作为定位码;在区块链上通过写入文件摘要校验码和定位文件数据信息进行存证,使用可控的存储成本就能判断出大文件中哪些文件集合被修改过,哪些是原始内容,并且仍然能对正确或未丢失的部分提供未篡改证明。
实施例2
图4为本说明书实施例提供的一种文件存证方法的流程示意图。
在验证阶段能检测大文件中哪些分片被修改过,对于未修改过的分片仍然能提供未修改证明;进一步如果修改的分片量很少,则能在验证阶段指出这些分片是被如何修改的。
如图4所示,该流程可以包括以下步骤:
步骤410:从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码。
其中,校验码是可以通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是可以对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息可以包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息。
具体地,该步骤中涉及的相关内容可以参见实施例1中的解释,此处不再赘述。
需要说明的是,验证阶段中,根据待验证文件的文件标识,从区块链网络中获取存储的待验证文件对应的存证数据。其中,存证数据可以包括待验证文件的摘要值、校验码以及定位文件数据信息。摘要值可以是对预先存证的目标文件进行计算得到的。
步骤420:基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合。
在验证阶段,通过区块链网络中存储的定位文件信息,可以按照存证阶段使用的预设划分方式,确定待验证文件对应的多个文件集合。
更为具体地,定位文件数据信息中的位置信息以及定位文件数据的内容信息,可以大致定位出待验证文件在存证阶段对应的文件集合的元素,例如:从获取的定位文件数据信息中确定在存证阶段,将每个文件集合中的第一个元素作为定位码,那么,可以在待验证文件中先找到第一个元素,作为第一个集合的第一个元素,然后按照每个集合中的固定元素数量,例如:9个,在待验证文件对应的数据中,从第一个元素开始依次找满9个元素,作为第一个文件集合,依次类推,找出待识别文件可能对应的文件集合。最终确定出待验证文件对应的多个文件集合。
步骤430:计算所述多个文件集合对应的校验码。
此处计算待验证文件对应的多个文件集合对应的校验码时,可以先将多个文件集合按照矩阵形式进行排列,按照计算矩阵中每一行文件集合对应的校验码以及计算每一列文件集合对应的校验码。
步骤440:将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果。
步骤450:基于所述比对结果,对所述待验证文件进行验证。
通过比对校验码的方式,可以确定矩阵中的某一行和/或某一列中的文件集合存在被篡改的情况。因此,可以将计算得到的校验码与从区块链网络中获取的校验码进行比对,从而定位出被篡改的文件集合。
图4中的方法,通过从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;计算所述多个文件集合对应的校验码;将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;基于所述比对结果,对所述待验证文件进行验证。可以通过从区块链网络中存证的存证数据确定待验证文件中具体被篡改的文件集合,从而定位出被篡改的数据。
基于图4的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
可选的,所述从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码,具体可以包括:
获取所述待验证文件对应的标识信息;
基于所述标识信息从所述区块链网络中获取所述待验证文件对应的定位文件数据信息以及校验码。
需要说明的是,标识信息可以表示的是能够唯一标识待验证文件的信息,基于该标识信息可以从区块链网络中获取该待验证文件对应的存证数据,进一步地,为了保证存证数据的安全性,在基于标识信息获取待验证文件对应的存证数据之前,可以要求请求获取待验证文件对应的存证数据的请求方提供授权声明,该授权声明可以是由待验证文件的持有方所颁布的,具体地址,授权声明中可以携带有持有方的数字签名,区块链网络在接收到存证数据获取请求时,可以审核存证数据请求中携带的授权声明,审核通过后,就可以基于该请求中的标识信息,为请求方提供待验证文件对应的存证数据。
可选的,所述基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合之前,还可以包括:
使用存证时使用的Hash算法,计算所述待验证文件的摘要值;
将计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值进行比对;
当计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值一致时,确定所述待验证文件未被篡改;
当计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值不一致时,基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合。
在实际应用中,在验证文件是否被篡改以及具体被篡改的数据时,可以首先判断文件是否被篡改,判断的方式可以是通过比对摘要值的方式,计算待验证文件的摘要值,与从区块链网络中获取到的目标文件的摘要值进行比对,如果一致,可以确定待验证文件就是存证时对应的目标文件,待验证文件未被篡改,则不需要再进行后续的定位篡改数据的步骤。相反,如果摘要值不一致,则可以确定待验证文件是被篡改过的文件,可以进一步定位出待验证文件中被篡改过的具体数据。
可选的,所述基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合,具体可以包括:
基于所述位置信息,确定第一定位文件数据集合;
基于动态规划算法,从所述第一定位文件集合确定覆盖率满足预设条件的第二定位文件数据集合;
将所述第二定位文件数据集合与预先存储的定位文件数据信息进行比对,确定不一致的定位文件数据信息;
根据所述不一致的定位文件数据信息,确定第三定位文件数据集合,以使所述第三定位文件数据集合与预先存储的定位文件数据的匹配率最大;
基于所述第三定位文件数据集合,确定所述待验证文件对应的多个文件集合。
需要说明的是,第一定位文件数据集合可以表示按照固定间隔确定的所有可能的定位码集合,第二定位文件数据集合是基于动态规划算法,确定的矩阵覆盖率满足预设条件的定位码集合;第三定位文件数据集合是对第二定位文件数据集合进行补充定位之后,得到的最终的定位码集合。
在基于定位文件数据信息确定多个文件集合时,目标是从存证数据中获取定位码,并尽可能地让定位码在被验证文件中确定的矩阵与原始文件中的矩阵保持一致。对应的阶段可以分为初步定位和补充定位:
初步定位可以是根据存证时文件集合之间的固定间隔,在文件中寻找与之匹配的序列,使被验证文件中被定位码确定的矩阵覆盖的内容尽可能地多。需要说明的是,在实际应用中,当有多种排列使覆盖率相同时,则可以进一步比较这些排列确定的矩阵的整体匹配率,选择匹配率最高的一种定位码排列。
具体地,各个矩阵的匹配率=矩阵中未被修改的文件集合的数量/矩阵文件集合总数量);结合图5进行说明:
图5为本说明书实施例提供的基于定位文件数据信息进行初步定位示意图。
如图5所示,在被验证文件中,A11与B11、E11与F11与G11、H11与I11之间的间隔均为存证时的固定间隔;B11与E11之间存在未被关联的定位码C11、D11并且存在未被定位码确定的矩阵覆盖的数据;同时定位码H11位于定位码G11确定的矩阵内部。
补充定位可以是初步定位的补充,当被验证文件中两个确定的定位码之间存在定位码序列中未被确定的定位码时,补充定位负责将这些定位码插入到被验证文件的这两个确定的定位码之间,使各个矩阵的匹配率尽可能地高。结合图6进行说明:
图6为本说明书实施例提供的基于定位文件数据信息进行补充定位示意图。
如图6所示,在B11和E11定位码中间,通过补充定位插入了C11、D11两个定位码确定的矩阵。例如:记各个定位码为a1,a2,…,an,存证时定位码确定的矩阵大小为L字节,被验证文件的字节流为d1,d2,…,dm。逐字节遍历文件,若满足[di,di+1,di+2,di+3]==aj(假设文件集合4个字节),且[di+L,di+L+1,di+L+2,di+L+3]==aj+1、[di+n*L,di+n*L+1,di+n*L+2,di+n*L+3]!=aj+n;则aj,aj+1,…,aj+n-1是在[di,di+1,…,di+(n-1)*L+3]上的有效定位区间。记被验证文件上的所有有效区间按终止定位码的字节流位置(di+(n-1)*L+3)升序排列为S1,S2,…,Sn,各个区间的长度为X1,X2,…,Xn。长度=定位码个数-1,以及各个区间的起始定位码序号a1,a2,…,an和在被验证文件中的终止位置d1,d2,…,dn;则问题被转换成了从S中选择区间序列[SR1,SR2,…,SRm],满足ai+Xi≤ai+1,并使XR1+XR2+…+XRm最大。这个问题忽略ai+Xi≤ai+1时,可以用以下动态规划求解。
具体地,可以检测被验证文件中数据顺序调整的情况:记dp[i]为在被验证文件中,到第i个字节的最大覆盖长度,Sk为所有以i为终止位置的有效区间集合,则状态转移方程为:增加ai+Xi≤ai+1条件时,可以用以下二维动态规划求解。
进而可以求出S中的一个区间序列[SR1,SR2,…,SRm],满足ai+Xi≤ai+1,并使XR1+XR2+…+XRm最大;也就是根据存证时定位码的固定间隔,定位码在原始文件中的一种排布,能使被验证文件中被定位码确定的矩阵覆盖的内容尽可能地多。
记区间中未被确定的定位码为a1,a2,…,an,存证时定位码确定的矩阵大小为L字节。第一步在区间中寻找首个定位码a1(如果未找到则寻找a2,均未找到时跳过补充定位);第二步在a1+L的左、右寻找a2(如果未找到则寻找a3,左侧最左到a1的位置,右侧到区间结束);第三步重复步骤二,直到区间结束或者没有下一个未被确定的定位码为止。以上三步中确定的定位码位置即为补充确定的定位码。
可选的,所述计算所述多个文件集合对应的校验码,具体可以包括:
按照矩阵的形式对N个所述文件集合进行排列,得到N行M列的矩阵;
采用纠删算法,对所述矩阵的每一行对应的多个所述文件集合生成对应的行校验码;对所述矩阵的每一列对应的多个所述文件集合生成对应的列校验码。
在计算多个文件集合对应的校验码时,可以先确定多个文件集合对应的矩阵,然后再针对矩阵,计算矩阵中每一行每一列对应的校验码:
具体地,从各个定位码开始(如A11、B11、C11),按存证时的每个集合的文件数据划分方式(例如4Byte)对定位码后续的数据进行划分,直到下一个定位码为止。如果到下一个定位码为止,数据无法填充满一个文件集合,则使用存证时的固定字节如\x00填充最后一个文件集合中的剩余部分。
通过各个定位码及其对应的文件集合,还原出存证使用的N*N矩阵。如果到下一个定位码为止,数据文件集合的数量超出了存证矩阵N*N的文件集合数量,则多出的文件集合被当作插入的数据标记;如果文件集合数量不足,则用存证时确定的固定字节如\x00填充后续文件集合,凑齐N*N的矩阵,并将缺少的文件集合当作缺少的数据标记。
然后在计算待验证文件对应的多个文件集合的校验码时,使用存证时的校验码或者Hash函数,分别计算出每个矩阵的各行各列的校验码,并与存证时保存的校验码进行对比,定位出被修改的文件集合。可以结合图6进行说明:
图7为本说明书实施例提供的基于校验码进行验证的示意图。
如图7所示,例如:在计算矩阵的校验码,与区块链网络中获取的校验码进行比对时,发现RS1、RS3、RSn+1、RSn+n与存证时的校验码的值不一致,则可以表示矩阵中的文件集合A11、A1n、A31、A3n的内容与存证时不一致。
进一步地,将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果,具体可以包括:
对于所述矩阵中的第i行的多个所述文件集合,从所述区块链网络中获取所述第i行的多个所述文件集合对应的行校验码;
将计算得到的所述第i行的多个所述文件集合对应的行校验码与从所述区块链获取的所述第i行的多个所述文件集合对应的行校验码进行比对,得到行校验码比对结果;
对于所述矩阵中的第j列的多个所述文件集合,从所述区块链网络中获取所述第j列的多个所述文件集合对应的列校验码;
将计算得到的所述第j列的多个所述文件集合对应的列校验码与从所述区块链获取的所述第j列的多个所述文件集合对应的列校验码进行比对,得到列校验码比对结果。
需要说明的是,在对矩阵的每一行的校验码进行比对,以及对矩阵的每一列校验码进行比对之后,可以确定出具体被篡改的数据,例如:通过比对行校验码,确定出矩阵中的第3行校验码不一致,通过列校验码比对,确定出第2列的校验码不一致,则可以确定矩阵中第3行第2列处的数据被篡改。
可选的,如果在计算校验码时使用的算法为纠删算法,则可以通过校验码对部分修改数据进行恢复。例如使用RS算法时,取N(Data Shards)=50,Parity Shards=2,那么,当某一行或某一列中的被修改文件集合数小于等于2个时;根据该行或列的其它值及校验码,通过RS算法就可以恢复出该行或列中被修改的文件集合。
上述两个实施例,可以实现的技术效果如下:
1)在大文件Hash上链存证的方案中,验证者无法得知文件中哪一部分被篡改过,只能获得文件整体是否和原先一致的最终结果。本说明书实施例的技术方案,能对单个大文件的各个文件集合进行独立验证,使用可控的存储成本来判断出大文件中哪些文件集合被修改过,哪些是原始内容。这样在验证时,能够直接发现被修改的文件集合内容,对于其他内容仍然能证明其没有经过篡改。
2)由于Hash上链存证不会存储原文件,源文件被托管存储在外部系统中。外部系统有极小概率可能会导致文件部分损坏,例如使用磁盘存储时,磁极出现反转后导致数据错误,或出现坏道后导致数据丢失等。本说明书实施例中的方案,仍然能对正确或未丢失的部分提供未篡改证明;进一步的,当篡改的数据或丢失的数据占整理数据很小的一部分时,能够通过存证信息,对丢失或篡改的数据进行还原。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图8为本说明书实施例提供的一种文件存证装置的结构示意图。如图8所示,该装置可以包括:
目标文件获取模块810,用于获取待存证的目标文件;
文件数据确定模块820,用于按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
文件集合划分模块830,用于按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
校验码计算模块840,用于计算所述多个文件集合对应的校验码;
定位文件数据信息确定模块850,用于确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
数据存储模块860,用于将所述校验码以及所述定位文件数据信息存入区块链网络中。
基于图8的装置,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
可选的,所述装置,还可以包括:
摘要值计算模块,用于采用哈希算法计算所述目标文件的摘要值;
摘要值存储模块,用于将所述摘要值存储在所述区块链网络中。
可选的,所述数据存储模块860,具体可以包括:
存证数据确定单元,用于按照预设拼接方式,将所述摘要值、所述校验码以及所述定位文件数据信息进行拼接,得到所述目标文件对应的存证数据;
存证数据存储单元,用于将所述存证数据存储在区块链网络中。
可选的,所述存证数据存储单元,具体可以用于:
基于所述存证数据,生成包含认证信息的存证证书;
将包含所述存证证书的存证数据发送到所述区块链网络中进行存储。
可选的,所述文件集合划分模块830,具体可以包括:
划分单元,用于按照文件集合的预设文件个数,将所述多个文件数据划分至N个文件集合;每个所述文件集合中的元素之间具有顺序。
可选的,所述装置,还可以包括:
文件集合排列模块,用于按照矩阵的形式对N个所述文件集合进行排列,得到N行M列的矩阵;
所述校验码计算模块,具体包括:
校验码计算单元,用于采用纠删算法,对多个所述文件集合对应的矩阵的每一行生成对应的校验码;对多个所述文件集合对应的矩阵的每一列文件集合生成对应的校验码。
可选的,所述定位文件数据信息确定模块850,具体可以包括:
定位文件数据信息确定单元,用于将每组所述文件集合中的特定位置处的元素确定为定位文件数据,得到定位文件数据集合。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图9为本说明书实施例提供的一种文件验证装置的结构示意图。如图9所示,该装置可以包括:
数据获取模块910,用于从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
文件集合确定模块920,用于基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
校验码计算模块930,用于计算所述多个文件集合对应的校验码;
比对模块940,用于将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
验证模块950,用于基于所述比对结果,对所述待验证文件进行验证。
基于图9的装置,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
可选的,所述数据获取模块910,具体可以包括:
标识信息获取单元,用于获取所述待验证文件对应的标识信息;
数据获取单元,用于基于所述标识信息从所述区块链网络中获取所述待验证文件对应的定位文件数据信息以及校验码。
可选的,所述装置,还可以包括:
摘要值计算模块,用于使用存证时使用的Hash算法,计算所述待验证文件的摘要值;
摘要值比对模块,用于将计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值进行比对;
篡改情况确定单元,用于当计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值一致时,确定所述待验证文件未被篡改;当计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值不一致时,基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合。
可选的,所述文件集合确定模块920,具体可以包括:
第一定位文件数据集合确定单元,用于基于所述位置信息,确定第一定位文件数据集合;
第二定位文件数据集合确定单元,用于基于动态规划算法,从所述第一定位文件集合确定覆盖率满足预设条件的第二定位文件数据集合;
定位文件数据信息比对单元,用于将所述第二定位文件数据集合与预先存储的定位文件数据信息进行比对,确定不一致的定位文件数据信息;
第三定位文件数据集合确定单元,用于根据所述不一致的定位文件数据信息,确定第三定位文件数据集合,以使所述第三定位文件数据集合与预先存储的定位文件数据的匹配率最大;
文件集合确定单元,用于基于所述第三定位文件数据集合,确定所述待验证文件对应的多个文件集合。
可选的,所述校验码计算模块930,具体可以包括:
文件集合排列单元,用于按照矩阵的形式对N个所述文件集合进行排列,得到N行M列的矩阵;
校验码生成单元,用于采用纠删算法,对所述矩阵的每一行对应的多个所述文件集合生成对应的行校验码;对所述矩阵的每一列对应的多个所述文件集合生成对应的列校验码。
可选的,所述比对模块940,具体可以用于:
对于所述矩阵中的第i行的多个所述文件集合,从所述区块链网络中获取所述第i行的多个所述文件集合对应的行校验码;
将计算得到的所述第i行的多个所述文件集合对应的行校验码与从所述区块链获取的所述第i行的多个所述文件集合对应的行校验码进行比对,得到行校验码比对结果;
对于所述矩阵中的第j列的多个所述文件集合,从所述区块链网络中获取所述第j列的多个所述文件集合对应的列校验码;
将计算得到的所述第j列的多个所述文件集合对应的列校验码与从所述区块链获取的所述第j列的多个所述文件集合对应的列校验码进行比对,得到列校验码比对结果。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图10是本说明书实施例提供的一种文件存证、验证设备示意图。如图10所示,设备1000可以包括:
至少一个处理器1010;以及,
与所述至少一个处理器通信连接的存储器1030;其中,
所述存储器1030存储有可被所述至少一个处理器1010执行的指令1020
对应于实施例1,所述指令1020被所述至少一个处理器1010执行,以使所述至少一个处理器1010能够:
获取待存证的目标文件;按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
计算所述多个文件集合对应的校验码;
确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
将所述校验码以及所述定位文件数据信息存入区块链网络中。
对应于实施例2,所述指令1020被所述至少一个处理器1010执行,以使所述至少一个处理器1010能够:
从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
计算所述多个文件集合对应的校验码;
将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
基于所述比对结果,对所述待验证文件进行验证。
基于同样的思路,本说明书实施例还提供了上述方法对应的计算机可读介质。计算机可读介质上存储有计算机可读指令,对应于实施例1,所述计算机可读指令可被处理器执行以实现以下方法:
获取待存证的目标文件;按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
计算所述多个文件集合对应的校验码;
确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
将所述校验码以及所述定位文件数据信息存入区块链网络中。
对应于实施例2,所述计算机可读指令可被处理器执行以实现以下方法:
从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
计算所述多个文件集合对应的校验码;
将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
基于所述比对结果,对所述待验证文件进行验证。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字符系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字符助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字符多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (24)
1.一种文件存证方法,包括:
获取待存证的目标文件;
按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
计算所述多个文件集合对应的校验码;
确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
将所述校验码以及所述定位文件数据信息存入区块链网络中。
2.根据权利要求1所述的方法,还包括:
采用哈希算法计算所述目标文件的摘要值;
将所述摘要值存储在所述区块链网络中。
3.根据权利要求2所述的方法,所述将所述校验码以及所述定位文件数据信息存入区块链网络中,具体包括:
按照预设拼接方式,将所述摘要值、所述校验码以及所述定位文件数据信息进行拼接,得到所述目标文件对应的存证数据;
将所述存证数据存储在区块链网络中。
4.根据权利要求3所述的方法,所述将所述存证数据存入区块链网络中,具体包括:
基于所述存证数据,生成包含认证信息的存证证书;
将包含所述存证证书的存证数据发送到所述区块链网络中进行存储。
5.根据权利要求1所述的方法,所述按照预设划分方式将所述多个文件数据划分至多个文件集合,具体包括:
按照文件集合的预设文件个数,将所述多个文件数据划分至N个文件集合;每个所述文件集合中的元素之间具有顺序。
6.根据权利要求5所述的方法,所述计算所述多个文件集合对应的校验码之前,还包括:
按照矩阵的形式对N个所述文件集合进行排列,得到N行M列的矩阵;
所述计算所述多个文件集合对应的校验码,具体包括:
采用纠删算法,对多个所述文件集合对应的矩阵的每一行生成对应的校验码;对多个所述文件集合对应的矩阵的每一列文件集合生成对应的校验码。
7.根据权利要求1所述的方法,所述确定每个所述文件集合中的定位文件数据信息,具体包括:
将每组所述文件集合中的特定位置处的元素确定为定位文件数据,得到定位文件数据集合。
8.一种文件验证方法,包括:
从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
计算所述多个文件集合对应的校验码;
将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
基于所述比对结果,对所述待验证文件进行验证。
9.根据权利要求8所述的方法,所述从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码,具体包括:
获取所述待验证文件对应的标识信息;
基于所述标识信息从所述区块链网络中获取所述待验证文件对应的定位文件数据信息以及校验码。
10.根据权利要求8所述的方法,所述基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合之前,还包括:
使用存证时使用的Hash算法,计算所述待验证文件的摘要值;
将计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值进行比对;
当计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值一致时,确定所述待验证文件未被篡改;
当计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值不一致时,基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合。
11.根据权利要求8所述的方法,所述基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合,具体包括:
基于所述位置信息,确定第一定位文件数据集合;
基于动态规划算法,从所述第一定位文件集合确定覆盖率满足预设条件的第二定位文件数据集合;
将所述第二定位文件数据集合与预先存储的定位文件数据信息进行比对,确定不一致的定位文件数据信息;
根据所述不一致的定位文件数据信息,确定第三定位文件数据集合,以使所述第三定位文件数据集合与预先存储的定位文件数据的匹配率最大;
基于所述第三定位文件数据集合,确定所述待验证文件对应的多个文件集合。
12.根据权利要求11所述的方法,所述计算所述多个文件集合对应的校验码,具体包括:
按照矩阵的形式对N个所述文件集合进行排列,得到N行M列的矩阵;
采用纠删算法,对所述矩阵的每一行对应的多个所述文件集合生成对应的行校验码;对所述矩阵的每一列对应的多个所述文件集合生成对应的列校验码。
13.根据权利要求12所述的方法,将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果,具体包括:
对于所述矩阵中的第i行的多个所述文件集合,从所述区块链网络中获取所述第i行的多个所述文件集合对应的行校验码;
将计算得到的所述第i行的多个所述文件集合对应的行校验码与从所述区块链获取的所述第i行的多个所述文件集合对应的行校验码进行比对,得到行校验码比对结果;
对于所述矩阵中的第j列的多个所述文件集合,从所述区块链网络中获取所述第j列的多个所述文件集合对应的列校验码;
将计算得到的所述第j列的多个所述文件集合对应的列校验码与从所述区块链获取的所述第j列的多个所述文件集合对应的列校验码进行比对,得到列校验码比对结果。
14.一种文件存证装置,包括:
目标文件获取模块,用于获取待存证的目标文件;
文件数据确定模块,用于按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
文件集合划分模块,用于按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
校验码计算模块,用于计算所述多个文件集合对应的校验码;
定位文件数据信息确定模块,用于确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
数据存储模块,用于将所述校验码以及所述定位文件数据信息存入区块链网络中。
15.根据权利要求14所述的装置,所述文件集合划分模块,具体包括:
划分单元,用于按照文件集合的预设文件个数,将所述多个文件数据划分至N个文件集合;每个所述文件集合中的元素之间具有顺序。
16.根据权利要求15所述的装置,所述装置,还包括:
文件集合排列模块,用于按照矩阵的形式对N个所述文件集合进行排列,得到N行M列的矩阵;
所述校验码计算模块,具体包括:
校验码计算单元,用于采用纠删算法,对多个所述文件集合对应的矩阵的每一行生成对应的校验码;对多个所述文件集合对应的矩阵的每一列文件集合生成对应的校验码。
17.一种文件验证装置,包括:
数据获取模块,用于从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
文件集合确定模块,用于基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
校验码计算模块,用于计算所述多个文件集合对应的校验码;
比对模块,用于将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
验证模块,用于基于所述比对结果,对所述待验证文件进行验证。
18.根据权利要求17所述的装置,所述装置,还包括:
摘要值计算模块,用于使用存证时使用的Hash算法,计算所述待验证文件的摘要值;
摘要值比对模块,用于将计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值进行比对;
篡改情况确定单元,用于当计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值一致时,确定所述待验证文件未被篡改;当计算得到的所述待验证文件的摘要值与所述存证数据中的摘要值不一致时,基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合。
19.根据权利要求17所述的装置,所述文件集合确定模块,具体包括:
第一定位文件数据集合确定单元,用于基于所述位置信息,确定第一定位文件数据集合;
第二定位文件数据集合确定单元,用于基于动态规划算法,从所述第一定位文件集合确定覆盖率满足预设条件的第二定位文件数据集合;
定位文件数据信息比对单元,用于将所述第二定位文件数据集合与预先存储的定位文件数据信息进行比对,确定不一致的定位文件数据信息;
第三定位文件数据集合确定单元,用于根据所述不一致的定位文件数据信息,确定第三定位文件数据集合,以使所述第三定位文件数据集合与预先存储的定位文件数据的匹配率最大;
文件集合确定单元,用于基于所述第三定位文件数据集合,确定所述待验证文件对应的多个文件集合。
20.根据权利要求19所述的装置,所述校验码计算模块,具体包括:
文件集合排列单元,用于按照矩阵的形式对N个所述文件集合进行排列,得到N行M列的矩阵;
校验码生成单元,用于采用纠删算法,对所述矩阵的每一行对应的多个所述文件集合生成对应的行校验码;对所述矩阵的每一列对应的多个所述文件集合生成对应的列校验码。
21.根据权利要求20所述的装置,所述比对模块,具体用于:
对于所述矩阵中的第i行的多个所述文件集合,从所述区块链网络中获取所述第i行的多个所述文件集合对应的行校验码;
将计算得到的所述第i行的多个所述文件集合对应的行校验码与从所述区块链获取的所述第i行的多个所述文件集合对应的行校验码进行比对,得到行校验码比对结果;
对于所述矩阵中的第j列的多个所述文件集合,从所述区块链网络中获取所述第j列的多个所述文件集合对应的列校验码;
将计算得到的所述第j列的多个所述文件集合对应的列校验码与从所述区块链获取的所述第j列的多个所述文件集合对应的列校验码进行比对,得到列校验码比对结果。
22.一种文件存证设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取待存证的目标文件;按照预设拆分方式对所述目标文件进行拆分,得到拆分后的多个文件数据;
按照预设划分方式将所述多个文件数据划分至多个文件集合;每个所述文件集合中包含m个元素;
计算所述多个文件集合对应的校验码;
确定每个所述文件集合中的定位文件数据信息;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
将所述校验码以及所述定位文件数据信息存入区块链网络中。
23.一种文件验证设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
从区块链网络中获取待验证文件对应的定位文件数据信息以及校验码;所述校验码是通过对预先存证的目标文件对应的多个文件集合进行计算得到的;所述多个文件集合是对所述目标文件按照预设拆分方式进行拆分,得到多个文件数据,并按照预设划分方式将所述多个文件数据进行划分得到的;所述定位文件数据信息包括所述文件集合中的定位文件数据在所述目标文件中的位置信息以及所述定位文件数据的内容信息;
基于所述定位文件数据信息,确定所述待验证文件对应的多个文件集合;
计算所述多个文件集合对应的校验码;
将计算得到的所述多个文件集合对应的校验码与从所述区块链网络中获取的校验码进行比对,得到比对结果;
基于所述比对结果,对所述待验证文件进行验证。
24.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现权利要求1至13中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310530555.6A CN116579025A (zh) | 2021-04-20 | 2021-04-20 | 一种文件存证方法、装置及设备 |
CN202110426516.2A CN113065169B (zh) | 2021-04-20 | 2021-04-20 | 一种文件存证方法、装置及设备 |
PCT/CN2022/086300 WO2022222786A1 (zh) | 2021-04-20 | 2022-04-12 | 文件存证的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110426516.2A CN113065169B (zh) | 2021-04-20 | 2021-04-20 | 一种文件存证方法、装置及设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310530555.6A Division CN116579025A (zh) | 2021-04-20 | 2021-04-20 | 一种文件存证方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113065169A true CN113065169A (zh) | 2021-07-02 |
CN113065169B CN113065169B (zh) | 2023-05-09 |
Family
ID=76567120
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310530555.6A Pending CN116579025A (zh) | 2021-04-20 | 2021-04-20 | 一种文件存证方法、装置及设备 |
CN202110426516.2A Active CN113065169B (zh) | 2021-04-20 | 2021-04-20 | 一种文件存证方法、装置及设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310530555.6A Pending CN116579025A (zh) | 2021-04-20 | 2021-04-20 | 一种文件存证方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN116579025A (zh) |
WO (1) | WO2022222786A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113536310A (zh) * | 2021-07-08 | 2021-10-22 | 浙江网商银行股份有限公司 | 一种代码文件的处理方法、检验方法、装置及电子设备 |
WO2022222786A1 (zh) * | 2021-04-20 | 2022-10-27 | 支付宝(杭州)信息技术有限公司 | 文件存证的方法、装置及设备 |
CN115664854A (zh) * | 2022-12-22 | 2023-01-31 | 广州市悦智计算机有限公司 | 一种物联网数据采集设备数据上链并进行确认的方法 |
CN117273974A (zh) * | 2023-11-21 | 2023-12-22 | 中国人寿保险股份有限公司上海数据中心 | 基于区块链共识的大型企业费用报销数据生成验证方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117097559B (zh) * | 2023-10-17 | 2023-12-19 | 天津德科智控股份有限公司 | Eps转向角度报文传输验证方法 |
CN117979118B (zh) * | 2024-03-29 | 2024-07-02 | 杭州海康威视数字技术股份有限公司 | 一种数据流录制方法、装置、记录仪及记录系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491968A (zh) * | 2018-11-13 | 2019-03-19 | 浙江鲸腾网络科技有限公司 | 一种文件处理方法、装置、设备及计算机可读存储介质 |
WO2019072294A2 (en) * | 2018-12-13 | 2019-04-18 | Alibaba Group Holding Limited | PROVIDING CONSENSUS BETWEEN NETWORK NODES IN A DISTRIBUTED SYSTEM |
CN110795269A (zh) * | 2018-08-03 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 一种数据恢复验证方法、装置及设备 |
CN111353180A (zh) * | 2020-03-30 | 2020-06-30 | 北京海益同展信息科技有限公司 | 一种区块链存证方法、取证方法及系统 |
CN111444042A (zh) * | 2020-03-24 | 2020-07-24 | 哈尔滨工程大学 | 一种基于纠删码的区块链数据存储方法 |
CN111541753A (zh) * | 2020-04-16 | 2020-08-14 | 深圳市网心科技有限公司 | 区块链数据的分布式存储系统、方法、计算机设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647523B (zh) * | 2018-04-28 | 2020-01-17 | 华南理工大学 | 一种基于区块链的电子证明系统及存证、文件恢复方法 |
CN109409135B (zh) * | 2018-10-19 | 2021-06-22 | 北京金山云网络技术有限公司 | 一种数据的特征信息获得方法、装置、设备和存储介质 |
US10949388B2 (en) * | 2018-11-16 | 2021-03-16 | Advanced Messaging Technologies, Inc. | Systems and methods for distributed data storage and delivery using blockchain |
CN111222176B (zh) * | 2020-01-08 | 2022-09-23 | 中国人民解放军国防科技大学 | 基于区块链的云存储持有性证明方法、系统及介质 |
CN111611622A (zh) * | 2020-05-29 | 2020-09-01 | 宁波富万信息科技有限公司 | 基于区块链的文件存储方法和电子设备 |
CN116579025A (zh) * | 2021-04-20 | 2023-08-11 | 支付宝(杭州)信息技术有限公司 | 一种文件存证方法、装置及设备 |
-
2021
- 2021-04-20 CN CN202310530555.6A patent/CN116579025A/zh active Pending
- 2021-04-20 CN CN202110426516.2A patent/CN113065169B/zh active Active
-
2022
- 2022-04-12 WO PCT/CN2022/086300 patent/WO2022222786A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795269A (zh) * | 2018-08-03 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 一种数据恢复验证方法、装置及设备 |
CN109491968A (zh) * | 2018-11-13 | 2019-03-19 | 浙江鲸腾网络科技有限公司 | 一种文件处理方法、装置、设备及计算机可读存储介质 |
WO2019072294A2 (en) * | 2018-12-13 | 2019-04-18 | Alibaba Group Holding Limited | PROVIDING CONSENSUS BETWEEN NETWORK NODES IN A DISTRIBUTED SYSTEM |
CN111444042A (zh) * | 2020-03-24 | 2020-07-24 | 哈尔滨工程大学 | 一种基于纠删码的区块链数据存储方法 |
CN111353180A (zh) * | 2020-03-30 | 2020-06-30 | 北京海益同展信息科技有限公司 | 一种区块链存证方法、取证方法及系统 |
CN111541753A (zh) * | 2020-04-16 | 2020-08-14 | 深圳市网心科技有限公司 | 区块链数据的分布式存储系统、方法、计算机设备及介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022222786A1 (zh) * | 2021-04-20 | 2022-10-27 | 支付宝(杭州)信息技术有限公司 | 文件存证的方法、装置及设备 |
CN113536310A (zh) * | 2021-07-08 | 2021-10-22 | 浙江网商银行股份有限公司 | 一种代码文件的处理方法、检验方法、装置及电子设备 |
CN115664854A (zh) * | 2022-12-22 | 2023-01-31 | 广州市悦智计算机有限公司 | 一种物联网数据采集设备数据上链并进行确认的方法 |
CN117273974A (zh) * | 2023-11-21 | 2023-12-22 | 中国人寿保险股份有限公司上海数据中心 | 基于区块链共识的大型企业费用报销数据生成验证方法 |
CN117273974B (zh) * | 2023-11-21 | 2024-02-06 | 中国人寿保险股份有限公司上海数据中心 | 基于区块链共识的大型企业费用报销数据生成验证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113065169B (zh) | 2023-05-09 |
WO2022222786A1 (zh) | 2022-10-27 |
CN116579025A (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113065169A (zh) | 一种文件存证方法、装置及设备 | |
US20190158296A1 (en) | Redactable document signatures | |
US10602202B1 (en) | System and techniques for digital data lineage verification | |
CN108683502B (zh) | 一种数字签名验证方法、介质及设备 | |
CN110391914B (zh) | 一种基于二维码的文件获取方法及设备、二维码生成方法 | |
RU2003126950A (ru) | Защита объекта заголовка потока данных | |
US20080320314A1 (en) | Apparatus for writing data to a medium | |
CN110061843B (zh) | 一种链式账本中的块高创建方法、装置及设备 | |
CN110046509B (zh) | 一种对写入块链的交易进行隐匿的方法及装置 | |
US20200382284A1 (en) | Tracking, storage and authentication of documented intellectual property | |
CN113362068B (zh) | 一种轻节点验证区块链状态转移的方法 | |
US11330345B2 (en) | Verification code generation method, data verification method and electronic device | |
EP2568655A2 (en) | Method for authenticating a storage device, machine-readable storage medium, and host device | |
US20140294229A1 (en) | Method and Device for Watermarking a Sequence of Images, Method and Device for Authenticating a Sequence of Watermarked Images and Corresponding Computer Program | |
JPH03151738A (ja) | 検証用データ生成装置 | |
CN110719494B (zh) | 一种实现cdn流媒体数据防篡改的方法及系统 | |
CN110008733B (zh) | 一种对写入块链的交易进行隐匿的方法及装置 | |
CN111147477B (zh) | 一种基于区块链网络的验证方法及装置 | |
CN113553626A (zh) | 一种数据完整性检测方法、装置、设备及存储介质 | |
KR102275868B1 (ko) | 비디오 데이터의 위/변조 방지 장치 및 방법 | |
KR102160194B1 (ko) | 핑거프린트 및 3D n-gram을 혼합한 영상 데이터 무결성 검증 방법 및 그 시스템 | |
TWI553630B (zh) | 音訊信號的水印資訊載入裝置及方法 | |
KR101609846B1 (ko) | 블랙박스 영상에 대한 적정성 관리 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체 | |
CN114915416B (zh) | 用于对文件进行加密的方法、解密验证的方法及相关产品 | |
CN117113437B (zh) | 一种文件篡改检测方法、装置、计算机设备及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40055481 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |