文件检验方法、装置、电子设备及存储介质与流程

文档序号:16786533发布日期:2019-02-01 19:25阅读:117来源:国知局
文件检验方法、装置、电子设备及存储介质与流程

本发明涉及数据处理领域,具体而言,涉及一种文件检验方法、装置、电子设备及存储介质。



背景技术:

企事业单位财务报销都要鉴别发票是否合法,那么怎样查验发票是否合法呢?一般采用以下两种方法:

方法一:在国税官方网站进行查验。

方法二:在发票的二维码上编码发票关键要素,通过app扫描进行验证。

开票软件生成二维码,按照二维码的格式,选择发票上的关键要素生成二维码;例如选择开票日期、含税总金额、不含税总金额、销方tin、购方tin、开票时间,发票签名7个要素,开票日期、含税总金额、不含税总金额、销方tin、购方tin、开票时间的格式,需要和发票开具时存储设备的格式和内容完全一致,开出的发票打印出来,票面上面就会有二维码。

研发一个发票二维码查验app,通过手机app扫描发票右上方的二维码,解析二维码里面的发票要素,并把发票要素上传到发票服务器,通过服务器端的程序和发票表中的发票数据进行对比,如果匹配,则说明发票合法,否则发票不合法。

然而,以上两种方式对发票的检查都依赖于服务器,也就是说,这两种方式都是在线校验发票,对离线下的发票检查无能为力。



技术实现要素:

鉴于此,本发明实施例的目的在于提供一种文件检验方法、装置、电子设备及存储介质,以解决上述问题。

第一方面,本发明实施例提供一种文件检验方法,应用于电子设备,所述方法包括:

获取待检测文件上的二维码信息;其中,所述二维码信息包括第一数字证书的签名信息;提取所述二维码信息中的所述签名信息;提取第二数字证书中的密钥,所述第二数字证书预先存储于所述电子设备中;利用所述密钥对所述签名信息进行解密,获得解密结果;根据所述解密结果确定所述第一数字证书是否为基于所述第二数字证书生成的证书;在为是时,判定所述待检测文件为合法文件。

基于第一方面,在一种可能的设计中,所述根据所述解密结果确定所述第一数字证书是否为基于所述第二数字证书生成的证书,包括:在所述解密结果用于表征解密失败时,确定所述第一数字证书不是基于所述第二数字证书生成的证书;在所述解密结果用于表征解密成功时,获取与所述签名信息对应的第一摘要值;基于所述第一摘要值,确定所述第一数字证书是否为基于所述第二数字证书生成的证书。

基于第一方面,在一种可能的设计中,基于所述第一摘要值,确定所述第一数字证书是否为基于所述第二数字证书生成的证书,包括:提取所述二维码信息中的元数据;基于所述元数据和预设规则,获取第二摘要值;在所述第一摘要值和所述第二摘要值相等时,确定所述第一数字证书为基于所述第二数字证书生成的证书;在所述第一摘要值和所述第二摘要值不等时,确定所述第一数字证书不是基于所述第二数字证书生成的证书。

基于第一方面,在一种可能的设计中,所述待检测文件为发票,所述获取待检测文件上的二维码信息,包括:获取发票上的二维码信息。

第二方面,本发明实施例提供一种文件检验装置,其特征在于,存储于电子设备,所述装置包括:获取单元,用于获取待检测文件上的二维码信息;其中,所述二维码信息包括第一数字证书的签名信息;第一提取单元,用于提取所述二维码信息中的所述签名信息;第二提取单元,用于提取第二数字证书中的密钥,所述第二数字证书预先存储于所述电子设备中;解密单元,用于利用所述密钥对所述签名信息进行解密,获得解密结果;判断单元,用于根据所述解密结果确定所述第一数字证书是否为基于所述第二数字证书生成的证书;确定单元,在为是时,判定所述待检测文件为合法文件。

基于第二方面,在一种可能的设计中,所述判断单元,包括:第一确定子单元,用于在所述解密结果用于表征解密失败时,确定所述第一数字证书不是基于所述第二数字证书生成的证书;第一摘要值获取单元,用于在所述解密结果用于表征解密成功时,获取与所述签名信息对应的第一摘要值;判断子单元,用于基于所述第一摘要值,确定所述第一数字证书是否为基于所述第二数字证书生成的证书。

