一种文件验证方法及装置与流程

文档序号:11156243
一种文件验证方法及装置与制造工艺

本发明涉及互联网技术领域,特别涉及一种文件验证方法及装置。



背景技术:

经过近几年的发展,文件的电子化程度越来越高,一些重要的电子文件的安全性就越来越重要。例如,涉及到货币发行、智能合约、股权权利登记和转让、身份认证、健康管理、司法仲裁、投票等程序的文件,一旦被篡改,造成的损失是非常严重的。

在现有技术中,为确保重要文件的安全性,通常情况下用户会将重要文件发送至公证机构进行保全,当需要使用这些重要文件时,会请求公证机构对这些重要文件进行验证,以确保这些重要文件未被篡改。公证机构进行验证时,将预先保全的文件与用户当前提供的文件进行比对,当比对结果一致时,确定文件未被篡改。

然而,由于传统的公证方案中,文件是保全在公证机构的数据库中,而公证机构中保全的文件也是由人进行管理的,因而,保全在公证机构中的文件仍然存在被篡改的可能,当保全的文件与进行验证的文件做同样的篡改时,仍然能够通过公证机构的验证,但是文件已经不是之前的文件。因此,传统的公证方案中,文件的安全性完全依赖于公证机构的信用度,仍然存在安全性不高的问题,因而,如何提出一种文件验证方法,来提高文件的安全性,是一亟待解决的技术问题。



技术实现要素:

本发明提供一种文件验证方法及装置,用以提高文件的安全性。

本发明提供一种文件验证方法,包括:

接收用户发送的待验证文件以及用于验证所述待验证文件的目标数据;

根据所述目标数据判断用于进行虚拟货币交易的目标区块链中是否存在与所述待验证文件对应的目标交易;

当所述目标区块链中存在与所述待验证文件对应的目标交易时,确定所述待验证文件验证通过;

输出验证通过的提示消息。

本发明的有益效果在于:通过验证待验证文件的目标文件判断用于进行虚拟货币交易的区块链中是否存在与待验证文件对应的目标交易,并在目标区块链中存在与待验证文件对应的目标交易时,确定待验证文件的验证通过。由于区块链中的数据不易被篡改,因而,通过区块链中的交易对文件进行验证,避免了待验证文件和保全的文件被同时篡改而导致误验证的可能,进而提高了文件的安全性。

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

接收用户发送的目标哈希函数;

根据所述目标哈希函数计算所述待验证文件的目标哈希值。

在一个实施例中,所述根据所述目标哈希函数计算所述待验证文件的目标哈希值,包括:

获取所述待验证文件的多种预设格式,其中,所述多种预设格式包括以下至少一种格式:

原始格式、可扩展标记语言格式和数字格式;

根据所述目标哈希函数对每种预设格式进行哈希计算以得到所有预设格式所对应的哈希值;

根据所述目标哈希函数对所有预设格式所对应的哈希值进行二次哈希计算以得到目标哈希值。

本实施例的有益效果在于:通过对待验证文件进行两次哈希计算,从而使目标哈希值的计算规则更加复杂化,增大了其他用户通过待验证文件得到目标哈希值的难度,进一步提高了文件的安全性。

在一个实施例中,当所述目标数据包括交易标识时,所述方法还包括:

判断所述目标区块链中是否存在与所述交易标识所对应的交易;

当存在与所述交易标识所对应的交易时,判断所述交易得到确认的次数是否达到预设次数;

当所述交易得到确认的次数达到预设次数时,获取所述交易中所记录的第一哈希值;

将所述第一哈希值与所述目标哈希值进行比对;

当比对结果一致时,确定所述目标区块链中存在与所述待验证文件对应的目标交易,且所述目标交易为记录所述第一哈希值的交易。

本实施例的有益效果在于:当目标区块链中存在与交易标识所对应的交易时,需要判断交易得到确认的次数是否达到预设次数。当交易得到一定次数的确认之后,除非设备计算速度大于全网速度,否则就无法对该交易中的第一哈希值进行编辑。避免了其他用户对第一哈希值进行修改。提高了文件的安全性。

