CN106844476A - 一种识别文件格式及对应完整性的方法和设备 - Google Patents
一种识别文件格式及对应完整性的方法和设备 Download PDFInfo
- Publication number
- CN106844476A CN106844476A CN201611206211.6A CN201611206211A CN106844476A CN 106844476 A CN106844476 A CN 106844476A CN 201611206211 A CN201611206211 A CN 201611206211A CN 106844476 A CN106844476 A CN 106844476A
- Authority
- CN
- China
- Prior art keywords
- file
- attribute
- identified
- file format
- format
- 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.)
- Pending
Links
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的目的是提供一种识别文件格式及对应完整性的设备,包括文件属性数据库装置、获取装置、对比计算装置、输出装置、二次检测装置、打开验证装置,私有文件格式验证装置;本发明的方法包括建立文件属性数据库;获取待识别文件的文件属性;将待识别文件的文件属性与文件属性数据库中存储的每种文件格式的文件属性进行比较,并根据相应的权重值计算待识别文件与每种文件格式的匹配度;比较各个匹配度值,最高的匹配度值对应的文件格式即为待识别文件的文件格式。本发明根据实际文件二进制内容以及结构特征来识别文件类型,并能快速判断文件完整性,进一步的使其他程序可以做文件后续处理。
Description
技术领域
本发明涉及一种数据处理技术,具体涉及一种识别文件格式及对应完整性的方法和设备。
背景技术
文件格式是指电脑为了存储信息而使用的对信息的特殊编码方式,是用于识别内部储存的资料。对于硬盘机或任何电脑存储来说,有效的信息只有0和1两种。识别这些二进制数到底表示的是怎样的文件,是通过文件本身组织起来的方式即文件格式来进行的。文件格式时组织文件的规范。每一种文件格式通常会有一种或多种扩展名可以用来识别,但也可能没有扩展名。
现有操作***对于文件格式的识别大多是根据文件名后缀识别文件类型,如windows***;而在linux以及unix***有file命令可以根据文件magic识别文件类型。但对于文件完整性并有统一的工具能够检测多种文件格式的完整性,而且file对于文件类型检测也有其局限性。
发明内容
为了解决上述问题,本发明提供了一种识别文件格式及对应完整性的方法。本发明提供的一种识别文件格式及对应完整性的方法,根据实际需求,提供了一个不单纯依赖文件扩展名,而是根据实际文件二进制内容以及结构特征来识别文件类型,并能快速判断文件完整性,进一步的使其他程序可以做文件后续处理。
本发明采用的技术方案如下:
一种识别文件格式的方法,包括如下步骤:
S11.建立文件属性数据库,所述文件属性数据库包括不同文件格式对应的属性以及与不同文件格式的属性对应的权重值;
S12.获取待识别文件的文件属性;
S13.将待识别文件的文件属性与文件属性数据库中存储的每种文件格式的文件属性进行比较,并根据相应的权重值计算待识别文件与每种文件格式的匹配度;
S14.比较S13中得到的各个匹配度值,最高的匹配度值对应的文件格式即为待识别文件的文件格式。
上述的识别文件格式的方法,其中,所述步骤S12包括如下内容:
S121.判断待识别文件是否有文件头信息,如果有,至步骤S122,如果无,至步骤S123;
S121.获取待识别文件的文件头信息,通过该文件头信息获取待识别文件的文件属性;
S123.直接获取待识别文件的文件属性。
上述的识别文件格式的方法,其中,还包括如下步骤:
S15.当步骤S14得到的文件格式为包含子类型的格式时,对待识别文件做二次检测。
上述的识别文件格式的方法,其中,所述包含子类型的格式为基于其他格式进行封装的新格式。例如html即为xml的子类型。当S14得出的文件格式为诸如zip、xml、txt等包含子类型的格式时,对待识别文件做二次检测;包含子类型的格式为基于其他格式进行封装的新格式。
上述的识别文件格式的方法,其中,还包括步骤S16,当步骤S14得出的文件格式为多媒体文件格式时,对待识别文件进行打开验证。
上述的识别文件格式的方法,其中,还包括步骤S16,当步骤S15得出的文件格式为多媒体文件格式时,对待识别文件进行打开验证。
上述的识别文件格式的方法,其中,对所述多媒体文件格式使用FFMPEG进行打开验证。打开验证的验证结果为:是否能够正常打开,并获取相应的多媒体信息。
目的是再次进行对多媒体格式进行确认。因为某些特殊的文本文件的起始文本内容可能恰好与文件头标志相符造成识别文件类型检测误报。
上述的识别文件格式的方法,其中,所述步骤S13.包括如下步骤:
S131.将待识别文件的文件属性与文件属性数据库中的第N种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和;
S132.将待识别文件的文件属性与文件属性数据库中的第N+1种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N+1种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和。
上述的识别文件格式的方法,其中,所述步骤S14.包括如下步骤:
S141.比较步骤S131与步骤S132中得到的不同文件格式对应的匹配度,取较大值;
S142.当步骤S141中所得的较大值大于或者等于各个属性总权重值之和的50%时,该匹配度对应的文件格式即为待识别文件格式。
上述的识别文件格式的方法,其中,所述文件格式属性的种类包括:magic、mime、扩展名。
上述的识别文件格式的方法,其中,还包括步骤S0,对私有文件格式验证识别。
上述的识别文件格式的方法,其中,所述私有文件格式为自定义的确定文件类型的file命令使用magic规则文件来定义文件类型,所述步骤S0具体包括如下步骤:
S011.建立私有文件格式属性数据库,将私有文件格式各个属性存储至所述私有文件格式属性数据库中;
S012.将待识别文件的文件属性与私有文件格式的各个属性进行比较,如果比较结果一致,则输出该私有文件格式,如果比较结果不一致,至步骤S11。
上述的识别文件格式的方法,其中,所述私有文件格式为用户自定义的文件规范,所述步骤S0包括如下步骤:
S021.根据所述用户自定义的文件规范制定对应的解析文件格式的判断方法;
S022.根据步骤S021的方法判断待识别文件的文件格式是否为私有文件的文件格式,如果是,则输出该私有文件格式,如果否,至步骤S11。
一种识别文件完整性的方法,包括如下步骤:
S10.识别待识别文件的文件格式;
S21,判断待识别文件的文件尾信息是否存在;
S22.获取待识别文件的文件尾信息;
S23,当所述文件尾信息存在时,根据待识别文件的文件格式对应的规范判断文件完整结构是否存在于文件尾信息中,如果存在,则该文件完整,如果不存在,则该文件不完整。
一种识别文件格式的设备,包括:
文件属性数据库装置,用以存储不同文件格式对应的属性以及与不同文件格式的属性对应的权重值;
获取装置,用以获取待识别文件的文件属性;
对比计算装置,将待识别文件的文件属性与文件属性数据库中存储的每种文件格式的文件属性进行比较,并根据相应的权重值计算待识别文件与每种文件格式的匹配度;
输出装置,用以比较对比计算装置中得到的各个匹配度值,最高的匹配度值对应的文件格式即为待识别文件的文件格式。
上述的识别文件格式的设备,其中,所述获取装置包括:
文件头判断模块,用以判断待识别文件是否有文件头信息;
第一文件属性获取模块,用以获取待识别文件的文件头信息,并通过该文件头信息获取待识别文件的文件属性;
第二文件属性获取模块,用以直接获取待识别文件的文件属性。
上述的识别文件格式的设备,其中,还包括二次检测装置,当所述输出装置输出的文件格式为包含子类型的格式时,所述二次检测装置用以对待识别文件做二次检测。
上述的识别文件格式的设备,其中,所述包含子类型的格式为基于其他格式进行封装的新格式。例如html即为xml的子类型。
上述的识别文件格式的设备,其中,还包括打开验证装置,当输出装置输出的文件格式为多媒体文件格式时,所述打开验证装置用以对待识别文件进行打开验证。
上述的识别文件格式的设备,其中,还包括打开验证装置,当二次检测装置输出的文件格式为多媒体文件格式时,所述打开验证装置用以对待识别文件进行打开验证。
上述的识别文件格式的设备,其中,所述打开验证装置通过FFMPEG对所述多媒体文件格式的文件进行打开验证。打开验证的验证结果为:是否能够正常打开,并获取相应的多媒体信息。
上述的识别文件格式的设备,其中,所述对比计算装置包括:
第一计算模块,用以将待识别文件的文件属性与文件属性数据库中的第N种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和;
第二计算模块,用以将待识别文件的文件属性与文件属性数据库中的第N+1种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N+1种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和。
上述的识别文件格式的设备,其中,所述输出装置包括:
比较模块:用以比较第一计算模块与第二计算模块中得到的不同文件格式对应的匹配度,取较大值;
判断输出模块,用以判断当比较模块中所得的较大值大于或者等于各个属性总权重值之和的50%时,该匹配度对应的文件格式即为待识别文件格式。
上述的识别文件格式的设备,其中,所述文件格式属性的种类包括:magic、mime、扩展名。
上述的识别文件格式的设备,其中,还包括私有文件格式验证装置,用以对私有文件格式验证识别。
上述的识别文件格式的设备,其中,所述私有文件格式为自定义的确定文件类型的file命令使用magic规则文件来定义文件类型,所述私有文件格式验证装置包括:
私有文件格式属性数据库模块,用以存储私有文件格式各个属性;
第一私有文件格式属性判断模块,用以将待识别文件的文件属性与私有文件格式的各个属性进行比较,判断比较结果是否一致。
上述的识别文件格式的设备,其中,所述私有文件格式为用户自定义的文件规范,所述私有文件格式验证装置包括:
私有文件格式属性规则模块,用以存储根据所述用户自定义的文件规范制定对应的解析文件格式的判断方法;
第二私有文件格式属性判断模块,用以通过私有文件格式属性规则模块判断待识别文件的文件格式是否为私有文件的文件格式。
一种识别文件完整性的设备,包括:
识别文件格式的设备,用以识别待识别文件的文件格式;
文件尾判断装置,用以判断待识别文件的文件尾信息是否存在;
文件尾获取装置,用以获取待识别文件的文件尾信息;
文件完整结构查询装置,用以根据待识别文件的文件格式对应的规范判断文件完整结构是否存在于文件尾信息中,如果存在,则该文件完整,如果不存在,则该文件不完整。所述待识别文件的文件格式由识别文件格式的设备识别得出。
因为文件名扩展名可以随意修改,但是并不能改变文件的文件格式本身,所以,与现有技术相比,本发明通过获取待识别文件的magic、mime、encoding以及扩展名这些属性的属性值综合判断待识别文件的文件格式。而不是仅仅通过扩展名来判断文件格式,从而提高的识别结果的准确性。进一步的,对每一种文件格式的属性赋予不同的权重值,将待识别文件的文件属性与数据库中的每种文件格式对应的属性进行比较,从而计算出待识别文件与每一种看文件格式的匹配度,再比较匹配度大小,取最高值对应的文件格式即为待识别文件的真实文件格式。从而更进一步的提高了识别结果的准确性,继而可选择更加支持与该文件格式对应的应用程度对该文件进行后续的阅读、修改操作。进一步的,当识别出一个文件的真正的文件格式后,每种文件格式都拥有与其匹配的文件完整结构,如果在文件尾信息中找到该文件完整结构,则待识别文件为完整文件,如果在文件尾信息中不能找到该文件完整结构,则待识别文件为不完整文件。所以识别一件文件是否完整,是基于其文件格式的准确性,本发明在基于识别出文件格式之后,进一步的识别出文件的完整性,解决了确定文件类型的file命令中对于文件类型检测的局限性问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种识别文件格式的设备的结构示意图;
图2是本发明一种识别文件格式的设备的私有文件格式验证装置的一种实施例的结构示意图;
图3是本发明一种识别文件格式的设备的私有文件格式验证装置的另一种实施例的结构示意图;
图4是本发明一种识别文件格式的设备的获取装置的一种实施例的结构示意图;
图5是本发明一种识别文件格式的设备的对比计算装置的一种实施例的结构示意图;
图6是本发明一种识别文件格式的设备的输出装置的一种实施例的结构示意图;
图7是本发明一种识别文件完整性的设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1所示,一种识别文件格式的设备1,包括文件属性数据库装置11、获取装置12、对比计算装置13、输出装置14、二次检测装置15、打开验证装置16,私有文件格式验证装置17,其中:
文件属性数据库装置11,用以存储不同文件格式对应的属性以及与不同文件格式的属性对应的权重值;文件格式属性的种类包括:magic、mime、扩展名。
获取装置12,用以获取待识别文件的文件属性。
对比计算装置13,将待识别文件的文件属性与文件属性数据库中存储的每种文件格式的文件属性进行比较,并根据相应的权重值计算待识别文件与每种文件格式的匹配度。
输出装置14,用以比较对比计算装置中得到的各个匹配度值,最高的匹配度值对应的文件格式即为待识别文件的文件格式。
二次检测装置15,当所述输出装置输出的文件格式为包含子类型的格式时,所述二次检测装置用以对待识别文件做二次检测。所述包含子类型的格式为基于其他格式进行封装的新格式。例如html即为xml的子类型。
打开验证装置16,当输出装置或者二次检测装置输出的文件格式为多媒体文件格式时,所述打开验证装置通过FFMPEG对所述多媒体文件格式的文件进行打开验证。打开验证的验证结果为:是否能够正常打开,并获取相应的多媒体信息。本领域技术人员应理解FFMPEG是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
私有文件格式验证装置17,用以对私有文件格式验证识别。因为私有文件格式装置17在实际应用中是根据用户需求自定义制定的文件格式,因此,当将本发明用户该用户环境中是,优先使用私有文件格式验证装置17识别待识别文件的文件格式,当私有文件格式验证装置17无法识别待识别文件的文件格式时,再对其进行其他文件格式识别。私有文件格式验证装置17是独立于其他文件格式的验证装置的。
如图2所示,在一实施例中,当私有文件格式为自定义的确定文件类型的file命令使用magic规则文件来定义文件类型,所述私有文件格式验证装置17包括:
私有文件格式属性数据库模块171,用以存储私有文件格式各个属性;
第一私有文件格式属性判断模块172,用以将待识别文件的文件属性与私有文件格式的各个属性进行比较,判断比较结果是否一致。
如图3所示,在另一实施例中,当私有文件格式为用户自定义的文件规范,所述私有文件格式验证装置包括:
私有文件格式属性规则模块173,用以存储根据所述用户自定义的文件规范制定对应的解析文件格式的判断方法;
第二私有文件格式属性判断模块174,用以通过私有文件格式属性规则模块判断待识别文件的文件格式是否为私有文件的文件格式。
如图4所示,上述的获取装置12包括文件头判断模块121、第一文件属性获取模块122、第二文件属性获取模块123,其中:
文件头判断模块121,用以判断待识别文件是否有文件头信息;
第一文件属性获取模块122,用以获取待识别文件的文件头信息,并通过该文件头信息获取待识别文件的文件属性;
第二文件属性获取模块123,用以直接获取待识别文件的文件属性。
相对于没有文件头信息直接获取文件的文件属性,从文件头信息中获取到的文件属性比较准确。
如图5所示,上述对比计算装置13包括第一计算模块131、第二计算模块132,其中:
第一计算模块131,用以将待识别文件的文件属性与文件属性数据库中的第N种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和;
第二计算模块132,用以将待识别文件的文件属性与文件属性数据库中的第N+1种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N+1种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和。
如图6所示,上述输出装置14包括比较模块141、判断输出模块142,其中:
比较模块141:用以比较第一计算模块与第二计算模块中得到的不同文件格式对应的匹配度,取较大值;
判断输出模块142,用以判断当比较模块中所得的较大值大于或者等于各个属性总权重值之和的50%时,该匹配度对应的文件格式即为待识别文件格式。
一种识别文件格式的方法,包括如下步骤:
步骤S0,对私有文件格式验证识别。
当所述私有文件格式为自定义的确定文件类型的file命令使用magic规则文件来定义文件类型,所述步骤S0具体包括如下步骤:
S011.建立私有文件格式属性数据库,将私有文件格式各个属性存储至所述私有文件格式属性数据库中;
S012.将待识别文件的文件属性与私有文件格式的各个属性进行比较,如果比较结果一致,则输出该私有文件格式,如果比较结果不一致,至步骤S11。
当所述私有文件格式为用户自定义的文件规范,所述步骤S0包括如下步骤:
S021.根据所述用户自定义的文件规范制定对应的解析文件格式的判断方法;
S022.根据步骤S021的方法判断待识别文件的文件格式是否为私有文件的文件格式,如果是,则输出该私有文件格式,如果否,至步骤S11。
S11.建立文件属性数据库,所述文件属性数据库包括不同文件格式对应的属性以及与不同文件格式的属性对应的权重值;
在此,文件属性包括magic、mime、扩展名。由于文件扩展名容易被更改,但是,并不改变文件数据本身,因此,在赋予权重值时,优选的将扩展名的权重取值较低。对文件格式的文件属性统一赋予权重值,例如,将文件格式的文件属性中的magic赋予权重值3、mime赋予权重值3,扩展名赋予权重值1;对于特殊的文件格式,做权重值的调整。即将文件属性不具有唯一性的文件属性的权重值调低。以.srt文件为例,这是一种字幕文件类型,mime=text/plain,这个属性完全不具有特殊性,因为txt类文本mime都是这个,所以针对.srt类型对mime权重值调整为1,将扩展名srt的权重值调整为2,将magic的权重值调整为0。
在此,本领域的技术人员应当理解为了支持数据库的运行,文件属性数据库中除了包括magic、mime、扩展名外,还应当包含但不限于包含:encoding即编码,自定义辅助程序以及使用方法,这些用于识别文件类型。在这些属性之外还有类型的其他属性,但不是用于识别文件类型,而只是与文件类型绑定的类型信息.其他属性如下:类型名称(唯一),相关程序(如QuickTime Player),分类(如文档,视频,音频等),应用平台(如跨平台,windows,类unix,MacOS,Android等),格式基本描述信息(如cpp:c++source code)等。
S12.获取待识别文件的文件属性,具体包括如下步骤:
S121.判断待识别文件是否有文件头信息,如果有,至步骤S122,如果无,至步骤S123;
S121.获取待识别文件的文件头信息,通过该文件头信息获取待识别文件的文件属性;
S123.直接获取待识别文件的文件属性。
S13.将待识别文件的文件属性与文件属性数据库中存储的每种文件格式的文件属性进行比较,并根据相应的权重值计算待识别文件与每种文件格式的匹配度;具体如下:
S131.将待识别文件的文件属性与文件属性数据库中的第N种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和;
S132.将待识别文件的文件属性与文件属性数据库中的第N+1种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N+1种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和。
例如一个待识别文件xxx.txt,其三个属性magic=text,mime=text/plain,扩展名=txt。
数据库中,srt类型的属性是mime=text/plain,扩展名=srt,由前所述,又将mime的权重值调为1,扩展名的权重值调为2,magic的权重值调为0,则将待识别文件xxx.txt的三个属性与数据可中srt类型的三个属性匹配,mime相同取值1,maigic取值0,扩展名不相同,取值0,所以待识别文件xxx.txt对类型srt的匹配度为1+0+0=1,也就是匹配的权值之和。
S14.比较S13中得到的各个匹配度值,最高的匹配度值对应的文件格式即为待识别文件的文件格式;具体如下:
S141.比较步骤S131与步骤S132中得到的不同文件格式对应的匹配度,取较大值;
S142.当步骤S141中所得的较大值大于或者等于各个属性总权重值之和的50%时,该匹配度对应的文件格式即为待识别文件格式。
匹配度最高对应的文件格式即为待识别文件的文件格式。当匹配度<3时,则在这一步骤认为待匹配文件不可能是这个类型,当匹配度<5并且>=3时,则认为待匹配文件是该类型文件,如果匹配度>=5时则认为待匹配文件就是该类型的文件。
S15.当步骤S14得到的文件格式为包含子类型的格式时,对待识别文件做二次检测;优选的,二次检测可通过文件属性encoding即编码来完成。
所述包含子类型的格式为基于其他格式进行封装的新格式。例如html即为xml的子类型。当S14得出的文件格式为诸如zip、xml、txt等包含子类型的格式时,对待识别文件做二次检测;包含子类型的格式为基于其他格式进行封装的新格式。针对不同的包含子类型的格式的文件格式的二次检测方法不同,需要针对性制定解析方法,再次在数据库中作对应的处理验证,例如当步骤S14得到的文件格式为ZIP类型时,通过使用minizip库提取ZIP包目录。
文件属性信息的获取中的扩展名通常权值比较低,因为其确实不能表述一个文件的类型,但有些格式诸如txt大多数子类型,在不考虑其内容具体特征的前提下,通常是通过扩展名确定其格式的,因为好多txt的子类型都没有严格统一的规范,尤其是源代码文件,如果没有文件头包含或解析器等一些特征甚至不能确定是不是代码。
S16,当步骤S14或者S15得出的文件格式为多媒体文件格式时,使用FFMPEG进行打开验证,打开验证的验证结果为:是否能够正常打开,并获取相应的多媒体信息。避免因为文件magic属性冲突导致类型判断错误,例如,多媒体文件尝试提取播放时长信息或者使用播放器打开。
如图7所示,一种识别文件完整性的设备2,包括识别文件格式的设备1、文件尾判断装置21、文件尾获取装置22、文件完整结构查询装置23,其中:
识别文件格式的设备1,用以识别待识别文件的文件格式;
文件尾判断装置21,用以判断待识别文件的文件尾信息是否存在;
文件尾获取装置22,用以获取待识别文件的文件尾信息;
文件完整结构查询装置23,用以根据待识别文件的文件格式对应的规范判断文件完整结构是否存在于文件尾信息中,如果存在,则该文件完整,如果不存在,则该文件不完整。所述待识别文件的文件格式由识别文件格式的设备识别得出。
一种识别文件完整性的方法,包括如下步骤:
S10.识别待识别文件的文件格式;
S21,判断待识别文件的文件尾信息是否存在;
S22.获取待识别文件的文件尾信息;
S23,当所述文件尾信息存在时,根据待识别文件的文件格式对应的规范判断文件完整结构是否存在于文件尾信息中,如果存在,则该文件完整,如果不存在,则该文件不完整。例如,如果文件是PDF,那就判断文件尾信息是否包含“%%EOF”这一文件完整结构来判文件是否正常结束;如果未见是ZIP或者其子类型,就判断文件尾信息是否有完整的EOCD(End of central directory)这一文件完整结构,并验证其结构的有效性。
本发明使得文件类型的识别更加统一与规范化,同时避免了单纯使用文件某些方面特征判断文件属性带来的识别偏差,并能快速检查文件的完整性。这个功能对于后续数据挖掘而进行的文件内容和专有属性提取是必须的。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
当然,对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (28)
1.一种识别文件格式的方法,其特征在于,包括如下步骤:
S11.建立文件属性数据库,所述文件属性数据库包括不同文件格式对应的属性以及与不同文件格式的属性对应的权重值;
S12.获取待识别文件的文件属性;
S13.将待识别文件的文件属性与文件属性数据库中存储的每种文件格式的文件属性进行比较,并根据相应的权重值计算待识别文件与每种文件格式的匹配度;
S14.比较S13中得到的各个匹配度值,最高的匹配度值对应的文件格式即为待识别文件的文件格式。
2.根据权利要求1所述的识别文件格式的方法,其特征在于,所述步骤S12包括如下内容:
S121.判断待识别文件是否有文件头信息,如果有,至步骤S122,如果无,至步骤S123;
S121.获取待识别文件的文件头信息,通过该文件头信息获取待识别文件的文件属性;
S123.直接获取待识别文件的文件属性。
3.根据权利要求1或2所述的识别文件格式的方法,其特征在于,还包括如下步骤:
S15.当步骤S14得到的文件格式为包含子类型的格式时,对待识别文件做二次检测。
4.根据权利要求3所述的识别文件格式的方法,其特征在于,所述包含子类型的格式为基于其他格式进行封装的新格式。
5.根据权利要求1或2所述的识别文件格式的方法,其特征在于,还包括步骤S16,当步骤S14得出的文件格式为多媒体文件格式时,对待识别文件进行打开验证。
6.根据权利要求3或4所述的识别文件格式的方法,其特征在于,还包括步骤S16,当步骤S15得出的文件格式为多媒体文件格式时,对待识别文件进行打开验证。
7.根据权利要求5或6所述的识别文件格式的方法,其特征在于,对所述多媒体文件格式使用FFMPEG进行打开验证。
8.根据权利要求1-7任意一项所述的识别文件格式的方法,其特征在于,所述步骤S13.包括如下步骤:
S131.将待识别文件的文件属性与文件属性数据库中的第N种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和;
S132.将待识别文件的文件属性与文件属性数据库中的第N+1种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N+1种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和。
9.根据权利要求8所述的识别文件格式的方法,其特征在于,所述步骤S14.包括如下步骤:
S141.比较步骤S131与步骤S132中得到的不同文件格式对应的匹配度,取较大值;
S142.当步骤S141中所得的较大值大于或者等于各个属性总权重值之和的50%时,该匹配度对应的文件格式即为待识别文件格式。
10.根据权利要求1-9任意一项所述的识别文件格式的方法,其特征在于,所述文件格式属性的种类包括:magic、mime、扩展名。
11.根据权利要求10所述的识别文件格式的方法,其特征在于,还包括步骤S0,对私有文件格式验证识别。
12.根据权利要求11所述的识别文件格式的方法,其特征在于,所述私有文件格式为自定义的确定文件类型的file命令使用magic规则文件来定义文件类型,所述步骤S0具体包括如下步骤:
S011.建立私有文件格式属性数据库,将私有文件格式各个属性存储至所述私有文件格式属性数据库中;
S012.将待识别文件的文件属性与私有文件格式的各个属性进行比较,如果比较结果一致,则输出该私有文件格式,如果比较结果不一致,至步骤S11。
13.根据权利要求11所述的识别文件格式的方法,其特征在于,所述私有文件格式为用户自定义的文件规范,所述步骤S0包括如下步骤:
S021.根据所述用户自定义的文件规范制定对应的解析文件格式的判断方法;
S022.根据步骤S021的方法判断待识别文件的文件格式是否为私有文件的文件格式,如果是,则输出该私有文件格式,如果否,至步骤S11。
14.一种识别文件完整性的方法,其特征在于,包括如下步骤:
S10.识别待识别文件的文件格式;
S21,判断待识别文件的文件尾信息是否存在;
S22.获取待识别文件的文件尾信息;
S23,当所述文件尾信息存在时,根据待识别文件的文件格式对应的规范判断文件完整结构是否存在于文件尾信息中,如果存在,则该文件完整,如果不存在,则该文件不完整。
15.一种识别文件格式的设备,其特征在于,包括:
文件属性数据库装置,用以存储不同文件格式对应的属性以及与不同文件格式的属性对应的权重值;
获取装置,用以获取待识别文件的文件属性;
对比计算装置,将待识别文件的文件属性与文件属性数据库中存储的每种文件格式的文件属性进行比较,并根据相应的权重值计算待识别文件与每种文件格式的匹配度;
输出装置,用以比较对比计算装置中得到的各个匹配度值,最高的匹配度值对应的文件格式即为待识别文件的文件格式。
16.根据权利要求16所述的识别文件格式的设备,其特征在于,所述获取装置包括:
文件头判断模块,用以判断待识别文件是否有文件头信息;
第一文件属性获取模块,用以获取待识别文件的文件头信息,并通过该文件头信息获取待识别文件的文件属性;
第二文件属性获取模块,用以直接获取待识别文件的文件属性。
17.根据权利要求15或16所述的识别文件格式的设备,其特征在于,还包括二次检测装置,当所述输出装置输出的文件格式为包含子类型的格式时,所述二次检测装置用以对待识别文件做二次检测。
18.根据权利要求17所述的识别文件格式的设备,其特征在于,所述包含子类型的格式为基于其他格式进行封装的新格式。
19.根据权利要求15或16所述的识别文件格式的设备,其特征在于,还包括打开验证装置,当输出装置输出的文件格式为多媒体文件格式时,所述打开验证装置用以对待识别文件进行打开验证。
20.根据权利要求17或18所述的识别文件格式的设备,其特征在于,还包括打开验证装置,当二次检测装置输出的文件格式为多媒体文件格式时,所述打开验证装置用以对待识别文件进行打开验证。
21.根据权利要求19或20所述的识别文件格式的设备,其特征在于,所述打开验证装置通过FFMPEG对所述多媒体文件格式的文件进行打开验证。
22.根据权利要求15-21任意一项所述的识别文件格式的装置,其特征在于,所述对比计算装置包括:
第一计算模块,用以将待识别文件的文件属性与文件属性数据库中的第N种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和;
第二计算模块,用以将待识别文件的文件属性与文件属性数据库中的第N+1种文件格式的文件属性逐项比对,如果内容一致,取该属性对应的权重值,如果内容不一致,则该权重值为0,最后计算待识别文件与第N+1种文件格式的匹配度,所述匹配度为各个属性对应的权重值之和。
23.根据权利要求22所述的识别文件格式的设备,其特征在于,所述输出装置包括:
比较模块:用以比较第一计算模块与第二计算模块中得到的不同文件格式对应的匹配度,取较大值;
判断输出模块,用以判断当比较模块中所得的较大值大于或者等于各个属性总权重值之和的50%时,该匹配度对应的文件格式即为待识别文件格式。
24.根据权利要求15-23任意一项所述的识别文件格式的设备,其特征在于,所述文件格式属性的种类包括:magic、mime、扩展名。
25.根据权利要求24所述的识别文件格式的设备,其特征在于,还包括私有文件格式验证装置,用以对私有文件格式验证识别。
26.根据权利要求25所述的识别文件格式的设备,其特征在于,所述私有文件格式为自定义的确定文件类型的file命令使用magic规则文件来定义文件类型,所述私有文件格式验证装置包括:
私有文件格式属性数据库模块,用以存储私有文件格式各个属性;
第一私有文件格式属性判断模块,用以将待识别文件的文件属性与私有文件格式的各个属性进行比较,判断比较结果是否一致。
27.根据权利要求25所述的识别文件格式的设备,其特征在于,所述私有文件格式为用户自定义的文件规范,所述私有文件格式验证装置包括:
私有文件格式属性规则模块,用以存储根据所述用户自定义的文件规范制定对应的解析文件格式的判断方法;
第二私有文件格式属性判断模块,用以通过私有文件格式属性规则模块判断待识别文件的文件格式是否为私有文件的文件格式。
28.根据权利要求15-27所述的一种识别文件格式的设备对应的一种识别文件完整性的设备,其特征在于,包括:
识别文件格式的设备,用以识别待识别文件的文件格式;
文件尾判断装置,用以判断待识别文件的文件尾信息是否存在;
文件尾获取装置,用以获取待识别文件的文件尾信息;
文件完整结构查询装置,用以根据待识别文件的文件格式对应的规范判断文件完整结构是否存在于文件尾信息中,如果存在,则该文件完整,如果不存在,则该文件不完整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611206211.6A CN106844476A (zh) | 2016-12-23 | 2016-12-23 | 一种识别文件格式及对应完整性的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611206211.6A CN106844476A (zh) | 2016-12-23 | 2016-12-23 | 一种识别文件格式及对应完整性的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106844476A true CN106844476A (zh) | 2017-06-13 |
Family
ID=59135303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611206211.6A Pending CN106844476A (zh) | 2016-12-23 | 2016-12-23 | 一种识别文件格式及对应完整性的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844476A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134644A (zh) * | 2019-05-17 | 2019-08-16 | 成都卫士通信息产业股份有限公司 | 文件类型识别方法、装置、电子设备及可读存储介质 |
CN110442552A (zh) * | 2019-06-20 | 2019-11-12 | 网宿科技股份有限公司 | 完整度的计算方法及*** |
CN110532529A (zh) * | 2019-09-04 | 2019-12-03 | 北京明朝万达科技股份有限公司 | 一种文件类型的识别方法及装置 |
CN112001163A (zh) * | 2020-09-03 | 2020-11-27 | 深圳证券信息有限公司 | 一种文件完整性的检测方法、***、电子设备及存储介质 |
CN115577330A (zh) * | 2022-12-07 | 2023-01-06 | 北京志翔科技股份有限公司 | 文件类型识别方法、装置、电子设备及存储介质 |
CN116226046A (zh) * | 2023-03-16 | 2023-06-06 | 北京中宏立达科技发展有限公司 | 一种文件类型检测方法及*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072250A (zh) * | 2006-05-12 | 2007-11-14 | 上海晨兴电子科技有限公司 | 移动设备快速自动生成菜单资源的方法 |
CN102340538A (zh) * | 2011-07-20 | 2012-02-01 | 杭州创联电子技术有限公司 | 一种用于gyk数据管理的手持式设备实现方法 |
CN102708320A (zh) * | 2012-05-04 | 2012-10-03 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN103544437A (zh) * | 2012-12-27 | 2014-01-29 | 哈尔滨安天科技股份有限公司 | 一种基于扩展名和文件格式一致性的安全判别方法和装置 |
CN104715200A (zh) * | 2012-05-04 | 2015-06-17 | 北京奇虎科技有限公司 | 一种病毒apk的识别方法及装置 |
CN105095330A (zh) * | 2014-12-01 | 2015-11-25 | 哈尔滨安天科技股份有限公司 | 一种基于压缩包内容的文件格式识别方法及*** |
US20160092414A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Standardized approach to contextual code identification in editors and ides |
CN105808583A (zh) * | 2014-12-30 | 2016-07-27 | Tcl集团股份有限公司 | 文件类型识别方法及装置 |
-
2016
- 2016-12-23 CN CN201611206211.6A patent/CN106844476A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072250A (zh) * | 2006-05-12 | 2007-11-14 | 上海晨兴电子科技有限公司 | 移动设备快速自动生成菜单资源的方法 |
CN102340538A (zh) * | 2011-07-20 | 2012-02-01 | 杭州创联电子技术有限公司 | 一种用于gyk数据管理的手持式设备实现方法 |
CN102708320A (zh) * | 2012-05-04 | 2012-10-03 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN104715200A (zh) * | 2012-05-04 | 2015-06-17 | 北京奇虎科技有限公司 | 一种病毒apk的识别方法及装置 |
CN103544437A (zh) * | 2012-12-27 | 2014-01-29 | 哈尔滨安天科技股份有限公司 | 一种基于扩展名和文件格式一致性的安全判别方法和装置 |
US20160092414A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Standardized approach to contextual code identification in editors and ides |
CN105095330A (zh) * | 2014-12-01 | 2015-11-25 | 哈尔滨安天科技股份有限公司 | 一种基于压缩包内容的文件格式识别方法及*** |
CN105808583A (zh) * | 2014-12-30 | 2016-07-27 | Tcl集团股份有限公司 | 文件类型识别方法及装置 |
Non-Patent Citations (4)
Title |
---|
DOUGLAS J. HICKOK 等: "File Type Detection Technology", 《PROCEEDINGS FROM THE 38TH MIDWEST INSTRUCTION AND COMPUTING SYMPOSIUM》 * |
R.DHANALAKSHMI 等: "FILE FORMAT IDENTIFICATION AND INFORMATION EXTRACTION", 《2009 WORLD CONGRESS ON NATURE & BIOLOGICALLY INSPIRED COMPUTING (NABIC)》 * |
戴上静: "分布式全文检索***中索引管理及其文件预处理研究", 《中国优秀硕士学问论文全文数据库 信息科技辑》 * |
苏宇: "基于Hadoop的分布式全文检索及相关技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134644A (zh) * | 2019-05-17 | 2019-08-16 | 成都卫士通信息产业股份有限公司 | 文件类型识别方法、装置、电子设备及可读存储介质 |
CN110442552A (zh) * | 2019-06-20 | 2019-11-12 | 网宿科技股份有限公司 | 完整度的计算方法及*** |
CN110442552B (zh) * | 2019-06-20 | 2022-04-08 | 网宿科技股份有限公司 | 完整度的计算方法及*** |
CN110532529A (zh) * | 2019-09-04 | 2019-12-03 | 北京明朝万达科技股份有限公司 | 一种文件类型的识别方法及装置 |
CN112001163A (zh) * | 2020-09-03 | 2020-11-27 | 深圳证券信息有限公司 | 一种文件完整性的检测方法、***、电子设备及存储介质 |
CN112001163B (zh) * | 2020-09-03 | 2024-01-30 | 深圳证券信息有限公司 | 一种文件完整性的检测方法、***、电子设备及存储介质 |
CN115577330A (zh) * | 2022-12-07 | 2023-01-06 | 北京志翔科技股份有限公司 | 文件类型识别方法、装置、电子设备及存储介质 |
CN116226046A (zh) * | 2023-03-16 | 2023-06-06 | 北京中宏立达科技发展有限公司 | 一种文件类型检测方法及*** |
CN116226046B (zh) * | 2023-03-16 | 2023-09-08 | 北京中宏立达科技发展有限公司 | 一种文件类型检测方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844476A (zh) | 一种识别文件格式及对应完整性的方法和设备 | |
CN107239666B (zh) | 一种对医疗影像数据进行脱敏处理的方法及*** | |
US10394686B2 (en) | Static feature extraction from structured files | |
CN105046289B (zh) | 一种文字域类型识别方法和文字域类型识别*** | |
RU2003126950A (ru) | Защита объекта заголовка потока данных | |
US20110161376A1 (en) | Automated file merging through content classification | |
CN103067364A (zh) | 病毒检测方法及设备 | |
CN110110320B (zh) | 自动合同审查方法、装置、介质以及电子设备 | |
JP2008538634A (ja) | デジタルオーディオ識別子要素の信頼可能データベースの構築及びメディア品目識別のための方法、コンピュータ可読メディア及びデータ構造 | |
CN112329062A (zh) | 一种检测隐藏数据的方法、装置及电子设备 | |
CN109165209A (zh) | 数据库中对象类型的数据校验方法、装置、设备及介质 | |
CN110399729B (zh) | 一种基于组件特征权重的二进制软件分析方法 | |
US20090204889A1 (en) | Adaptive sampling of web pages for extraction | |
JP2015005100A (ja) | 情報処理装置、テンプレート生成方法、およびプログラム | |
CN106095808B (zh) | 一种mdb文件碎片恢复的方法和装置 | |
CN109726398B (zh) | 一种实体识别及属性判断方法、***、设备及介质 | |
CN115437930B (zh) | 网页应用指纹信息的识别方法及相关设备 | |
CN114691907B (zh) | 一种跨模态检索的方法、设备及介质 | |
CN108828427B (zh) | 信号完整性测试的判据查找方法、装置、设备及存储介质 | |
CN111104674A (zh) | 一种电力固件同源二进制文件关联方法及*** | |
CN109582846A (zh) | 通过文章进行搜索的方法、装置、电子设备及存储介质 | |
JP2012185195A (ja) | オーディオデータ特徴抽出方法、オーディオデータ照合方法、オーディオデータ特徴抽出プログラム、オーディオデータ照合プログラム、オーディオデータ特徴抽出装置、オーディオデータ照合装置及びオーディオデータ照合システム | |
KR101846342B1 (ko) | 전자문서 관리방법을 컴퓨터에서 실행시키기 위한 프로그램을 저장한 기록매체 및 전자문서 관리 시스템 | |
CN115310087A (zh) | 一种基于抽象语法树的网站后门检测方法和*** | |
CN111798344B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |