一种文件的自校验方法及系统技术方案

技术编号:14013512 阅读:76 留言:0更新日期:2016-11-17 15:12
本发明专利技术公开了一种文件自校验方法及系统,其在原有的文件数据基础之上增设文件头,并对文件头的结构进行定义,包括文件头数据及匹配信息,文件头数据包括预存文件校验信息的CRC、文件的压缩方式以及压缩前文件的长度、压缩后文件的长度文件数据部分的长度、文件数据部分的CRC校验和(file CRC)等信息,然后根据上述文件头结构信息对文件头以及文件数据分别进行校验,当二者均校验成功后,判断目标文件为确定且完整的,可进行后续文件替换,若其中一个校验失败,则说明文件在传输或者存放等过程中发生损坏,则结束进程,检验步骤方便快速,且可靠性高。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统数据通信领域,特别是一种文件完整性的校验方法。
技术介绍
随着嵌入式科技的高速发展,嵌入式产品应用越来越广泛,比如高速铁路、通讯设备等,嵌入式开发包括硬件和软件开发,为了提高开发速度,在嵌入式软件开发中一般会采用文件系统,将文件和数据保存在文件系统当中,文件系统使用能带来很多的好处,比如使用简单方便、API接口丰富、上手和开发速度快,同时文件传递也很方便。但是嵌入式系统有时应用在环境严酷的场合,复杂的周围环境、软件缺陷等可能导致文件内容被破坏或者改写,特殊情况下还有可能造成文件系统的损坏。通常,嵌入式系统启动的时候从文件系统里面读取应用程序来执行,如果文件系统内部的应用文件被损坏,那么可能会造成系统启动或者运行异常,导致系统不稳定;此外,由于嵌入式系统下的传输协议较为简单,缺乏足够的容错机制,在文件更新过程中也有可能发生数据丢失、输出传错等情况,这样传输到文件系统的文件可能已经被改写,这种损坏的文件是不能使用的,带来的后果通常不可预知,在目前的嵌入式系统中,一般没有提供文件完整性校验方法,不能判断文件是否是正确可用的;另外,即使文件已经发生损坏,也不能立刻检测出来,文件的完整性不能得到保障。
技术实现思路
本专利技术的目的在于提供一种一种文件的自校验方法及系统,可以有效解决各种硬件存储环境中,文件无法判断文件是否发生了变化的问题,确保文件原始数据的完整性。为达到上述目的,本专利技术的解决方案是:本专利技术公开了一种文件自校验方法,所述文件包括原始的文件数据以及增加的文件头,则自校验包括以下步骤:(1)进行文件头信息校验,若校验成功,转入步骤(2),若校验失败,则直接转入步骤(4);(2)判断文件数据是否压缩:(2-1)若文件数据为未压缩文件,则读取文件头数据中预存的真正的文件数据部分的长度信息并依据该信息计算文件数据file CRC;(2-2)若文件数据为压缩文件,则(2-2-1)判断所述文件数据的压缩类型;(2-2-2)解压所述压缩文件,根据步骤(2-1)中确定的压缩类型选择相应的解压算法对所述压缩文件进行解压;(2-2-3)依据解压后的文件数据长度以及文件头数据中预存的文件数据长度信息计算文件数据的file CRC;(3)进行文件数据信息校验:读取文件头数据中预存的文件数据的file CRC信息,比较计算出的file CRC信息与预存的file CRC信息,若校验成功,则判断文件数据内容完整,若校验失败,则转入步骤(4);(4)结束。优选的,所述文件头包括文件头数据以及匹配信息,所述步骤(1)中,文件头信息校验包括以下步骤:(1-1)读取文件头中的匹配信息,并与预设匹配信息比较,若二者相同,则转入步骤(1-2)进行head CRC校验,若二者不同,则转入步骤(4);(1-2)head CRC校验:计算确定文件头的head CRC信息,并读取文件头数据中预存的head CRC信息,比较计算出的文件头head CRC信息与预存head CRC是否相同,若二者相同,则判断检验通过,转入步骤(2),若二者不同,则直接转入步骤(4)。进一步的,所述计算出的head_CRC为文件头数据、匹配信息2个部分的校验和。更进一步的,所述文件头数据还包括魔术字信息,所述步骤(1-1)前还包括魔术字校验步骤,读取文件头中的魔术字信息并与预存符号进行比较,若二者相同,则通过转入步骤(1-1),若二者不同,则直接转入步骤(4)。此外,所述文件头数据还包括文件版本信息的长度、文件匹配信息长度、文件描述信息长度、含有校验信息的文件的生成时间信息。优选的,所述文件头还包括版本信息与文件描述信息,所述计算出的head_CRC为文件头数据、版本信息、匹配信息、文件描述信息4个部分的校验和。进一步的,文件数据信息校验成功后,还包括版本信息比较步骤,比较文件版本信息与预设的版本信息,若二者相同,则可进行文件数据的替换,否则转入步骤(4)。本专利技术还公开了一种文件自校验系统,包括:文件头校验模块,用于进行文件头信息校验;文件压缩判断模块,用于文件数据的压缩判定,并依据判定结果计算文件数据file CRC信息;文件数据校验模块,用于文件数据信息校验的校验;以及信息上报模块,用于校验失败,结束校验进程。优选的,所述文件头校验模块进一步包括:魔术字校验单元,用于比较文件头数据中预存的魔术字与预设魔术字信息,初步判断文件头数据的起始部分是否有被修改;匹配信息校验单元,用于比较文件头中的匹配信息与预设匹配信息,判断文件数据是否为指定单板的文件内容;以及head CRC校验单元,用于依据文件头数据、版本信息、匹配信息以及文件描述信息计算文件头的head CRC,并与文件头数据中预存的head CRC进行比较,进行文件头数据信息校验。优选的,文件压缩判断模块进一步包括:压缩判断单元,用于判断文件数据是否压缩并依据所述结果选择对压缩的文件数据解压;压缩文件数据file CRC计算单元,用于依据解压后的文件数据长度以及文件头数据中预存的文件数据长度信息计算文件数据的file CRC;以及非压缩文件数据的file CRC计算单元,用于依据所述文件头数据中预存的真正的文件数据部分的长度信息并依据该信息计算文件数据file CRC。由于采用上述方案,本专利技术的有益效果是:本专利技术所示的文件自校验方法及系统,在原有的文件数据基础之上增设文件头,并对文件头的结构进行定义,包括文件头数据及匹配信息,其中文件头数据包括预存文件校验信息的CRC(head CRC)、文件的压缩方式以及压缩前文件的长度、压缩后文件的长度文件数据部分的长度、文件数据部分的CRC校验和(file CRC)等信息,然后根据上述文件头结构信息对文件头以及文件数据分别进行校验,当二者均校验成功后,判断目标文件为确定且完整的,可进行后续文件替换,若其中一个校验失败,则说明文件在传输或者存放等过程中发生损坏,则结束进程,检验步骤方便快速,且可靠性高。。附图说明图1为本专利技术所示的文件自校验方法一实施例的工作流程图;图2为图1所示实施例中文件头校验的工作流程图;图3为文件结构一实施例的示意图;图4为文件头数据结构一实施例的示意图;图5为文件自校验系统一实施例的结构示意图。具体实施方式以下结合附图所示实施例对本专利技术作进一步的说明。如图1所示,本专利技术公开了一种文件自校验方法,所述文件包括原始的文件数据以及增加的文件头。一实施例中,增加的文件头包括文件头数据以及匹配信息,文件头数据包括预存文件校验信息CRC(head CRC)、文件的压缩方式以及压缩前文件的长度、压缩后文件的长度文件数据部分的长度、文件数据部分CRC校验和(file CRC)。则文件自校验包括以下步骤:(1)进行文件头信息校验,若校验成功,转入步骤(2),若校验失败,则直接转入步骤(4);如图2所示,步骤(1)中,文件头信息校验包括以下步骤:(1-1)读取文件头中的匹配信息,并与预设匹配信息比较,若二者相同,则转入步骤(1-2)进行head CRC校验,若二者不同,则转入步骤(4);匹配信息主要用于描述文件和单板之间是否匹配,例如板类型,ID等信息,其长度不固定,由于在设备中存在多个不同类型的单板(硬件),每类单板又包括多个不同ID的单本文档来自技高网...
一种文件的自校验方法及系统

【技术保护点】
一种文件自校验方法,其特征在于:所述文件包括原始的文件数据以及增加的文件头,则自校验包括以下步骤:(1)进行文件头信息校验,若校验成功,转入步骤(2),若校验失败,则直接转入步骤(4);(2)判断文件数据是否压缩:(2‑1)若文件数据为未压缩文件,则读取文件头数据中预存的真正的文件数据部分的长度信息并依据该信息计算文件数据file CRC;(2‑2)若文件数据为压缩文件,则(2‑2‑1)判断所述文件数据的压缩类型;(2‑2‑2)解压所述压缩文件,根据步骤(2‑1)中确定的压缩类型选择相应的解压算法对所述压缩文件进行解压;(2‑2‑3)依据解压后的文件数据长度以及文件头数据中预存的文件数据长度信息计算文件数据的file CRC;(3)进行文件数据信息校验:读取文件头数据中预存的文件数据的file CRC信息,比较计算出的file CRC信息与预存的file CRC信息,若校验成功,则判断文件数据内容完整,若校验失败,则转入步骤(4);(4)结束。

【技术特征摘要】
1.一种文件自校验方法,其特征在于:所述文件包括原始的文件数据以及增加的文件头,则自校验包括以下步骤:(1)进行文件头信息校验,若校验成功,转入步骤(2),若校验失败,则直接转入步骤(4);(2)判断文件数据是否压缩:(2-1)若文件数据为未压缩文件,则读取文件头数据中预存的真正的文件数据部分的长度信息并依据该信息计算文件数据file CRC;(2-2)若文件数据为压缩文件,则(2-2-1)判断所述文件数据的压缩类型;(2-2-2)解压所述压缩文件,根据步骤(2-1)中确定的压缩类型选择相应的解压算法对所述压缩文件进行解压;(2-2-3)依据解压后的文件数据长度以及文件头数据中预存的文件数据长度信息计算文件数据的file CRC;(3)进行文件数据信息校验:读取文件头数据中预存的文件数据的file CRC信息,比较计算出的file CRC信息与预存的file CRC信息,若校验成功,则判断文件数据内容完整,若校验失败,则转入步骤(4);(4)结束。2.根据权利要求1所述的文件自校验方法,其特征在于:所述文件头包括文件头数据以及匹配信息,所述步骤(1)中,文件头信息校验包括以下步骤:(1-1)读取文件头中的匹配信息,并与预设匹配信息比较,若二者相同,则转入步骤(1-2)进行head CRC校验,若二者不同,则转入步骤(4);(1-2)head CRC校验:计算确定文件头的head CRC信息,并读取文件头数据中预存的head CRC信息,比较计算出的文件头head CRC信息与预存head CRC是否相同,若二者相同,则判断检验通过,转入步骤(2),若二者不同,则直接转入步骤(4)。3.根据权利要求2所述的文件自校验方法,其特征在于:所述计算出的head_CRC为文件头数据、匹配信息2个部分的校验和。4.根据权利要求2或3所述的文件自校验方法,其特征在于:所述文件头数据还包括魔术字信息,所述步骤(1-1)前还包括魔术字校验步骤,读取文件头中的魔术字信息并与预存符号进行比较,若二者相同,则通过转入步骤(1-1),若二者...

【专利技术属性】
技术研发人员:闫礼飞陈荣
申请(专利权)人:湖北锐世数字医学影像科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1