基于第二方面,在一种可能的设计中,所述判断子单元,包括:元数据提取单元,用于提取所述二维码信息中的元数据;第二摘要值获取单元,用于基于所述元数据和预设规则,获取第二摘要值;第二确定子单元,用于在所述第一摘要值和所述第二摘要值相等时,确定所述第一数字证书为基于所述第二数字证书生成的证书;第三确定子单元,用于在所述第一摘要值和所述第二摘要值不等时,确定所述第一数字证书不是基于所述第二数字证书生成的证书。

基于第二方面,在一种可能的设计中,所述待检测文件为发票,所述获取单元,包括:获取发票上的二维码信息。

第三方面,本发明实施例提供一种电子设备,包括处理器以及与所述处理器连接的存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行第一方面所述的方法。

第四方面,本发明实施例提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面所述的方法。

与现有技术相比,本发明各实施例提出的文件检验方法、装置、电子设备及存储介质的有益效果是:获取待检测文件上的二维码信息;其中,所述二维码信息包括第一数字证书的签名信息;提取所述二维码信息中的所述签名信息;提取第二数字证书中的密钥,所述第二数字证书预先存储于所述电子设备中;利用所述密钥对所述签名信息进行解密,获得解密结果;根据所述解密结果确定所述第一数字证书是否为基于所述第二数字证书生成的证书;在为是时,判定所述待检测文件为合法文件。通过电子设备获取待检测文件的二维码的二维码信息,其中,所述二维码信息包括第一数字证书的签名信息,并利用证书链的方式对待检测文件进行检验,整个检验过程在没有网络条件下进行,无需依赖服务器。

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

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的电子设备的结构示意图;

图2为本发明第一实施例提供的文件检验方法的流程图;

图3为本发明第二实施例提供的文件检验装置的结构框图流程图;

图4为本发明第二实施例提供的文件检验装置中判断单元的结构框图。

图标:100-电子设备;110-存储器;120-存储控制器;130-处理器;140-外设接口;150-输入输出单元;160-音频单元;170-显示单元;410-获取单元;420-第一提取单元;430-第二提取单元;440-解密单元;450-判断单元;460-确定单元;451-第一确定子单元;452-第一摘要值获取单元;453-判断子单元。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本发明实施例提供一种电子设备100的结构示意图,所述电子设备100可以是个人电脑(personalcomputer,pc)、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)等。

如图1所示,所述电子设备100可以包括:图像分类装置、存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、音频单元160、显示单元170。

所述存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、音频单元160以及显示单元170各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述图像分类装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中或固化在客户端设备的操作系统(operatingsystem,os)中的软件功能模块。所述处理器130用于执行存储器110中存储的可执行模块,例如所述图像分类装置包括的软件功能模块或计算机程序。

其中,存储器110可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的电子设备100所执行的方法可以应用于处理器130中,或者由处理器130实现。

处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述外设接口140将各种输入/输出装置耦合至处理器130以及存储器110。在一些实施例中,外设接口140,处理器130以及存储控制器120可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

输入输出单元150用于提供给用户输入数据实现用户与电子设备100的交互。所述输入输出单元150可以是,但不限于,鼠标和键盘等。

音频单元160向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。

显示单元170在电子设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元170可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器130进行计算和处理。

第一实施例

请参照图2,图2为本发明第一实施例提供的一种文件检验方法的流程图,所述方法应用于如图1所示的电子设备100,下面将对图2所示的流程进行详细阐述,所述方法包括:

s100:获取待检测文件上的二维码信息;其中,所述二维码信息包括第一数字证书的签名信息。

其中,在所述待检测文件为发票时,s100包括:

获取发票上的二维码信息。

在实际实施过程中,电子设备100通过扫描发票上的二维码,获取发票上的二维码信息,其中,所述二维码信息包括第一数字证书信息,在实际实施过程中,电子设备100能够在没有网络的条件下扫描发票上的二维码。作为一种实施方式,电子设备100可以为具有文件检验软件app(application,app)的终端设备。

下面对发票上二维码的生成方式作阐述:

首先,ca(certificateauthority,ca)证书系统通过服务器根证书生成二级认证数字证书,然后,ca证书系统通过ca服务器生成二级认证数字证书的子一级数字证书(三级数字证书),在税控设备初始化时,通过设备初始化程序将三级数字证书灌装到税控设备中,其中,ca证书系统能够通过ca服务器生成二级认证数字证书的多个三级数字证书,不同的税控设备对应不同的三级数字证书,最后,开票端软件通过税控设备(税控盘)开票的时候,按照二维码的格式,把税控盘里面的三级数字证书编码到发票上面的二维码中。

在实际实施过程中,发票上的二维码中不仅要包含数字证书信息,还要包括:开票日期、含税总金额、不含税总金额、销方tin、购方tin、开票时间以及发票签名7个要素的信息,然而,二维码能够编码的数据量有限,因此,在本实施例中,ca证书系统通过服务器根证书生成二级认证数字证书为ecc证书,在同等安全条件下,ecc证书文件体积比rsa证书要小,继而避免了rsa证书数据量太大超出二维码编码数据量的问题。

在开票端软件通过税控盘进行发票开具时,会将税控盘里面的数字证书读取出来,再将发票的开票日期、含税总金额、不含税总金额、销方tin、购方tin、开票时间以及发票签名7个要素获取出来,并将这8个元素的16进制字符串拼接起来后编码成二维码,在发票开具的时候打印到发票上,其中,这8个元素的16进制字符串的拼接顺序不作限制,例如:

00020001010435643764633837653765313334356263613436320001004f39c34717c196ad3c

|数字证书|开票日期|含税总金额|不含税总金额|销方tin|购方tin|开票时间|发票签名|

作为一种实施方式,在发票开具式时,可以将二维码打印到发票的左上角区域。

s200:提取所述二维码信息中的所述签名信息。

所述电子设备100在获取到所述二维码信息后,电子设备100对所述二维码信息中的字符串进行解析,提取出第一数字证书信息,并基于所述第一数字证书信息,提取出所述第一数字证书信息的签名信息,其中,第一数字证书的签名信息为经过第一数字证书的签发者的私钥加密的签名密文。

s300:提取第二数字证书中的密钥,所述第二数字证书预先存储于所述电子设备100中。

提取第二数字证书的公钥,作为一种实施方式,在所述电子设备100为具有文件检验app的终端设备时,所述第二数字证书预先存储于文件检验app内。

s400:利用所述密钥对所述签名信息进行解密,获得解密结果。

在没有网络的条件下,电子设备100利用从第二数字证书中提取出的公钥对所述签名信息进行解密,由于所述签名信息是由证书签发者的私钥加密的,签名者的私钥和公钥是配对的,利用签发者的私钥加密,加密后的信息就能利用签发者的公钥对其解密,若所述第一数字证书为基于所述第二数字证书生成的证书,那么,利用所述第二数字证书的公钥就能实现对所述签名信息解密,反之,若所述第一数字证书不是基于所述第二数字证书生成的证书,那么,利用所述第二数字证书的公钥就不能实现对所述签名信息解密。

s500:根据所述解密结果确定所述第一数字证书是否为基于所述第二数字证书生成的证书。

作为一种实施方式,s500包括:

s510:在所述解密结果用于表征解密失败时,确定所述第一数字证书不是基于所述第二数字证书生成的证书。

在所述密钥无法对所述签名信息解密时,即解密所用的公钥和加密所用的私钥无法配对时,确定所述第一数字证书不是基于所述第二数字证书生成的证书。

s520:在所述解密结果用于表征解密成功时,获取与所述签名信息对应的第一摘要值。

在利用所述密钥对所述签名信息解密,并且解密成功时,获取与所述签名信息对应的第一摘要值。作为一种实施方式,第一数字证书的签发步骤为:

第一步,signing阶段,首先撰写证书的元数据信息:签发人(issuer)、地址、签发时间、过期失效等;当然,这些信息中还包含证书持有者(owner)的基本信息,例如owner的dn(dnsname,即证书生效的域名),owner的公钥等基本信息;

第二步,通过hash算法将元数据信息摘要提取出来。

第三步,hash摘要通过issuer(ca)私钥进行非对称加密,生成一个签名密文;

第四步,将签名密文attach到文件证书上,使之变成一个经过签名证书。