在一个实施例中,当所述目标数据不包括交易标识时,所述方法还包括:

判断所述目标区块链中是否存在与所述目标哈希值一致的第二哈希值;

当存在与所述目标哈希值一致的第二哈希值时,判断记录所述第二哈希值的交易得到确认的次数是否达到预设次数;

当记录所述第二哈希值的交易得到确认的次数达到预设次数时,确定所述目标区块链中存在与所述待验证文件对应的目标交易,且所述目标交易为记录所述第二哈希值的交易。

本实施例的有益效果在于:在无法得到交易标识时,通过目标哈希值判断目标区块链中是否存在与待验证文件对应的目标交易,从而提供了一种在没有交易标识时的验证方案,降低了文件验证的条件。

本发明还提供一种文件验证装置,包括:

第一接收模块,用于接收用户发送的待验证文件以及用于验证所述待验证文件的目标数据;

第一判断模块,用于根据所述目标数据判断用于进行虚拟货币交易的目标区块链中是否存在与所述待验证文件对应的目标交易;

第一确定模块,用于当所述目标区块链中存在与所述待验证文件对应的目标交易时,确定所述待验证文件验证通过;

输出模块,用于输出验证通过的提示消息。

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

第二接收模块,用于接收用户发送的目标哈希函数;

计算模块,用于根据所述目标哈希函数计算所述待验证文件的目标哈希值。

在一个实施例中,所述计算模块,包括:

获取子模块,用于获取所述待验证文件的多种预设格式,其中,所述多种预设格式包括以下至少一种格式:

原始格式、可扩展标记语言格式和数字格式;

第一计算子模块,用于根据所述目标哈希函数对每种预设格式进行哈希计算以得到所有预设格式所对应的哈希值;

第二计算子模块,用于根据所述目标哈希函数对所有预设格式所对应的哈希值进行二次哈希计算以得到目标哈希值。

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

第二判断模块,用于当所述目标数据包括交易标识时,判断所述目标区块链中是否存在与所述交易标识所对应的交易;

第三判断模块,用于当存在与所述交易标识所对应的交易时,判断所述交易得到确认的次数是否达到预设次数;

获取模块,用于当所述交易得到确认的次数达到预设次数时,获取所述交易中所记录的第一哈希值;

比对模块,用于将所述第一哈希值与所述目标哈希值进行比对;

第二确定模块,用于当比对结果一致时,确定所述目标区块链中存在与所述待验证文件对应的目标交易,且所述目标交易为记录所述第一哈希值的交易。

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

第四判断模块,用于当所述目标数据不包括交易标识时,判断所述目标区块链中是否存在与所述目标哈希值一致的第二哈希值;

第五判断模块,用于当存在与所述目标哈希值一致的第二哈希值时,判断记录所述第二哈希值的交易得到确认的次数是否达到预设次数;

第三确定模块,用于当记录所述第二哈希值的交易得到确认的次数达到预设次数时,确定所述目标区块链中存在与所述待验证文件对应的目标交易,且所述目标交易为记录所述第二哈希值的交易。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明一实施例中文件验证方法的流程图;

图2为本发明一实施例中文件验证方法的流程图;

图3为本发明一实施例中文件验证方法的流程图;

图4为本发明一实施例中文件验证方法的流程图;

图5为本发明一实施例中文件验证方法的流程图;

图6为本发明一实施例中文件验证装置的框图;

图7为本发明一实施例中文件验证装置的框图;

图8为本发明一实施例中文件验证装置的框图;

图9为本发明一实施例中文件验证装置的框图;

图10为本发明一实施例中文件验证装置的框图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

区块链技术是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。该技术方案主要让参与系统中的任意多个节点,通过一串使用密码学方法相关联产生的数据块,每个数据块中包含了一定时间内的系统全部信息交流数据,并且生成数据指纹用于验证其信息的有效性和链接下一个数据库块。

区块链能实现全球数据信息的分布式记录(可以由系统参与者集体记录,而非由一个中心化的机构集中记录)与分布式存储(可以存储在所有参与记录数据的节点中,而非集中存储于中心化的机构节点中)。

