本发明涉及管理服务器、文档文件管理系统、文档文件管理方法及文档文件管理程序。
背景技术:
近年来,代替纸质文档的易于添加/修改和存储内容的电子文档已经被用于各种情况下。特别是便携式文档格式(pdf)文件,由于受用户操作的信息终端设备的使用环境影响较小,并且可以在屏幕上打印或显示的布局被破坏的风险较低,因此被广泛使用。这种电子文档存在的问题是,如果存在多个几乎相同的电子文档,而只有部分修改,则一旦进行了修改就很难识别。已经公开了解决这种问题的技术,其中将文档文件的正式版本和文档文件的临时版本逐段进行比较,并且通过全文比较提取它们之间的差异(参见专利文献1)。
引用列表
专利文献
专利文献1:日本专利申请公开第2013-045437号
技术实现要素:
技术问题
不幸的是,上述专利文献1中描述的技术受到以下问题的困扰。具体而言,由于需要在整个目标部分之间进行全文比较,因此所需的处理时间较长。此外,用户需要自己知道文档文件是正式版本还是修订版本并对其进行管理,这使得文档文件的管理比较繁琐。
本发明是鉴于上述情况而作出的,本发明的目的在于提供管理服务器、文档文件管理系统、文档文件管理方法及文档文件管理程序,由此可以在不给用户带来负担的情况下,确定文档文件是否被篡改,文档文件是否为最新版本,以及作为注册目标的文档文件是否可以注册。
技术方案
为解决上述问题,本发明的特征在于:将原始文档的更新内容按更新顺序作为增量更新添加到原始文档中;对于原始文档和添加更新内容的文档中的每一个,从信息终端设备接收文档文件,该文档文件的哈希值和标识该文档文件的文档文件id在区块链网络中注册;计算接收的文档文件的哈希值;获取接收的文档文件中包括的文档文件id;从区块链网络中获取存储获取的文档文件id的多个区块中最新区块中存储的哈希值;以及确定计算的哈希值与获取的哈希值是否匹配,以确定文档文件是否被篡改。
本发明的特征还在于:从文档文件中获取标识作为检查目标的文档文件的文档文件id;计算文档文件的哈希值;以及将存储文档文件id的多个区块中的最新区块中存储的文档文件的信息与存储文档文件id的哈希值和文档文件的哈希值的区块中存储的文档文件的信息进行比较,以确定作为检查目标的文档文件是否是最新的。
本发明的特征还在于:从文档文件中获取标识作为注册目标的文档文件的文档文件id;确定文档文件的文件大小是否大于存储文档文件id的多个区块中的最新区块中存储的文件大小;计算从文档文件的开始到最新区块中存储的文件大小的哈希值;以及当确定文档文件的文件大小大于最新区块中存储的文件大小时,并且当最新区块中存储的哈希值与计算的文档文件的哈希值匹配时,确定文档文件能够被注册。
发明的有益效果
如上所述配置的本发明提供如下效果,在不给用户带来负担的情况下,能够确定文档文件是否被篡改,文档文件是否是最新版本,以及作为注册目标的文档文件是否可以被注册。
附图说明
图1是示出根据第一实施例的文档文件管理系统10的配置的框图。
图2是示出由管理服务器100和信息终端设备200执行的文档文件注册处理的过程的流程图。
图3是示出由管理服务器100和信息终端设备200执行的文档文件篡改检查处理的过程的流程图。
图4是示出由管理服务器100和信息终端设备200执行的文档文件版本检查处理的过程的流程图。
图5是示出由管理服务器100执行的版本确定处理的过程的流程图。
图6是示出作为检查目标的文档文件的哈希值和区块链网络的区块中存储的文档文件的哈希值的图像的示例的说明图。
图7是示出由管理服务器100执行的版本确定处理的过程的流程图。
图8是示出由管理服务器100和信息终端设备200执行的文档文件的最新版本检查处理的过程的流程图。
图9是示出由管理服务器100执行的最新版本确定处理的过程的流程图。
图10是示出根据第二实施例的文档文件管理系统20的配置的框图。
图11是示出由管理服务器400和信息终端设备200执行的文档文件注册可行性确定处理的过程的流程图。
图12是示出由管理服务器400执行的文档文件注册可行性确定处理的过程的流程图。
具体实施方式
下面将参考附图描述本发明的实施例。注意,以下描述是针对示例性实施例给出的,并且本发明不限于这样的实施例。
第一实施例
图1是示出根据第一实施例的文档文件管理系统10的配置的框图。文档文件管理系统10包括管理服务器100、信息终端设备200-1至200-n(以下称为信息终端设备200)和区块链网络300。如图1所示,管理服务器100、信息终端设备200和区块链网络300经由网络n彼此可通信地连接。网络n是任何通信网络,诸如因特网、内联网、局域网(lan)、虚拟专用网络(vpn)或移动通信网络以及这些的组合,并且部分或全部网络n可以是有线或无线网络。
管理服务器100是将从信息终端设备200接收的文档文件的信息注册在区块链网络300中的服务器,并且通过使用区块链网络300,确定文档文件是否被篡改,文档文件是否是最新版本,作为注册目标的文档文件是否可以被注册等。管理服务器100包括发送/接收单元101、id获取单元102、哈希值计算单元103、区块链注册单元104、哈希值获取单元105、篡改确定单元106和版本确定单元107。
发送/接收单元101接收从信息终端设备200发送的文档文件和注册请求。发送/接收单元101将接收的文档文件的信息发送到区块链网络300。发送/接收单元101接收从信息终端设备200发送的文档文件和各种检查请求,并且将检查结果发送到信息终端设备200。
当文档文件id存储在与文档注册请求一起接收的文档文件中时,id获取单元102获取文档文件id。当文档文件id未存储在文档文件中时,id获取单元102生成文档文件id并将生成的文档文件id存储在文档文件中。文档文件id是用于唯一标识文档文件的信息,并且可以是可以唯一标识文档文件的任何信息,诸如文档名称。
哈希值计算单元103计算文档文件的哈希值。哈希值计算单元103计算从文档文件的开始到文件大小的哈希值。这里文档文件以pdf文件为例,其为单个文档文件,其中在编辑时对最初创建的原始文档进行更新的内容按更新顺序作为增量更新被添加。注意,文档文件可以是pdf文件以外的文件,只要可以将更新的内容添加到文档文件中即可。在本实施例中,将主要描述文档文件是pdf文件的情况。
区块链注册单元104将已发出注册请求的文档文件(包括文档文件id的文档文件)的文档文件id、哈希值、版本信息、文件大小等发送到区块链网络300,并且将文档文件id、哈希值、版本信息、文件大小、注册日期和时间等存储在区块链网络300中的区块中。
注意,当区块存储在区块链网络300中时,自动记录注册日期和时间。在区块链网络300中,存储已发出注册请求的文档文件的文档文件id、哈希值、版本信息、文件大小、注册日期和时间等的多个区块按注册顺序被存储。
哈希值获取单元105获取文档文件中存储的文档文件id,并且将获取的文档文件id发送至区块链网络300,以从区块链网络300中的区块中利用匹配的文档文件id来获取哈希值。除了哈希值之外,哈希值获取单元105还获取区块中存储的文件大小、版本信息、注册日期和时间等。当存储相同文档文件id的多个区块被存储时,哈希值获取单元105获取相应区块的多个哈希值、文件大小、多条版本信息、注册日期和时间等。
篡改确定单元106基于将从文档文件计算的哈希值与由哈希值获取单元105获取的哈希值进行比较的结果来确定是否进行了篡改。当从文档文件计算的哈希值与由哈希值获取单元105获取的哈希值匹配时,篡改确定单元106确定不存在篡改,当哈希值不匹配时,确定进行了篡改。
基于存储在区块链网络300的区块中的单个文档文件的版本之间不同的哈希值、文件大小和版本信息,版本确定单元107确定作为检查目标的文档文件的版本信息,是否进行了更新但未在区块链网络300中注册,作为检查目标的文档文件是否是最新版本等。
信息终端设备200是由希望管理文档文件的篡改或版本的用户操作的个人计算机、平板终端、智能电话等。信息终端设备200向管理服务器100发送各种请求,接收并显示对请求的响应。
区块链网络300是使用所谓的分布式账本技术的系统,并且在本实施例中,具有存储按照注册的顺序发送到区块链网络300的文档文件的文档文件id、文档文件的哈希值、文件大小和版本信息等的多个区块。为了从每个区块获取区块中存储的文档文件的哈希值、文档文件的文件大小、版本信息、注册日期和时间等,将文档文件id发送到区块链网络300。
将描述由如上所述配置的文档文件管理系统10执行的文档文件注册处理。图2是示出由管理服务器100和信息终端设备200执行的文档文件注册处理的过程的流程图。
信息终端设备200接受文档文件的注册(步骤s201)。信息终端设备200向管理服务器100发送文档文件和文档注册请求(步骤s202)。
在管理服务器100中,发送/接收单元101接收文档文件和文档注册请求(步骤s203)。id获取单元102确定文档文件id是否存储在文档文件中(步骤s204)。当确定文档文件id存储在文档文件中时(步骤s204:是),id获取单元102从文档文件获取文档文件id(步骤s205)。
当确定文档文件id没有存储在文档文件中时(步骤s204:否),id获取单元102生成文档文件id(步骤s206)。id获取单元102将文档文件id存储在文档文件中(步骤s207)。哈希值计算单元103计算文档文件的哈希值(步骤s208)。发送/接收单元101将文档文件的文档文件id和哈希值发送到区块链网络300(步骤s209)。因此,文档文件id和哈希值存储在区块链网络300的区块中。除了文档文件id和哈希值之外,文件大小、版本信息等可以被发送到区块链网络300以存储在区块链网络300的区块中。发送/接收单元101确定文档文件id是否由id获取单元102生成(步骤s210)。当确定没有生成文档文件id时(步骤s210:否),处理结束。在确定生成文档文件id时(步骤s210:是),发送/接收单元101将文档文件发送到信息终端设备200(步骤s211)。
信息终端设备200接收文档文件(步骤s212)。
信息终端设备200存储文档文件(步骤s213)。更具体地,信息终端设备200用从管理服务器100接收的文档文件替换发送到管理服务器100的文档文件。因此,即使存储在信息终端设备200中的文档文件最初没有文档文件id,也可以使用文档文件id与存储在区块链网络300中的区块中的信息相关联。
如上所述,利用文档文件中包括的文档文件id以及存储在区块链网络300中的区块中的与文档文件id相关联的文档文件的信息,可以从文档文件本身获取用作搜索区块链网络300的密钥的文档文件id。因此,不需要提供将文档文件和文档文件id关联的机制(诸如数据库),并且可以仅使用文档文件参考存储在区块链网络300中的文档文件的信息。
此外,通过将区块中存储的版本信息作为文档文件的信息,当文档文件的版本不止一个时,可以存储文档文件的每个版本的信息,并且可以将文档文件的每个版本的哈希值保存在区块链网络300的区块中。
接下来,将描述由文档文件管理系统10执行的文档文件篡改检查处理。图3是示出由管理服务器100和信息终端设备200执行的文档文件篡改检查处理的过程的流程图。
信息终端设备200接收作为检查目标的文档文件(步骤s301)。例如,可以接收从文档文件列表中选择的文档文件。信息终端设备200向管理服务器100发送文档文件和篡改检查请求(步骤s302)。
管理服务器100的发送/接收单元101从信息终端设备200接收文档文件和篡改检查请求(步骤s303)。哈希值计算单元103计算接收的文档文件的哈希值(步骤s304)。id获取单元102从文档文件获取文档文件id(步骤s305)。哈希值获取单元105从区块链网络300获取与文档文件id相关联的哈希值(步骤s306)。当区块链网络300中存储不同版本的文档文件时,可以执行篡改检查处理,以通过与在多个区块中的最新注册在区块链网络300中的区块(以下称为最新区块)中包括的哈希值的比较,来检查是否进行了篡改,其中所述多个区块存储从文档文件获取的文档文件id。
篡改确定单元106基于由哈希值计算单元103计算的文档文件的哈希值与从区块链网络300获取的哈希值之间的比较结果,确定文档文件是否被篡改(步骤s307)。
更具体地,当作为检查目标的文档文件的哈希值与存储在区块链网络300中的哈希值匹配时,篡改确定单元106确定作为检查目标的文档文件不是篡改哈希值存储在区块链网络300中的文档文件的结果。当作为检查目标的文档文件的哈希值与存储在区块链网络300中的文档文件的哈希值不匹配时,篡改确定单元106确定作为检查目标的文档文件是篡改哈希值存储在区块链网络300中的文档文件的结果。
发送/接收单元101将篡改确定单元106的篡改相关确定结果发送到信息终端设备200(步骤s308)。
信息终端设备200从管理服务器100接收篡改相关确定结果(步骤s309)。信息终端设备200在显示部上显示篡改确定结果(步骤s310)。
如上所述,通过将用户获取的文档文件发送到管理服务器100,可以确定文档文件的内容是否被篡改。此外,可以使用存储在区块链网络300的区块中的文档文件的信息来确定文档文件是否被篡改,从而可以在不使用电子签名系统等的情况下确定是否已经进行了篡改。虽然上面已经描述了可以将更新内容作为增量更新添加,但是作为篡改检查目标的文档文件可以是没有添加更新内容的文档文件。
在上述处理中,当确定作为检查目标的文档文件没有被篡改时,可以获取区块链网络300的区块中自动记录的注册日期和时间以证明在注册日期和时间已经存在该文档文件。
接下来,将描述由文档文件管理系统10执行的文档文件版本检查处理。图4是示出由管理服务器100和信息终端设备200执行的文档文件版本检查处理的过程的流程图。
信息终端设备200接收作为检查目标的文档文件(步骤s401)。例如,可以从要接收的文档文件列表中选择文档文件,并且可以选择用于版本检查的菜单。信息终端设备200向管理服务器100发送文档文件和版本检查请求(步骤s402)。
管理服务器100的发送/接收单元101从信息终端设备200接收文档文件和版本检查请求(步骤s403)。id获取单元102从文档文件获取文档文件id(步骤s404)。哈希值获取单元105从区块链网络300获取与文档文件id相关联的哈希值和文件大小以及版本信息(步骤s405)。在版本检查处理中,因为不同版本的多个文档文件的信息预期存储在区块链网络300中,所以可以获取与文档文件id对应的多个哈希值、文件大小和多条版本信息。版本确定单元107执行版本确定处理(步骤s406)。稍后将参考图5和图7描述细节。发送/接收单元101将文档文件的版本相关确定结果发送到信息终端设备200(步骤s407)。
信息终端设备200从管理服务器100接收文档文件的版本相关确定结果(步骤s408)。信息终端设备200在显示部上显示文档文件的版本相关确定结果(步骤s409)。
接下来,将描述由管理服务器100执行的版本确定处理。图5是示出由管理服务器100执行的版本确定处理的过程的流程图。
版本确定单元107获取作为检查目标的文档文件的文件大小(步骤s501)。版本确定单元107确定与从区块链网络300获取的文档文件id对应的数据是否包括与文档文件的文件大小匹配的数据(步骤s502)。图6是示出作为检查目标的文档文件的哈希值和区块链网络的区块中存储的文档文件的哈希值的图像的示例的说明图。在图6所示的示例中,从存储在区块链网络300中的多个区块获取作为三个版本的数据的哈希值、文件大小和多条版本信息,并且确定该数据是否包括具有匹配大小的数据。在图6所示的情况下,没有匹配数据。
在确定存在与文档文件的文件大小匹配的数据时(步骤s502:是),版本确定单元107确定哈希值是否匹配(步骤s503)。在确定哈希值匹配时(步骤s503:是),版本确定单元107确定作为检查目标的文档文件的版本信息并且没有进行未注册的更新(步骤s504)。可以确定作为检查目标的文档文件的版本为具有匹配的文件大小和匹配的哈希值的数据的版本信息。此外,可以确定在与版本信息对应的文档文件中没有进一步添加数据,即没有添加未在区块链网络300中注册的更新内容,因为存储在区块链网络300中的数据的文件大小匹配。当确定哈希值不匹配时(步骤s503:否),处理进行到步骤s505。
在确定不存在与文档文件的文件大小匹配的数据时(步骤s502:否),即在确定更新内容已被添加到区块链网络300中但未注册时,版本确定单元107选择文件大小小于文档文件的文件大小但大于其他数据的文件大小的数据(步骤s505)。在图6所示的示例中,选择具有版本信息“版本2”的数据。
哈希值计算单元103计算从文档文件的开始到文件大小的数据的哈希值(步骤s506)。在图6所示的示例中,计算从作为检查目标的文档文件的开始到作为“版本2”的文件大小的“大小2”(即,到原始文档+更新1)的数据的哈希值。版本确定单元107确定所选数据的哈希值是否与计算的哈希值匹配(步骤s507)。
当确定哈希值匹配时(步骤s507:是),版本确定单元107确定作为检查目标的文档文件的版本信息以及已经进行了未注册的更新(步骤s508)。可以确定作为检查目标的文档文件的版本为具有匹配的哈希值的数据的版本信息。此外,由于区块链网络300中存储的数据的文件大小不匹配,因此可以确定存在添加到区块链网络300但未注册的更新内容。
在确定哈希值不匹配时(步骤s507:否),版本确定单元107确定是否存在与从区块链网络300获取的文档文件id对应的数据(步骤s509)。当确定存在这样的数据时(步骤s509:是),处理返回到步骤s505并且执行接下来的处理。当确定不存在这样的数据时(步骤s509:否),处理结束。
通过将用户获取的文档文件发送到管理服务器100,可以检查作为检查目标的文档文件的版本信息以及是否对作为检查目标的文档文件进行了未注册的更新。此外,由于文档文件的版本的信息存储在区块链网络300的区块中,因此可以在不使用电子签名系统等的情况下管理版本。
由于当文档文件的信息存储在区块链网络300的区块中时,注册日期和时间自动记录在区块链网络300的区块中,因此也可以证明每个版本的文档文件存在的日期和时间。
将描述由管理服务器100执行的另一版本确定处理。在该处理中,附加地执行对作为检查目标的文档文件是否是最新版本的确定。图7是示出由管理服务器100执行的版本确定处理的过程的流程图。
版本确定单元107获取作为检查目标的文档文件的文件大小(步骤s701)。版本确定单元107确定作为检查目标的文档文件的文件大小是否与从区块链网络300获取的在存储文档文件id的多个区块中的最新区块中存储的文档文件的文件大小匹配(步骤s702)。
在确定作为检查目标的文档文件的文件大小与存储在最新区块中的文档文件的文件大小匹配时(步骤s702:是),版本确定单元107确定作为检查目标的文档文件的哈希值是否与存储在最新区块中的哈希值匹配(步骤s703)。当确定哈希值匹配时(步骤s703:是),版本确定单元107确定作为检查目标的文档文件是最新版本并且未被篡改(步骤s704)。版本确定单元107获取存储在最新区块中的版本信息作为文档文件(作为检查目标)的版本(步骤s705)。版本确定单元107确定没有对作为检查目标的文档文件进行未注册的更新(步骤s706)。在确定作为检查目标的文档文件的哈希值与存储在最新区块中的哈希值不匹配时(步骤s703:否),版本确定单元107确定作为检查目标的文档文件被篡改(步骤s707)。
在确定作为检查目标的文档文件的文件大小与存储在最新区块中的文档文件的文件大小不匹配时(步骤s702:否),版本确定单元107确定作为检查目标的文档文件不是最新版本(步骤s708)。版本确定单元107确定是否存在下一个新区块(步骤s709)。更具体地,版本确定单元107确定是否获取要存储在当前获取的区块的下一个新区块中的哈希值、文件大小、版本信息、注册日期和时间等。
在确定存在下一个新区块时(步骤s709:是),版本确定单元107获取存储在下一个新区块中的文件大小(步骤s710)。版本确定单元107确定作为检查目标的文档文件的文件大小是否与存储在下一个新区块中的文件大小匹配(步骤s711)。在确定作为检查目标的文档文件的文件大小与存储在下一个新区块中的文件大小不匹配时(步骤s711:否),哈希值计算单元103计算自文档文件的开始起到存储在下一个新区块中的文件大小的哈希值(步骤s712)。接下来,版本确定单元107确定下一个新区块中存储的哈希值是否与计算的哈希值匹配(步骤s713)。
接下来,当确定下一个新区块中包括的哈希值与计算的哈希值不匹配时(步骤s713:否),处理返回到步骤s709。
接下来,当确定下一个新区块中存储的哈希值与计算的哈希值匹配时(步骤s713:是),版本确定单元107获取下一个新区块中存储的版本信息作为文档文件(作为检查目标)的版本(步骤s714)。版本确定单元107确定对作为检查目标的文档文件进行了未注册的更新(步骤s715)。
在确定作为检查目标的文档文件的文件大小与存储在下一个新区块中的文件大小匹配时(步骤s711:是),版本确定单元107确定作为检查目标的文档文件的哈希值是否与存储在下一个新区块中的哈希值匹配(步骤s716)。在确定哈希值匹配时(步骤s716:是),版本确定单元107获取存储在下一个新区块中的版本信息作为文档文件(作为检查目标)的版本(步骤s717)。版本确定单元107确定没有对作为检查目标的文档文件进行未注册的更新(步骤s718)。在确定哈希值不匹配时(步骤s716:否),版本确定单元107确定作为检查目标的文档文件被篡改(步骤s719)。
在确定不存在下一个新区块时(步骤s709:否),版本确定单元107确定不存在与作为检查目标的文档文件匹配的版本信息(步骤s720)。
因此,通过从存储在区块链网络300中的最新区块开始依次检查作为检查目标的文档文件的文件大小和哈希值,可以确定作为检查目标的文档文件的版本信息,是否进行了未注册的更新,以及作为检查目标的文档文件是否为最新版本。
接下来,将描述检查作为检查目标的文档文件是否是最新版本的处理。图8是示出由管理服务器100和信息终端设备200执行的文档文件的最新版本检查处理的过程的流程图。
信息终端设备200接收作为检查目标的文档文件(步骤s801)。例如,可以通过从文档文件列表中选择来接收文档文件,并且可以选择用于最新版本检查的菜单。信息终端设备200向管理服务器100发送文档文件和最新版本检查请求(步骤s802)。
管理服务器100的发送/接收单元101从信息终端设备200接收文档文件和最新版本检查请求(步骤s803)。id获取单元102从文档文件获取文档文件id(步骤s804)。哈希值获取单元105从存储在区块链网络300中的存储文档文件的文档文件id的最新区块获取版本信息、文件大小以及注册日期和时间(步骤s805)。版本确定单元107执行最新版本确定处理(步骤s806)。稍后将参考图9描述细节。发送/接收单元101将文档文件是否是最新版本的确定结果发送到信息终端设备200(步骤s807)。
信息终端设备200从管理服务器100接收文档文件是否是最新版本的确定结果(步骤s808)。信息终端设备200在显示部上显示确定结果(步骤s809)。
接下来,将描述由管理服务器100执行的最新版本确定处理。图9是示出由管理服务器100执行的最新版本确定处理的过程的流程图。
哈希值计算单元103计算作为检查目标的文档文件的哈希值(步骤s901)。哈希值获取单元105从区块链网络300获取哈希值与作为检查目标的文档文件的文档文件id匹配的区块(步骤s902)。代替作为检查目标的文档文件的哈希值,可以使用作为检查目标的文档文件的文件大小。因此,可以从区块链网络300获取具有与作为检查目标的文档文件的文档文件id和文件大小匹配的文档文件id和文件大小区块。版本确定单元107确定是否已经成功获取具有与作为检查目标的文档文件的文档文件id和哈希值匹配的文档文件id和哈希值的区块(步骤s903)。
在确定已经成功获取具有与作为检查目标的文档文件的文档文件id和哈希值匹配的文档文件id和哈希值的区块时(步骤s903:是),哈希值获取单元105获取存储在获取的区块中的版本信息、文件大小以及注册日期和时间(步骤s904)。
版本确定单元107确定最新区块中存储的版本信息是否与获取的区块中存储的版本信息匹配(步骤s905)。当确定最新区块中存储的版本信息与获取的区块中存储的版本信息匹配时(步骤s905:是),版本确定单元107确定最新区块中存储的文件大小与获取的区块中存储的文件大小是否匹配(步骤s906)。当确定最新区块中存储的文件大小与获取的区块中存储的文件大小匹配时(步骤s906:是),版本确定单元107确定最新区块中存储的注册日期和时间与获取的区块中存储的注册日期和时间是否匹配(步骤s907)。在确定最新区块中存储的注册日期和时间与获取的区块中存储的注册日期和时间匹配时(步骤s907:是),版本确定单元107确定作为检查目标的文档文件是最新版本(步骤s908)。
当确定最新区块中存储的版本信息与获取的区块中存储的版本信息不匹配时(步骤s905:否),确定最新区块中存储的文件大小与获取的区块中存储的文件大小不匹配时(步骤s906:否),或者确定最新区块中存储的注册日期和时间与获取的区块中存储的注册日期和时间不匹配时(步骤s907:否),确定作为检查目标的文档文件不是最新版本(步骤s909)。
当确定无法获取具有与作为检查目标的文档文件的文档文件id和哈希值匹配的文档文件id和哈希值的区块时,即当确定作为检查目标的文档文件的信息未在区块链网络300中注册时(步骤s903:否),确定作为检查目标的文档文件不是最新版本(步骤s910)。
在上述处理中,当最新区块中存储的版本信息与获取的区块中存储的版本信息是否匹配(步骤s905)的确定结果、最新区块中存储的文件大小与获取的区块中存储的文件大小是否匹配(s906)的确定结果以及最新区块中存储的注册日期和时间与获取的区块中存储的注册日期和时间是否匹配(s907)的确定结果都为正时,确定作为检查目标的文档文件是最新版本。替代地,当这些确定中的任何一个或其中任何两个的组合为正时,可以确定作为检查目标的文档文件是最新版本。
以这种方式,通过将用户获取的文档文件简单地发送到管理服务器100,可以确定该文档文件是否是区块链网络300的区块中存储的最新版本。此外,作为检查目标的文档文件的版本信息存储在区块链网络300的区块中,从而可以通过简单的机制确定作为检查目标的文档文件是否为最新版本,无需建立复杂的版本管理机制。
第二实施例
接下来,将描述当文档文件在区块链网络300中注册时确定作为注册目标的文档文件(更具体地,文档文件的信息)是否可以被注册的处理。图10是示出根据第二实施例的文档文件管理系统20的配置的框图。文档文件管理系统20包括管理服务器400、信息终端设备200和区块链网络300,并且管理服务器400、信息终端设备200和区块链网络300经由通信网络n彼此可通信地连接。
管理服务器400是确定从信息终端设备200接收的文档文件的信息是否可以在区块链网络300中注册的服务器。管理服务器400包括发送/接收单元101、id获取单元102、哈希值计算单元103、区块链注册单元104、哈希值获取单元105、篡改确定单元106、版本确定单元107、文件大小确定单元408和注册可行性确定单元409。在本实施例中,与第一实施例中相同标号的各单元具有与第一实施例相同的功能和配置,因此,针对此类单元,可以参考以上描述,下面将主要介绍与第一实施例的不同之处。
文件大小确定单元408确定作为注册目标的文档文件的文件大小是否大于由哈希值获取单元105获取的最新区块中存储的文件大小。
注册可行性确定单元409基于作为注册目标的文档文件的文件大小是否大于最新区块中存储的文件大小的确定结果、作为注册目标的文档文件的文件大小与最新区块中存储的文件大小是否匹配的确定结果以及作为注册目标的文档文件的哈希值与最新区块中存储的哈希值是否匹配的确定结果,来确定作为注册目标的文档文件是否可以被注册。
图11是示出由管理服务器400和信息终端设备200执行的文档文件注册可行性确定处理的过程的流程图。
信息终端设备200接受文档文件的注册(步骤s1101)。信息终端设备200向管理服务器400发送文档文件和文档注册请求(步骤s1102)。
在管理服务器400中,发送/接收单元101接收文档文件和文档注册请求(步骤s1103)。id获取单元102确定文档文件id是否存储在文档文件中(步骤s1104)。当确定文档文件id没有存储在文档文件中时(步骤s1104:否),id获取单元102生成文档文件id(步骤s1105)。id获取单元102将文档文件id存储在文档文件中(步骤s1106)。
当确定文档文件id存储在文档文件中时(步骤s1104:是),id获取单元102从文档文件获取文档文件id(步骤s1107)。接下来,执行文档文件注册可行性确定处理(步骤s1108)。稍后将参考图12描述文档文件注册可行性确定处理的细节。基于文档文件注册可行性确定处理,确定是否可以注册文档文件(步骤s1109)。
当确定可以注册文档文件时(步骤s1109:是),处理进行到步骤s1111。当确定不能注册文档文件时(步骤s1109:否),发送/接收单元101向信息终端设备200发送表示不能注册文档文件的消息(步骤s1110)。
哈希值计算单元103计算文档文件的哈希值(步骤s1111)。发送/接收单元101将文档文件的文档文件id和哈希值发送到区块链网络300(步骤s1112)。因此,可以注册的文档文件的文档文件id和哈希值存储在区块链网络300的区块中。除了文档文件id和哈希值之外,文件大小、版本信息等可以被发送到区块链网络300以存储在区块链网络300的区块中。发送/接收单元101确定文档文件id是否已经由id获取单元102生成(步骤s1113)。当确定没有生成文档文件id时(步骤s1113:否),处理结束。在确定已经生成文档文件id时(步骤s1113:是),发送/接收单元101将存储文档文件id的文档文件发送到信息终端设备200(步骤s1114)。
信息终端设备200接收存储文档文件id的文档文件(步骤s1115)。信息终端设备200存储已存储文档文件id的文档文件(步骤s1116)。更具体地,信息终端设备200用从管理服务器400接收的文档文件替换发送到管理服务器400的文档文件。因此,文档文件id未被原始保存的文档文件可以替换为存储文档文件id的文档文件,由此可以使用文档文件id将区块链网络300的区块中存储的文档文件和信息终端设备200中存储的文档文件的信息相互关联。
接下来,将描述由管理服务器400执行的文档文件注册可行性确定处理。图12是示出由管理服务器400执行的文档文件注册可行性确定处理的过程的流程图。
哈希值获取单元105从区块链网络300获取具有与作为注册目标的文档文件的文档文件id匹配的文档文件id的最新区块(步骤s1201)。哈希值获取单元105获取最新区块中存储的文件大小(步骤s1202)。
版本确定单元107确定最新区块中存储的文件大小与作为注册目标的文档文件的文件大小是否匹配(步骤s1203)。当确定最新区块中存储的文件大小与作为注册目标的文档文件的文件大小不匹配时(步骤s1203:否),文件大小确定单元408确定作为注册目标的文档文件的文件大小是否大于最新区块中存储的文件大小(步骤s1204)。
当确定作为注册目标的文档文件的文件大小大于最新区块中存储的文件大小时(步骤s1204:是),哈希值计算单元103计算从作为注册目标的文档文件的开始到最新区块中存储的文件大小的哈希值(步骤s1205)。版本确定单元107确定计算的哈希值与最新区块中存储的哈希值是否匹配(步骤s1206)。当确定计算的哈希值与最新区块中存储的哈希值匹配时(步骤s1206:是),注册可行性确定单元409确定可以注册作为注册目标的文档文件(步骤s1207)。当确定计算的哈希值与最新区块中存储的哈希值不匹配时(步骤s1206:否),注册可行性确定单元409确定作为注册目标的文档文件被篡改,从而作为注册目标的文档文件不能被注册(步骤s1208)。
当确定作为注册目标的文档文件的文件大小不大于最新区块中存储的文件大小时(步骤s1204:否),注册可行性确定单元409确定作为注册目标的文档文件不能被注册(步骤s1209)。
当确定最新区块中存储的文件大小与作为注册目标的文档文件的文件大小匹配时(步骤s1203:是),哈希值计算单元103计算作为注册目标的文档文件的哈希值(步骤s1210)。版本确定单元107确定计算的哈希值与最新区块中存储的哈希值是否匹配(步骤s1211)。当确定计算的哈希值与最新区块中存储的哈希值匹配时(步骤s1211:是),注册可行性确定单元409确定作为注册目标的文档文件已经被注册,因此不能再被注册(步骤s1212)。当确定计算的哈希值与最新区块中存储的哈希值不匹配时(步骤s1211:否),注册可行性确定单元409确定作为注册目标的文档文件被篡改,因此不能注册(步骤s1213)。
当如上所述在区块链网络300中注册和管理文档文件的信息时,除了新文档文件之外的文档文件或将更新内容添加到与多个区块(对应于区块链网络300中存储的各个版本)中的最新区块对应的文档文件的文档文件被确定为不可注册。因此,通过区块链网络300,可以在没有分支版本的情况下管理文档文件。例如,如图6所示,在注册了原始文档的文档文件、原始文档+更新1的文档文件、原始文档+更新1+更新2的文档文件的信息的情况下,尝试在区块链网络300中注册原始文档+更新1+更新3的文档文件的信息导致确定不能注册该文件,因此不注册该文档文件的信息。
根据上述实施例的管理服务器100、信息终端设备200和管理服务器400是普通计算机,包括诸如中央处理单元(cpu)的硬件、诸如只读存储器(rom)、随机存取存储器(ram)和硬盘驱动器(hdd)的外部存储设备、通信控制设备等,cpu读取和操作存储在rom、ram、hdd等中的程序以实现上述配置和功能。
在管理服务器100、信息终端设备200和管理服务器400上运行的程序可以存储在连接到诸如因特网的网络的计算机中并通过经由网络下载来提供,或者可以通过以可安装格式或可执行格式的文件记录在诸如cd-rom、dvd、usb存储器或sd卡的计算机可读记录介质中来提供。用于实现上述功能和处理的程序可以以诸如应用编程接口(api)、软件即服务(saas)或云计算的使用形式来提供。
注意,本发明不限于上述实施例的直接定义,并且不必如图示那样物理地配置。另外,本发明可以根据各种负载、使用条件等,以任意单位对实施例中描述的全部或部分组件进行功能或物理上的划分、集成、替换、修改或删除。
附图标记列表
10文档文件管理系统
100管理服务器
101发送/接收单元
102id获取单元
103哈希值计算单元
104区块链注册单元
105哈希值获取单元
106篡改确定单元
107版本确定单元
200信息终端设备
300区块链网络
400管理服务器
408文件大小确定单元
409注册可行性确定单元
n网络