s530:基于所述第一摘要值,确定所述第一数字证书是否为基于所述第二数字证书生成的数字证书。

作为一种实施方式,s530包括:

提取所述二维码信息中的元数据。

其中,所述第一数字证书包括:元数据;在没有网络的条件下,对第一数字证书进行解压,解压后提取所述第一数字证书的元数据。

基于所述元数据和预设规则,获取第二摘要值。

其中,在本实施例中,所述预设规则为hash算法,对所述元数据利用hash算法计算得到第二摘要值。

在所述第一摘要值和所述第二摘要值相等时,确定所述第一数字证书为基于所述第二数字证书生成的证书。

在所述第一摘要值和所述第二摘要值不等时,确定所述第一数字证书不是基于所述第二数字证书生成的证书。

s600:在为是时,判定所述待检测文件为合法文件。

在所述第一数字证书是基于所述第二数字证书生成的证书时,判定所述待检测文件为合法文件。

同理,在所述第一数字证书不是基于所述第二数字证书生成的证书时,判定所述待检测文件为非法文件。

在没有网络的条件下,利用证书链的方式来判定所述第一数字证书是否为基于所述第二数字证书生成的证书,实现对发票的合法性进行检验,无需依赖服务器,实现了线下检验发票合法性。

第二实施例

请参照图3,图3是本发明第二实施例提供的一种文件检验装置的结构框图。所述装置存储于如图1所述的电子设备100,下面将对图3所示的结构框图进行阐述,所示装置包括:

获取单元410,用于获取待检测文件上的二维码信息;其中,所述二维码信息包括第一数字证书的签名信息。

第一提取单元420,用于提取所述二维码信息中的所述签名信息。

第二提取单元430,用于提取第二数字证书中的密钥,所述第二数字证书预先存储于所述电子设备100中。

解密单元440,用于利用所述密钥对所述签名信息进行解密,获得解密结果。

判断单元450,用于根据所述解密结果确定所述第一数字证书是否为基于所述第二数字证书生成的证书。

确定单元460,在为是时,判定所述待检测文件为合法文件。

作为一种实施方式,请参照图4,所述判断单元450,包括:

第一确定子单元451,用于在所述解密结果用于表征解密失败时,确定所述第一数字证书不是基于所述第二数字证书生成的证书。

第一摘要值获取单元452,用于在所述解密结果用于表征解密成功时,获取与所述签名信息对应的第一摘要值。

判断子单元453,用于基于所述第一摘要值,确定所述第一数字证书是否为基于所述第二数字证书生成的证书。

作为一种实施方式,所述判断子单元453,包括:

元数据提取单元,用于提取所述二维码信息中的元数据。

第二摘要值获取单元,用于基于所述元数据和预设规则,获取第二摘要值。

第二确定子单元,用于在所述第一摘要值和所述第二摘要值相等时,确定所述第一数字证书为基于所述第二数字证书生成的证书。

第三确定子单元,用于在所述第一摘要值和所述第二摘要值不等时,确定所述第一数字证书不是基于所述第二数字证书生成的证书。

作为一种实施方式,所述待检测文件为发票,所述获取单元410,包括:

获取发票上的二维码信息。

本实施例对文件检验装置的各功能模块实现各自功能的过程,请参见上述图2所示实施例中描述的内容,此处不再赘述。

此外,本发明实施例还提供了一种存储介质,在该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本发明任一项实施方式所提供的文件检验方法。

综上所述,本发明各实施例提出的文件检验方法、装置、电子设备及存储介质的有益效果是:获取待检测文件上的二维码信息;其中,所述二维码信息包括第一数字证书的签名信息;提取所述二维码信息中的所述签名信息;提取第二数字证书中的密钥,所述第二数字证书预先存储于所述电子设备中;利用所述密钥对所述签名信息进行解密,获得解密结果;根据所述解密结果确定所述第一数字证书是否为基于所述第二数字证书生成的证书;在为是时,判定所述待检测文件为合法文件。通过电子设备获取待检测文件的二维码的二维码信息,其中,所述二维码信息包括第一数字证书的签名信息,并利用证书链的方式对待检测文件进行检验,整个检验过程在没有网络条件下进行,无需依赖服务器。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

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