一种快速提升ofd签名、签章及验证的方法

文档序号:1201220 发布日期:2020-09-01 浏览:4次 >En<

阅读说明:本技术 一种快速提升ofd签名、签章及验证的方法 (Method for rapidly improving OFD signature, signature and verification ) 是由 王珂 王永起 魏建民 于 2020-05-01 设计创作,主要内容包括:本发明公开了一种快速提升OFD签名、签章及验证的方法,包括如下步骤,计算前,将所有不参与计算的文档路径放入一个文件目录M;读取当前设定并行任务数。解压OFD,读取OFD文档列表,按照任务数获取对应的文件路径。S4、并行启动多个任务数量。比较当前文档路径是否在M中,若在则当前任务结束;若不在则开启HASH计算。每个计算HASH的任务计算完成后,将文件路径和HASH值发送至向XML写入HASH值的任务队列中。待所有OFD文档均参与完成后,即向写入HASH值的任务队列写入完成计算信号。本发明可以边计算、边写入,提升多页文件、多资源文件处理效率。(The invention discloses a method for rapidly improving OFD signature, signature and verification, which comprises the following steps of putting all document paths which do not participate in calculation into a file directory M before calculation; and reading the currently set parallel task number. And decompressing the OFD, reading the OFD document list, and acquiring a corresponding file path according to the number of tasks. And S4, starting a plurality of task numbers in parallel. Comparing whether the current document path is in M or not, and if so, ending the current task; if not, starting HASH calculation. After the task of calculating HASH is calculated, the file path and the HASH value are sent to a task queue for writing the HASH value into XML. And after all OFD documents participate in the completion, writing a completion calculation signal into the task queue written with the HASH value. The invention can simultaneously calculate and write in, and improves the processing efficiency of multi-page files and multi-resource files.)

一种快速提升OFD签名、签章及验证的方法

技术领域

本发明涉及一种快速提升OFD签名、签章及验证的方法。

背景技术

依据OFD的技术规范,OFD的数字签名、签章及验证过程均需要对OFD中某些保护的文件进行HASH计算,得到其HASH值,并将HASH算法、HASH值以及对应文件路径等信息形成新的XML文件,放置在对应目录中,作为数字签名、签章或验证的计算原文。在现有计算中,通常是逐个轮询待计算文件,得到HASH值,并写入XML文件。现有模式,存在计算较慢的问题,尤其是当文件页数、资源比较多的时候,顺序单个HASH计算会占用大量的时间,导致性能低下需要等待较长时间完成每一页的HASH计算。

发明内容

为了解决上述问题,本发明一种快速提升OFD签名、签章及验证的方法通过改善现有计算方式,将原来的轮询、计算HASH、***等线性流程进行并行优化,可以边计算、边写入,能够充分发挥计算潜力,提升多页文件、多资源文件处理效率。

本发明的技术方案为:

一种快速提升OFD签名、签章及验证的方法,其特征在于,包括如下步骤,

S1、明确不参与运算文件名录M。计算前,将所有不参与计算的文档路径放入一个文件目录M

S2、读取当前设定并行任务数。

S3、解压OFD,读取OFD文档列表,按照任务数获取对应的文件路径。

S4、并行启动多个任务数量。

S5、比较当前文档路径是否在M中,若在则当前任务结束;若不在则开启HASH计算。

S6、每个计算HASH的任务计算完成后,将文件路径和HASH值发送至向XML写入HASH值的任务队列中,完成本次任务计算

S7、待本次全部任务结束后,确认是否已完成本OFD文档件所有文件的轮询;如果还有剩余文件,则重复执行S4-S6;

S8、待所有OFD文档均参与完成后,即向写入HASH值的任务队列写入完成计算信号。该任务队列拿到信号后即可输出最终XML文档,完成整个OFD文件的HASH计算。

有益效果:

本发明通过拟定HASH任务池的方式,能够同时将某些文件同步进行HASH计算,进而写入一个完成的任务队列,由写入现成同步进行XML文件的写入操作。这种方式一方面将原有的单个文件HASH操作,转换成多个文件同时HASH操作,一方面将原有计算完HASH再写入文件转变成可以边计算、边写入,大大加快了原有计算速度。

相比较与现有工作模式,本发明在满足目前技术方案所有功能需求的同时,还有以下显著的性能优点:

1、提升并行HASH的效率

发明中,通过多个任务列表并行HASH的方式进行,可以充分的发挥计算能力,快速的完成多个文件的并行HASH计算

2、提升最终XML生成的效率

现有发明中,采用了多任务计算,计算一个写入一个,解决了并行运算再单独执行HASH生成任务的瓶颈,效率更高。

附图说明

图1为本发明的流程图;

具体实施方式

下面结合附图1对本发明做详细介绍:

本发明通过提前设定不计算目录黑名单方式来过滤任务中待计算文件。通过多个HASH任务的方式,实现OFD多个文件进行同步HASH计算;通过队列的方式将HASH统一完成OFD规范中hash文件列表的内容生成。具体方法如下:

S1、明确不参与运算文件名录M。计算前,将所有不参与计算的文档路径放入一个文件目录M。

S2、读取当前设定并行任务数。

S3、解压OFD,读取OFD文档列表,按照任务数获取对应的文件路径。

S4、并行启动多个任务数量。

S5、比较当前文档路径是否在M中,若在则当前任务结束;若不在则开启HASH计算。

S6、每个计算HASH的任务计算完成后,将文件路径和HASH值发送至向XML写入HASH值的任务队列中,完成本次任务计算

S7、待本次全部任务结束后,确认是否已完成本OFD文档件所有文件的轮询;如果还有剩余文件,则重复执行S4-S6;

S8、待所有OFD文档均参与完成后,即向写入HASH值的任务队列写入完成计算信号。该任务队列拿到信号后即可输出最终XML文档,完成整个OFD文件的HASH计算。

具体应用场景如下:

1、OFD的数字签名及签章

先收集OFD包中的文件列表信息及不需要保护的包内文件从而形成保护文件列表。如果签名后将锁定文档,则对签名列表文档一并进行保护。

再使用线程池根据文件保护列表中记录的文件路径,对文件进行并行摘要计算。并将保护文件的文件名、摘要结果记录在签名描述文件中。签名描述文件中同时记录了安全算法提供者、签名算法、签名时间、***文件包内位置(签章时需要、签名不需要)、签名值文件包内位置等信息。签名描述文件的结构及包内存放路径,符合GB/T33190相关规范。

对签名描述文件计算摘要,并将摘要信息与签名的版本号、电子***(签章时需要、签名不需要)、签名证书、签名时间等信息,按照GM/T0031、C0120或GM/T0010规范,组织成待签名结构。

按签名描述文件中指定的签名算法,对待签名结构计算签名,并按照GM/T0031、C0120或GM/T0010规范,生成签名值文件。

按照签名描述文件中指定的路径,将***文件(签章时需要、签名不需要)、签名值文件存放到OFD文件包中。

2、OFD的数字签名及签章验证

根据选择的***,通过解析签名列表文件,定位到相应的签名描述文件。

解析签名描述文件,得到保护文件列表。

按照签名描述文件中记录的摘要算法,对保护的文件计算摘要,并与签名描述文件中记录的摘要进行比对,比对失败则说明文件被修改。

摘要比对完成后,对签名描述文件计算摘要,并与签名值结构中记录的签名描述文件摘要进行对比,对比失败则说明文件被修改。

按照GM/T0031、C0120或GM/T0010规范,对签名值文件验证,确保签名值文件没有发生改动,如果签名值文件发生改动,说明文件被修改,否则说明文件没有修改,验证成功。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:异构数据的处理方法、装置以及计算机设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!