区块链技术可以在信息不对称、不确定的环境下,建立满足经济活动赖以发生、发展的“信任”生态体系。区块链以数学算法(程序)作为背书,所有的规则都建立一个公开透明的数学算法(程序)之上,能够让所有不同政治文化背景的人群获得共识,解决价值转移和信用转移。

存储在进行虚拟货币交易的区块链中的数据不易丢失和篡改,本发明的技术方案就是利用区块链的这一特性所提出的。

图1为本发明一实施例中文件验证方法的流程图,如图1所示,本发明中文件验证方法可用于提供公证服务的机构所对应的服务器,该方法包括如下步骤S101-S104:

在步骤S101中,接收用户发送的待验证文件以及用于验证待验证文件的目标数据;

在步骤S102中,根据目标数据判断用于进行虚拟货币交易的目标区块链中是否存在与待验证文件对应的目标交易;

在步骤S103中,当目标区块链中存在与待验证文件对应的目标交易时,确定待验证文件验证通过;

在步骤S104中,输出验证通过的提示消息。

本实施例中,接收用户发送的待验证文件,以及用于验证待验证文件的目标数据;其中,该目标数据可以是对待验证文件进行保全时所在交易的交易标识。根据该目标数据判断用于进行虚拟货币交易的目标区块链中是否存在与待验证文件对应的目标交易;当目标区块链中存在与该待验证文件对应的目标交易时,确定该待验证文件验证通过;输出验证通过的提示消息。

本发明的有益效果在于:通过验证待验证文件的目标文件判断用于进行虚拟货币交易的区块链中是否存在与待验证文件对应的目标交易,并在目标区块链中存在与待验证文件对应的目标交易时,确定待验证文件的验证通过。由于区块链中的数据不易被篡改,因而,通过区块链中的交易对文件进行验证,避免了待验证文件和保全的文件被同时篡改而导致误验证的可能,进而提高了文件的安全性。

在一个实施例中,如图2所示,在上述步骤S102之前,方法还可被实施为如下步骤S201-S202:

在步骤S201中,接收用户发送的目标哈希函数;

在步骤S202中,根据目标哈希函数计算待验证文件的目标哈希值。

用户可以将用于验证的文件预先保全在用户进行虚拟货币交易的区块链中。另外,由于区块链并不是为数据存储设计,只能存储少量数据,例如,原始文件的哈希值,因此,用户可将待验证文件对应的哈希值存储在区块链的交易中,以实现对待验证文件的保全。因为区块链存储了所有已经确认的交易,而且因为哈希值是唯一的,所以就可以证明该哈希值对应的文件的存在。

需要说明的是,该待验证文件对应的哈希值可以是该待验证文件本身的哈希值。也可以是多种格式的该待验证文件的最终哈希值。

在计算多种格式的该待验证文件的最终哈希值时,预先获取该待验证文件的多种预设格式,根据预设的哈希函数对这些预设格式的待验证文件进行哈希计算,得到多种预设格式的待验证文件的哈希值,然后根据该预设的哈希函数对得到的多个哈希值进行二次哈希计算,得到该待验证文件的最终哈希值。

由于用户进行数据保全时保全的是文件的哈希值,因而,本实施例中,在判断目标区块链中是否存在与该待验证文件对应的目标交易之前,方法还包括,接收用户发送的目标哈希函数,根据该目标哈希函数计算该待验证文件的目标哈希值。本实施例中,计算待验证文件的目标哈希值,以便后续与区块链中文件保全时存储的哈希值进行比对,以实现对待验证文件的验证。

在一个实施例中,如图3所示,上述步骤S202可被实施为如下步骤S301-S303:

在步骤S301中,获取待验证文件的多种预设格式,其中,多种预设格式包括以下至少一种格式:

原始格式、可扩展标记语言格式和数字格式;

在步骤S302中,根据目标哈希函数对每种预设格式进行哈希计算以得到所有预设格式所对应的哈希值;

在步骤S303中,根据目标哈希函数对所有预设格式所对应的哈希值进行二次哈希计算以得到目标哈希值。

本实施例中,获取待验证文件的多种预设格式。其中,该待验证文件的预设格式与其进行数据保全时计算哈希值所用到的格式是一致的,从而保证哈希值的一致性。

根据用户发送的目标哈希函数分别对每种格式的文件进行哈希计算以得到所有预设格式所对应的哈希值。其中,该目标哈希函数为用户对该待验证文件进行保全时所使用的哈希函数。

根据用户发送的目标哈希函数对所有预设格式的文件所对应的哈希函数进行二次哈希计算,从而得到该待验证文件对应的目标哈希值。

由于本实施例中进行两次哈希计算,因而,即使其他用户得到该待验证文件,其如果不知道在计算目标哈希值时所使用的文件格式,也无法得到该目标哈希值,进一步提高了文件的安全性。

本实施例的有益效果在于:通过对待验证文件进行两次哈希计算,从而使目标哈希值的计算规则更加复杂化,增大了其他用户通过待验证文件得到目标哈希值的难度,进一步提高了文件的安全性。

在一个实施例中,当目标数据包括交易标识时,如图4所示,在上述步骤S103之前,方法还可被实施为如下步骤S401-S405:

在步骤S401中,判断目标区块链中是否存在与交易标识所对应的交易;

在步骤S402中,当存在与交易标识所对应的交易时,判断交易得到确认的次数是否达到预设次数;

在步骤S403中,当交易得到确认的次数达到预设次数时,获取交易中所记录的第一哈希值;

在步骤S404中,将第一哈希值与目标哈希值进行比对;

在步骤S405中,当比对结果一致时,确定目标区块链中存在与待验证文件对应的目标交易,且目标交易为记录第一哈希值的交易。

本实施例中,判断目标区块链中是否存在与交易标识所对应的交易。

区块链中的数据结构类似于堆栈结构。因而,用户在进行文件保全时,将文件对应的哈希值发送至进行加密货币交易的区块链时,相当于将进行保全的文件对应的哈希值置于栈顶。

由于堆栈中只能对栈顶的数据进行编辑,因而,随着加密货币交易的不断进行,栈顶位置被这些交易对应的交易数据所取代。并且,区块链不可更改的原理是一个交易被加入到一个区块中,需要10分钟得到交易的确认,之后的所有区块都会包含该交易,每增加一个区块意味着新增一次确认。因而,时间越久,获得的确认次数越多,交易越不易被篡改。因为想要进行修改,必须重新构造后面的区块。当最终创建的区块长度超过原主分支区块,成为新的主分支。也就是说,其他人想要对交易进行篡改,其设备必须具备比区块链全网的算力还要强大的算力,才可能对交易进行篡改,而目前并不存在这样的设备。因而,由于其他人无法对进行保全的文件对应的哈希值进行编辑。提高了文件的安全性。

因此,当存在与交易标识所对应的交易时,判断该交易得到确认的次数是否达到预设次数,当该交易得到确认的次数达到预设次数时,则进行保全的文件对应的哈希值是无法被篡改的。

故当该交易得到确认的次数达到预设次数时,获取该交易中所记录的第一哈希值,并将第一哈希值与目标哈希值进行比对。

当比对结果一致的时候,确定该目标区块链中存在与待验证文件对应的目标交易,该目标交易为记录该第一哈希值的交易。即该待验证文件在进行该目标交易之前就已经存在。

需要说明的是,本实施例适用于用户自己通过区块链对待验证文件进行保全的情况。在用户将待验证文件对应的哈希值保存在区块链中时,生成用于保全该待验证文件的交易及该交易对应的标识,这样用户可以得到该交易的标识。以便使公证机构能够通过用户发送的交易标识查询到相应的交易。

本实施例的有益效果在于:当目标区块链中存在与交易标识所对应的交易时,需要判断交易得到确认的次数是否达到预设次数。当交易得到一定次数的确认之后,除非设备计算速度大于全网速度,否则就无法对该交易中的第一哈希值进行编辑。避免了其他用户对第一哈希值进行修改。提高了文件的安全性。

在一个实施例中,当目标数据不包括交易标识时,如图5所示,在上述步骤S103之前,方法还可被实施为如下步骤S501-S503:

在步骤S501中,判断目标区块链中是否存在与目标哈希值一致的第二哈希值;

在步骤S502中,当存在与目标哈希值一致的第二哈希值时,判断记录第二哈希值的交易得到确认的次数是否达到预设次数;

在步骤S503中,当记录第二哈希值的交易得到确认的次数达到预设次数时,确定目标区块链中存在与待验证文件对应的目标交易,且目标交易为记录第二哈希值的交易。

本实施例中,判断目标区块链中是否存在与目标哈希值一致的第二哈希值;当存在与该目标哈希值一致的第二哈希值时,判断记录该第二哈希值的交易得到确认的次数是否达到预设次数。

当记录第二哈希值的交易得到确认的次数达到预设次数时,确定目标区块链中存在与待验证文件对应的目标交易,且目标交易为记录第二哈希值的交易。

需要说明的是,本实施例适用于用户委托第三方保全机构通过区块链对待验证文件进行保全的情况,而第三方保全机构在通过去区块链对待验证文件进行保全之后,并不会向用户提供交易标识。因而,当用户需要对待验证文件进行验证时,只能提供进行保全时所使用的哈希函数和所使用的文件格式。因而,在无法得到交易标识的时候,只能通过用户提供的哈希函数和文件格式来计算待验证文件对应的目标哈希值,并查询区块链中是否存在与该目标哈希值一致的哈希值。

本实施例的有益效果在于:在无法得到交易标识时,通过目标哈希值判断目标区块链中是否存在与待验证文件对应的目标交易,从而提供了一种在没有交易标识时的验证方案,降低了文件验证的条件。

图6为本发明一实施例中文件验证装置的框图,如图6所示,本发明中文件验证装置可用于提供公证服务的机构所对应的服务器,该装置包括如下模块:

第一接收模块61,用于接收用户发送的待验证文件以及用于验证待验证文件的目标数据;

第一判断模块62,用于根据目标数据判断用于进行虚拟货币交易的目标区块链中是否存在与待验证文件对应的目标交易;

第一确定模块63,用于当目标区块链中存在与待验证文件对应的目标交易时,确定待验证文件验证通过;

输出模块64,用于输出验证通过的提示消息。

在一个实施例中,如图7所示,装置还包括:

第二接收模块71,用于接收用户发送的目标哈希函数;

计算模块72,用于根据目标哈希函数计算待验证文件的目标哈希值。

在一个实施例中,如图8所示,计算模块72,包括:

获取子模块81,用于获取待验证文件的多种预设格式,其中,多种预设格式包括以下至少一种格式:

原始格式、可扩展标记语言格式和数字格式;

第一计算子模块82,用于根据目标哈希函数对每种预设格式进行哈希计算以得到所有预设格式所对应的哈希值;

第二计算子模块83,用于根据目标哈希函数对所有预设格式所对应的哈希值进行二次哈希计算以得到目标哈希值。

在一个实施例中,如图9所示,装置还包括:

第二判断模块91,用于当目标数据包括交易标识时,判断目标区块链中是否存在与交易标识所对应的交易;

第三判断模块92,用于当存在与交易标识所对应的交易时,判断交易得到确认的次数是否达到预设次数;

获取模块93,用于当交易得到确认的次数达到预设次数时,获取交易中所记录的第一哈希值;

比对模块94,用于将第一哈希值与目标哈希值进行比对;

第二确定模块95,用于当比对结果一致时,确定目标区块链中存在与待验证文件对应的目标交易,且目标交易为记录第一哈希值的交易。

在一个实施例中,如图10所示,装置还包括:

第四判断模块101,用于当目标数据不包括交易标识时,判断目标区块链中是否存在与目标哈希值一致的第二哈希值;

第五判断模块102,用于当存在与目标哈希值一致的第二哈希值时,判断记录第二哈希值的交易得到确认的次数是否达到预设次数;

第三确定模块103,用于当记录第二哈希值的交易得到确认的次数达到预设次数时,确定目标区块链中存在与待验证文件对应的目标交易,且目标交易为记录第二哈希值的交易。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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