CN113537985A - 数据验证方法及装置 - Google Patents

数据验证方法及装置 Download PDF

Info

Publication number
CN113537985A
CN113537985A CN202110805688.0A CN202110805688A CN113537985A CN 113537985 A CN113537985 A CN 113537985A CN 202110805688 A CN202110805688 A CN 202110805688A CN 113537985 A CN113537985 A CN 113537985A
Authority
CN
China
Prior art keywords
transaction
form data
abstract
field
data
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.)
Granted
Application number
CN202110805688.0A
Other languages
English (en)
Other versions
CN113537985B (zh
Inventor
邵瑜
位永康
黄斌
范磊
于海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202110805688.0A priority Critical patent/CN113537985B/zh
Publication of CN113537985A publication Critical patent/CN113537985A/zh
Application granted granted Critical
Publication of CN113537985B publication Critical patent/CN113537985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种数据验证方法及装置,该方法包括:向服务器发送交易请求,并接收服务器基于所述交易请求返回的交易页面和证书信息;调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;向服务器发送经过数字签名的交易摘要和所述表单数据,以使所述服务器对所述表单数据进行所述摘要算法处理获得第一交易摘要,以及根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。本申请提供的方法,无需对表单数据进行拆分并分别进行数字签名和验证,有效简化数据验证处理流程,提高验证效率。

Description

数据验证方法及装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据验证方法及装置。
背景技术
随着互联网金融的蓬勃发展,国内大型商业银行中,传统的网点柜面经营模式正在加速向数字化、线上化转型,越来越多的银行柜面业务被搬到了互联网上,通过网上银行系统直接面向客户提供金融服务。
客户可以通过浏览器登录网上银行系统,办理付款、收款、贷款、投资、理财等金融业务。针对在农行网上银行系统办理业务的实际场景中,客户使用浏览器登录农行网上银行系统,在办理业务的过程中,往往需要客户将安全认证设备,例如K宝,连接至电脑的USB端口进行数字签名处理和验证,以保证客户身份的真实性、表单数据的完整性以及抗抵赖性。然而,实际应用中,安全认证设备的处理能力是有限的,例如二代K宝能够处理的最大表单数据长度值为1024Byte,对于长度值超过1024Byte的表单数据无法进行处理。但是在某些应用场景下,表单数据长度值会超过安全认证设备的数据处理上限值,导致安全认证设备无法对这些场景下的表单数据进行数字签名处理。
针对这种情况,存在一种处理方案包括,浏览器将该次业务进行流程拆分,以实现对该次业务中的表单数据进行拆分,再针对拆分出的多个表单数据分多次交由安全认证设备进行数字签名处理。
所以,上述方案中,由于需要对拆分出的多个表单数据进行多次数据验证,从而导致数据验证流程繁琐,进而导致数据验证处理效率较低。
发明内容
本申请实施例提供一种数据验证方法及装置,用以解决现有技术中数据验证流程繁琐,进而导致数据验证处理效率较低的技术问题。
第一方面,本申请实施例提供一种数据验证方法,包括:向服务器发送交易请求,并接收服务器基于所述交易请求返回的交易页面和证书信息;调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;向服务器发送经过数字签名的交易摘要和所述表单数据,以使所述服务器对所述表单数据进行所述摘要算法处理获得第一交易摘要,以及根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
可选地,如上所述的方法,所述调用预先封装的组件,从所述交易页面中获取表单数据,包括:调用预先封装的组件中的makeSummary方法,从所述交易页面下各类型的HTML标签中,分别读取出各表单的表单数据字段;所述进行摘要算法处理,生成交易摘要,包括:遍历所述各表单的表单数据字段,并按照预定的分组排序策略,将所述各表单的表单数据字段进行分组排序,获得表单数据二维数组;其中,所述分组排序策略包括:针对首次出现的表单数据字段,将该表单数据字段放置在一个新建的分组内,并将该新建的分组放置在表单数据二维数组的末尾;针对非首次出现的表单数据字段,将该表单数据字段放置在与其为同名字段的表单数据字段所在分组内的末尾;读取所述表单数据二维数组中每个表单数据字段的字段值,并按照各表单数据字段在所述表单数据二维数组中的先后顺序,对所述各表单数据字段的字段值进行拼接;对拼接获得的数据进行摘要算法处理,生成交易摘要。
可选地,如上所述的方法,所述组件包括用于进行组件初始化的initModule方法;所述调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要之前,还包括:接收服务器基于所述交易请求返回的初始化字符串,所述初始化字符串包括各表单对应的排除字段的名称;根据初始化字符串,通过基于initModule方法执行组件的初始化,解析出各表单对应的排除字段的名称;所述读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:删除所述表单数据二维数组中,字段名称与所述各表单对应的排除字段的名称一致的表单数据字段。
可选地,如上所述的方法,所述调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要,包括:调用预先封装的组件中的makeSummary方法,以使所述makeSummary方法从开源算法库中调用摘要算法;所述makeSummary方法根据所述表单数据,采用所述摘要算法进行摘要算法处理,生成交易摘要。
第二方面,本申请实施例提供一种数据验证方法,包括:接收浏览器发送的交易请求,并基于所述交易请求向浏览器返回交易页面和证书信息,以使所述浏览器调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;以及,将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;接收所述浏览器发送的经过数字签名的交易摘要和所述表单数据;根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,并根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
可选地,如上所述的方法,所述表单数据包括浏览器调用预先封装的组件中的makeSummary方法,从所述交易页面下各类型的HTML标签中,分别读取的各表单的表单数据字段;所述表单数据进行所述摘要算法处理,获得第一交易摘要,包括:遍历所述各表单的表单数据字段,并按照预定的分组排序策略,将所述各表单的表单数据字段进行分组排序,获得表单数据二维数组;其中,所述分组排序策略包括:针对首次出现的表单数据字段,将该表单数据字段放置在一个新建的分组内,并将该新建的分组放置在表单数据二维数组的末尾;针对非首次出现的表单数据字段,将该表单数据字段放置在与其为同名字段的表单数据字段所在分组内的末尾;读取所述表单数据二维数组中每个表单数据字段的字段值,并按照各表单数据字段在所述表单数据二维数组中的先后顺序,对所述各表单数据字段的字段值进行拼接;对拼接获得的数据进行所述摘要算法处理,获得第一交易摘要。
可选地,如上所述的方法,所述根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要之前,还包括:获取第一字符串,所述第一字符串包括各表单对应的排除字段的名称;根据第一字符串,解析出各表单对应的排除字段的名称;所述读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:删除所述表单数据二维数组中,字段名称与所述各表单对应的排除字段的名称一致的表单数据字段。
可选地,如上所述的方法,所述根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,包括:根据所述表单数据,调用本地的摘要算法进行摘要算法处理,获得第一交易摘要。
第三方面,本申请实施例提供一种数据验证装置,应用于浏览器,包括:收发模块,用于向服务器发送交易请求,并接收服务器基于所述交易请求返回的交易页面和证书信息;生成模块,用于调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;收发模块,还用于将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;收发模块,还用于向服务器发送经过数字签名的交易摘要和所述表单数据,以使所述服务器对所述表单数据进行所述摘要算法处理获得第一交易摘要,以及根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
第四方面,本申请实施例提供一种数据验证装置,应用于服务器,包括:接收模块,用于接收浏览器发送的交易请求,并基于所述交易请求向浏览器返回交易页面和证书信息,以使所述浏览器调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;以及,将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;接收模块,还用于接收所述浏览器发送的经过数字签名的交易摘要和所述表单数据;验证模块,用于根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,并根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
第五方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的数据验证方法。
第六方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第二方面所述的数据验证方法。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的数据验证方法。
第八方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第二方面所述的数据验证方法。
第九方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的数据验证方法。
第十方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第二方面所述的数据验证方法。
第十一方面,本申请实施例提供一种数据验证系统,包括:用于执行如第一方面所述方法的浏览器、以及用于执行如第二方面所述方法的服务器。
本申请实施例提供的数据验证方法及装置,浏览器向服务器发送交易请求获得交易页面,从交易页面中获取表单数据,对表单数据进行摘要算法处理获得交易摘要,并对交易摘要进行数字签名处理后附带未进行签名的表单数据一并发送至服务器,服务器根据经过数字签名的交易摘要与基于表单数据生成的第一交易摘要进行验证。本方案中,将表单数据转换为满足数字签名所需的数据长度要求的交易摘要,以对交易摘要进行数字签名,相应的,服务器可以基于经过数字签名的交易摘要和基于表单数据生成的第一交易摘要进行验证,无需对表单数据进行拆分并分别进行数字签名和验证,有效简化数据验证处理流程,提高验证效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的一种交互场景示意图;
图2为本申请实施例一提供的数据验证方法的流程示意图;
图3为本申请实施例二提供的数据验证方法的流程示意图;
图4为一个自定义的XML文件格式示意图;
图5为摘要生成组件的结构示意图;
图6为摘要生成组件工作流程图;
图7为本申请实施例三提供的数据验证方法的流程示意图;
图8为本申请实施例四提供的数据验证方法的流程示意图;
图9为本申请实施例五提供的数据验证装置的结构示意图;
图10为本申请实施例六提供的数据验证装置的结构示意图;
图11为本申请实施例七提供的一种电子设备的结构示意图;
图12为本申请实施例八提供的一种电子设备的结构示意图;
图13为交易摘要的签名验签流程图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
HTTP:超文本传输协议,是互联网上应用最为广泛的一种网络传输协议,它基于TCP/IP通信协议详细规定了浏览器和服务器之间互相传递数据的规则。它是互联网交换信息的基础,允许将HTML(超文本标记语言)文档从Web服务器传输到Web浏览器;
HTTPS:超文本传输安全协议,是在HTTP的基础上加入TLS/SSL协议构建的可进行加密传输、身份认证的以安全为目标的网络传输协议,主要通过数字证书、加密算法、非对称密钥技术完成互联网数据加密传输,实现互联网传输安全保护;
TLS/SSL:SSL(安全套接层)协议及其继任者TLS(安全传输层)协议,是为互联网通信提供安全及数据完整性的一种安全协议,TLS与SSL在传输层与应用层之间对网络连接进行加密;
数字证书:从本质上来讲是一种电子文档。本申请中的数字证书,是指由银行证书授权中心(CA中心)为银行客户所颁发的一种较为权威与公正的证书,用于在客户与银行的互联网通信过程中对客户身份信息进行数字认证;
数字签名:是只有数字信息的发送者,本申请中指银行客户,才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术,用于鉴别数字信息的真伪;
SHA256:一种安全散列算法,能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。举例来说,如果输入的数字消息不同,它们对应到不同字符串的几率就会比较高;
XML:可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机可以处理标记包含的信息。XML可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的元语言;
HTML:超文本标记语言,是一种标识性的用于建立网页文件的语言。它包含一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等,并可通过浏览器显示出效果;
JavaScript:最早于1995年由Netscape公司首次发布,是一种轻量级、解释型的高级编程语言。它基于原型、多范式、动态编译的特点,并且支持面向对象、命令式和声明式风格,使其被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更加丰富流畅的交互效果。
随着互联网金融的蓬勃发展,国内大型商业银行中,传统的网点柜面经营模式正在加速向数字化、线上化转型,越来越多的银行柜面业务被搬到了互联网上,通过网上银行系统直接面向客户提供金融服务。客户可以通过浏览器登录网上银行系统,办理付款、收款、贷款、投资、理财等金融业务。客户首次使用网上银行系统办理业务前,一般需要先去银行网点签约开通网上银行业务,领取银行发放的USBkey(硬件数字证书载体)设备,该设备由专业的安全厂商生产,内置智能芯片,用于保存数字证书,执行数字签名加密计算,并有专用安全区来保存数字证书私钥。各家银行对此类设备的称呼不同,例如工商银行将它称为U盾,农业银行将它称为K宝。客户还需要登陆银行网站下载数字证书至K宝中,同时设置好K宝密码。其中,银行会通过其自建的公钥基础设施PKI体系中的CA认证机构为客户颁发数字证书供客户下载,并生成数字证书私钥存储在K宝中。银行保存有数字证书的公钥,后续可通过公钥对经过数字签名处理后的表单数据进行解密及验证。
下面结合实际应用场景,对数字签名以及验证过程进行介绍。如图1所示,为本申请提供的一种交互场景示意图。图中包括:浏览器和服务器,示例性地,在客户需要办理相应业务时,使用浏览器登陆网上银行系统,然后,选择需要办理的业务,以向服务器发起交易页面请求,服务器生成描述交易页面的HTML文件返回给浏览器,浏览器加载HTML后显示交易页面,供客户浏览操作。当需要办理的业务涉及账户资金划转等关键业务时,浏览器会向K宝发送交易页面对应的表单数据,以使K宝对表单数据进行数字签名处理,处理完成后,浏览器将经过数字签名处理的表单数据(签名数据)发送给服务器,以使服务器对表单数据进行验证,若验证结果为成功,则允许进行业务办理;若验证结果为失败,则不允许进行业务办理。从而,可保证业务办理的安全性。
然而,实际应用中,K宝处理能力是有限的,它不能够处理较长的表单数据,导致K宝无法对较长的表单数据进行数字签名。针对这种情况,在一些相关技术中,一般会将该次业务进行流程拆分,以实现对该次业务中的表单数据进行拆分,再针对拆分出的多个表单数据分多次进行数字签名处理。上述方案中,由于需要对拆分出的多个表单数据进行多次数字签名,相应地,就需要进行多次数据验证,从而导致数据验证流程繁琐,进而导致数据验证处理效率较低。并且,上述相关技术可能不适用于某些特殊场景,比如针对有些业务类型无法进行流程拆分,比如,某个理财业务只包括一个业务流程,不能对其拆分,则基于上述相关技术无法实现对表单数据进行数字签名,导致无法验证。
本申请提供的数据验证方法及装置,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
实施例一
图2为本申请实施例一提供的数据验证方法的流程示意图。如图2所示,该方法包括:
S101、向服务器发送交易请求,并接收服务器基于所述交易请求返回的交易页面和证书信息。
其中,交易请求中包括客户需要访问的交易页面的信息。相应地,浏览器向服务器发送交易请求,服务器根据接收到的交易请求中的交易页面的信息向浏览器返回交易页面。这里的交易请求可用于请求某类型的业务办理,例如包括但不限于查询、转账、付款、购买理财产品等。
结合实际场景举例来说,在客户需要办理相应业务时,使用浏览器登陆网上银行系统,然后,从页面菜单中选择需要办理的业务,以向服务器发起交易页面请求,服务器接收到该交易请求后,根据交易请求中的交易页面的信息生成描述交易页面的HTML文件返回给浏览器,浏览器加载HTML后显示交易页面,供客户浏览操作。其中,所述描述交易页面的HTML文件中还包括证书信息,该证书信息在后续数字签名步骤和验证步骤中需要用到。
S102、调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要。
其中,表单数据一般包括多个要素,例如,在转账交易中,表单数据通常包括:转出账号、转入账号、金额、币种、时间、操作员号和客户号。所述摘要算法可以为开源算法库crypto-js的CryptoJS组件提供的SHA256算法,或者还可以为其它具有将表单数据转换为交易摘要功能的算法,本实施例中对此不作限定。
实际应用中,在一个示例中,所述调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要,包括:调用预先封装的组件中的makeSummary方法,以使所述makeSummary方法从开源算法库中调用摘要算法;所述makeSummary方法根据所述表单数据,采用所述摘要算法进行摘要算法处理,生成交易摘要。本实施方式中,将表单数据转换为交易摘要,可保证后续数字签名的步骤顺利进行。
S103、将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名。
其中,安全认证设备包括:K宝、U盾等具备安全认证功能的设备。证书信息的内容为证书的编号。
实际应用中,以农行应用场景为例,网上银行系统在浏览器端的应用程序会将交易摘要和证书信息发送至K宝,并发起数字签名请求;K宝在接收到数字签名请求后,便会弹出密码键盘供客户输入预设的K宝密码;在客户输入正确密码后,K宝根据证书信息选取相匹配的数字证书的私钥,对交易摘要进行加密计算,获得密文形式的签名数据,就完成了数字签名过程。
S104、向服务器发送经过数字签名的交易摘要和所述表单数据,以使所述服务器对所述表单数据进行所述摘要算法处理获得第一交易摘要,以及根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
实际应用中,作为一种示例,在S103中获得签名数据后,K宝会将签名数据返回给网上银行系统在浏览器端的应用程序,该应用程序通过HTTPS安全传输通道将签名数据和交易页面中的表单数据传送至服务器。然后,服务器使用数字证书公钥解密签名数据,以从中解析出证书信息验证客户身份,验证通过后,服务器再从签名数据中解析出交易摘要;下一步,服务器对应用程序传输过来的交易页面中的表单数据进行摘要算法处理,获得第一交易摘要;最后,将从签名数据中解析出的交易摘要与第一交易摘要进行对比,若二者是一致的,则验证结果为成功,允许进行业务办理;若二者不一致,则验证结果为失败,不允许进行业务办理。
本实施例提供的数据验证方法,通过浏览器向服务器发送交易请求获得交易页面,从交易页面中获取表单数据,对表单数据进行摘要算法处理获得交易摘要,并对交易摘要进行数字签名后附带未进行签名的表单数据一并发送至服务器,服务器根据经过数字签名的交易摘要与基于表单数据生成的第一交易摘要进行验证。本方案中,将表单数据转换为满足数字签名所需的数据长度要求的交易摘要,以对交易摘要进行数字签名,相应的,服务器可以基于经过数字签名的交易摘要和基于表单数据生成的第一交易摘要进行验证,无需对表单数据进行拆分并分别进行数字签名和验证,有效简化数据验证处理流程,提高验证效率。
实施例二
图3为本申请实施例二提供的数据验证方法的流程示意图,如图3所示,在实施例一的基础上,所述调用预先封装的组件,从所述交易页面中获取表单数据,包括:
S201、调用预先封装的组件中的makeSummary方法,从所述交易页面下各类型的HTML标签中,分别读取出各表单的表单数据字段。
对应的,S102中所述进行摘要算法处理,生成交易摘要,包括:S202、遍历所述各表单的表单数据字段,并按照预定的分组排序策略,将所述各表单的表单数据字段进行分组排序,获得表单数据二维数组;其中,所述分组排序策略包括:针对首次出现的表单数据字段,将该表单数据字段放置在一个新建的分组内,并将该新建的分组放置在表单数据二维数组的末尾;针对非首次出现的表单数据字段,将该表单数据字段放置在与其为同名字段的表单数据字段所在分组内的末尾。
S203、读取所述表单数据二维数组中每个表单数据字段的字段值,并按照各表单数据字段在所述表单数据二维数组中的先后顺序,对所述各表单数据字段的字段值进行拼接。
S204、对拼接获得的数据进行摘要算法处理,生成交易摘要。
实际应用中,摘要算法支持的对象通常为字符串,故本实施例主要对表单数据进行前期处理以支持摘要算法的计算,获得交易摘要。
结合实际场景作为示例,网上银行系统普遍基于Browser/Server,即浏览器/服务器架构设计开发,浏览器端采用HTML技术提供交易页面供用户进行浏览或是互动操作。相应的,表单数据通常以HTML表单字段的形式提交给银行后台服务器进行处理,其中,表单字段往往不止一项,而是多项,并且分散存储于不同类型的HTML标签中。例如,表示下拉列表的标签(HTML中表示为<select>)、表示单选按钮的标签(HTML中表示为<input type=”radio”>)、表示复选框的标签(HTML中表示为<input type=”checkbox”>)、表示文本输入框的标签(HTML中表示为<input type=”text”>)等等。在一个示例中,可以编写JavaScript脚本,预先将HTML页面里各种类型的标签中的表单数据字段逐个读取出来。后续需要对这些表单数据字段拼接成一个字符串,用以进行摘要算法计算。
具体的,在表单数据字段的拼接过程中,不同的拼接顺序得到的字符串不同,并且基于摘要算法对不同字符串进行计算得到的交易摘要也不同。所以,需要保证浏览器对表单数据字段的排序顺序与服务器在计算第一交易摘要的过程中对表单数据字段的排序顺序是一致的,否则,将会导致验证过程出现误判。举例来说,假设某一HTML表单中包括多个同名字段,有表示账号的acc字段,有表示金额的amt字段,字段出现的先后顺序为<inputname=“acc”value=“111”/>,<input name=“amt”value=“9.9”/>,<input name=“acc”value=“222”/>,<input name=“amt”value=“8.8”/>。假设按照字段出现的先后顺序进行排序,浏览器获取到的表单数据的字符串为“1119.92228.8”,而在服务器接收浏览器发送的表单数据时,服务器会对该表单数据的同名字段进行分组排序处理,即将同名字段放在一起,并按照同名字段出现的先后顺序确定同名字段的排序位置,则获取到的表单数据的字符串为“1112229.98.8”。所以,在后续的验证步骤中,会导致即使在经过数字签名的表单数据传输至服务器的过程中没有被篡改,也会验证失败的情况,不利于客户进行业务办理。故为了保证数据验证的准确性,为浏览器和服务器提供一致的上述分组排序策略。
仍结合上述举例,按照服务器的分组排序策略,第一个出现的字段的字段名称为acc,则将其对应的字段值“111”放在字符串的最前面的位置,得到字符串“111”;接下来,第二个出现的字段的字段名称为amt,与第一个出现的字段不是同名字段,则将其对应的字段值“9.9”放在上一步得到的字符串的后面,得到字符串“1119.9”;下一步,第三个出现的字段的字段名称为acc,与第一个出现的字段是同名字段,则将其对应的字段值“222”放在字段值“111”的后面,得到字符串“1112229.9”;最后一个出现的字段的字段名称为amt,与第二个出现的字段是同名字段,所以,将其放在字段值“9.9”的后面,最终得到字符串“1112229.98.8”,与服务器获取到的字符串一致。
本实施方式中,浏览器和服务器在进行摘要算法前,采用一致的分组排序策略进行字段拼接,保证两者获得的用于进行摘要算法的数据一致,从而避免因摘要算法的计算对象不同导致数据验证时的误判,提高数据验证的有效性和准确性。
实际应用中,浏览器中的HTML表单中的字段都会随着表单的提交发送至服务器。通常情况下,这些字段都是服务器应用程序需要使用的数据,服务器会全部接收这些字段。但在某些情况下,表单中的某些字段对服务器应用程序来说是多余的,服务器会对这些多余字段进行过滤处理。因此服务器在计算交易摘要前的处理步骤中,最终获得的表单数据字段少于浏览器中的HTML表单中的表单数据字段,二者拼接出来的表单数据的字符串就会不一致,计算出来的摘要也就不一致了。所以,在对表单数据字段进行分组排序之后,还需要删除对服务器来说多余的字段以保证浏览器和服务器用于生成交易摘要的表单数据是一致的。
相应的,在一个示例中,在前述实施方式的基础上,S102中所述调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要之前,还包括:接收服务器基于所述交易请求返回的初始化字符串,所述初始化字符串包括各表单对应的排除字段的名称;根据初始化字符串,通过基于initModule方法执行组件的初始化,解析出各表单对应的排除字段的名称;对应的,S203中所述读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:删除所述表单数据二维数组中,字段名称与所述各表单对应的排除字段的名称一致的表单数据字段。
其中,本领域技术人员可在服务器中预先针对各交易页面中的表单配置对应的排除字段的名称,所以,在服务器接收到交易请求后,便可根据该交易请求确定交易请求对应的交易页面,并将该交易页面中表单的排除字段的名称发送至浏览器。
具体地,网上银行系统在浏览器端的应用程序接收服务器返回的初始化字符串,基于initModule方法执行组件的初始化,从初始化字符串中解析出各表单对应的排除字段的名称。进而,在上一实施方式中的读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:遍历表单数据二维数组中的字段,针对每一个字段,确定该字段的名称是否与排除字段的名称一致,若结果为一致,则将其删除;若结果为不一致,则将其保留。
其中,可通过XML文件配置排除字段的名称。如图4所示,为一个自定义的XML文件格式示意图。需要说明的是,每个表单都对应一个动作,比如,“删除”动作、“录入”动作等,则该XML文件表示的是单笔“发送”动作对应表单需要排除字段的名称,比如,图中的“currency”、“cmp1”、“cmp2”等即为需要排除字段的名称。采用XML文件配置排除字段的名称,操作简单,为本领域技术人员的开发工作提供了便捷。
本实施方式,通过对表单数据字段中的多余字段进行删除,可以减少验证时的误判情况,从而保障客户顺利办理业务。
实际应用中,可以基于组件化开发,将浏览器端的交易摘要生成过程封装成一个组件,使用JavaScript脚本编程语言编码实现。该组件对外提供生成摘要的方法,供各个交易页面的应用程序调用。
如图5所示,为摘要生成组件的结构示意图,图中包括Summary组件和CryptoJS组件。摘要生成组件Summary对外提供initModule方法和makeSummary方法,其中,initModule方法用于执行组件的初始化,makeSummary方法用于调用预先封装的组件进行摘要算法处理,生成交易摘要。
下面结合如图6所示的摘要生成组件工作流程图,来详细介绍摘要生成组件的工作流程。在一个示例中,首先,解析输入字符串(包括排除字段的字符串),初始化组件内部数组exclutions(将排除字段保存在exclutions中);然后,根据formId找到对应表单获取其所包含的字段集合;再按表单字段出现的先后顺序,将同名字段分组合并在一起,本步骤对应前述实施方式中的对表单数据字段进行分组排序的方案;下一步,遍历分组后的表单字段集合,结合exclutions排除项数组过滤表单字段,本步骤对应前述实施方式中的删除多余字段的方案;再下一步,对过滤后的字段,根据字段类型读取字段值,拼接表单数据字符串;最后,调用CryptoJS组件的SHA256方法,计算得到表单数据的摘要。
本实施方式中,通过封装摘要生成组件,可以支持无需开发新的浏览器也可将本方案提供的数据验证方法应用至各类浏览器中,提高数据验证方法的适用性。
本实施例中,通过在将表单数据转换为交易摘要之前,对表单数据字段进行分组排序,可以减少验证时的误判情况,从而保障客户顺利办理业务。
实施例三
图7为本申请实施例三提供的数据验证方法的流程示意图。如图7所示,该方法应用于服务器,该方法包括:
S301、接收浏览器发送的交易请求,并基于所述交易请求向浏览器返回交易页面和证书信息,以使所述浏览器调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;以及,将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名。
其中,交易请求中包括客户需要访问的交易页面的信息。相应地,浏览器向服务器发送交易请求,服务器根据接收到的交易请求中的交易页面的信息向浏览器返回交易页面。这里的交易请求可用于请求某类型的业务办理,例如包括但不限于查询、转账、付款、购买理财产品等。
在一个示例中,在客户需要办理相应业务时,通过浏览器向服务器发送交易页面请求,则服务器接收浏览器发送的交易请求;根据交易请求中的交易页面的信息生成描述交易页面的HTML文件返回给浏览器。其中,证书信息与交易页面一同被返回给浏览器,以供后续步骤使用。
S302、接收所述浏览器发送的经过数字签名的交易摘要和所述表单数据。
其中,表单数据一般包括多个要素,例如,在转账交易中,表单数据通常包括:转出账号、转入账号、金额、币种、时间、操作员号和客户号。
实际应用中,作为一种示例,在S301中获得签名数据后,K宝会将签名数据返回给网上银行系统在浏览器端的应用程序,该应用程序通过HTTPS安全传输通道将签名数据和交易页面中的表单数据传送至服务器,服务器便可以接收到经过数字签名的交易摘要和表单数据。
S303、根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,并根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
在一个示例中,在进行算法处理之前,服务器首先使用数字证书公钥解密签名数据,以从中解析出证书信息验证客户身份,验证通过后,服务器再从签名数据中解析出交易摘要;然后,服务器对应用程序传输过来的交易页面中的表单数据进行摘要算法处理,获得第一交易摘要;最后,将从签名数据中解析出的交易摘要与第一交易摘要进行对比,若二者是一致的,则验证结果为成功,允许进行业务办理;若二者不一致,则验证结果为失败,不允许进行业务办理。
需要说明的是,实际应用中,获得第一交易摘要时,采用的摘要算法可以为基于微软框架的SHA256 Crypto Service Provider组件提供的,在一个示例中,所述根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,包括:根据所述表单数据,调用本地的摘要算法进行摘要算法处理,获得第一交易摘要。本实施方式中,采用的摘要算法与实施例一或者实施例二中采用的SHA256算法处理的效果是一致的,所以,采用本实施方式提供的摘要算法可以提高验证的准确性。
本实施例中,通过接收浏览器发送的交易请求,并向浏览器返回交易页面和证书信息,接收浏览器发送的经过数字签名的交易摘要和表单数据,对表单数据进行摘要算法处理,获得第一交易摘要,根据第一交易摘要和经过数字签名的交易摘要进行验证,可以有效简化数据验证处理流程,提高验证效率。
实施例四
图8为本申请实施例四提供的数据验证方法的流程示意图,如图8所示,在实施例三的基础上,所述表单数据包括浏览器基于预先编写的脚本,从所述交易页面下各类型的HTML标签对应的数据中,分别读取的各表单的表单数据字段;
对应的,S303中所述根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,包括:
S401、遍历所述各表单的表单数据字段,并按照预定的分组排序策略,将所述各表单的表单数据字段进行分组排序,获得表单数据二维数组;其中,所述分组排序策略包括:针对首次出现的表单数据字段,将该表单数据字段放置在一个新建的分组内,并将该新建的分组放置在表单数据二维数组的末尾;针对非首次出现的表单数据字段,将该表单数据字段放置在与其为同名字段的表单数据字段所在分组内的末尾。
S402、读取所述表单数据二维数组中每个表单数据字段的字段值,并按照各表单数据字段在所述表单数据二维数组中的先后顺序,对所述各表单数据字段的字段值进行拼接。
S403、对拼接获得的数据进行所述摘要算法处理,获得第一交易摘要。
实际应用中,摘要算法支持的对象通常为字符串,故本实施例中,还需要对表单数据进行前期处理以支持摘要算法的计算,获得交易摘要。
结合实际场景作为示例,网上银行系统普遍基于Browser/Server,即浏览器/服务器架构设计开发,浏览器端采用HTML技术提供交易页面供用户进行浏览或是互动操作。相应的,表单数据通常以HTML表单字段的形式提交给银行后台服务器进行处理,其中,表单字段往往不止一项,而是多项,并且分散存储于不同类型的HTML标签中。例如,表示下拉列表的标签(HTML中表示为<select>)、表示单选按钮的标签(HTML中表示为<input type=”radio”>)、表示复选框的标签(HTML中表示为<input type=”checkbox”>)、表示文本输入框的标签(HTML中表示为<input type=”text”>)等等。在一个示例中,可以编写JavaScript脚本,预先将HTML页面里各种类型的标签中的表单数据字段逐个读取出来。后续需要将这些表单数据字段拼接成一个字符串,用以进行摘要算法处理。
具体的,在表单数据字段的拼接过程中,不同的拼接顺序得到的字符串不同,并且基于摘要算法对不同字符串进行计算得到的交易摘要也不同。所以,服务器可基于微软框架提供的分组排序策略,对表单数据字段进行排序,以便于浏览器对表单数据字段进行排序时,也可以遵循该分组排序策略,从而保证服务器和浏览器对表单数据字段排序的顺序是一致的,进而避免由于表单数据字段分组排序策略不同而导致的验证结果的误判情况。举例来说,假设某一HTML表单中包括多个同名字段,有表示账号的acc字段,有表示金额的amt字段,字段出现的先后顺序为<input name=“acc”value=“111”/>,<input name=“amt”value=“9.9”/>,<input name=“acc”value=“222”/>,<input name=“amt”value=“8.8”/>。在服务器接收浏览器发送的表单数据时,会对该表单数据的同名字段进行分组排序处理,即将同名字段放在一起,并按照同名字段出现的先后顺序确定同名字段的排序位置。具体地,按照服务器的分组排序策略,第一个出现的字段的字段名称为acc,则将其对应的字段值“111”放在字符串的最前面的位置,得到字符串“111”;接下来,第二个出现的字段的字段名称为amt,与第一个出现的字段不是同名字段,则将其对应的字段值“9.9”放在上一步得到的字符串的后面,得到字符串“1119.9”;下一步,第三个出现的字段的字段名称为acc,与第一个出现的字段是同名字段,则将其对应的字段值“222”放在字段值“111”的后面,得到字符串“1112229.9”;最后一个出现的字段的字段名称为amt,与第二个出现的字段是同名字段,所以,将其放在字段值“9.9”的后面,则获取到的表单数据的字符串为“1112229.98.8”。
本实施方式中,浏览器和服务器在进行摘要算法前,采用一致的分组排序策略进行字段拼接,保证两者获得的用于进行摘要算法的数据一致,从而避免因摘要算法的计算对象不同导致数据验证时的误判,提高数据验证的有效性和准确性。
实际应用中,浏览器中的HTML表单中的字段都会随着表单的提交发送至服务器。通常情况下,这些字段都是服务器应用程序需要使用的数据,服务器会全部接收这些字段。但在某些情况下,表单中的某些字段对服务器应用程序来说是多余的,服务器会对这些多余表单数据字段进行过滤处理。具体地,在一种实施方式中,可以在接收浏览器发送的表单数据字段后,删除上述多余表单数据字段;或者,在另外一种实施方式中,还可以在服务器接收浏览器发送的表单数据时,对该表单数据进行过滤,以实现只接收所需要的表单数据字段的目的。
针对上述前一实施方式,在一个示例中,在前述实施方式的基础上,S303中所述根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要之前,还包括:获取第一字符串,所述第一字符串包括各表单对应的排除字段的名称;根据第一字符串,解析出各表单对应的排除字段的名称;对应的,S402中所述读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:删除所述表单数据二维数组中,字段名称与所述各表单对应的排除字段的名称一致的表单数据字段。
其中,本领域技术人员可在服务器中预先针对各交易页面的表单在配置文件中配置对应的所需要的字段的名称,或者,还可以预先针对各交易页面的表单在配置文件中配置对应的排除字段的名称,以上两种方式都可以实现对多余字段进行删除的功能,本实施方式中对配置文件的内容不作限定。
在一个示例中,服务器根据配置文件获取所需要的字段的名称,遍历表单数据二维数组中的字段,针对每一个字段,确定该字段的名称是否与所需要的字段的名称一致,若结果为一致,则将其保留;若结果为不一致,则将其删除。
本实施方式,通过对表单数据字段中的多余字段进行删除,可以减少验证时的误判情况,从而保障客户顺利办理业务。
本实施例中,通过在将表单数据转换为交易摘要之前,对表单数据字段进行排序,可以减少验证时的误判情况,从而保障客户顺利办理业务。
实施例五
图9为本申请实施例五提供的数据验证装置的结构示意图,如图9所示,本实施例提供的数据验证装置应用于浏览器,包括:收发模块51及生成模块52。
其中,收发模块51,用于向服务器发送交易请求,并接收服务器基于所述交易请求返回的交易页面和证书信息。生成模块52,用于调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要。收发模块51,还用于将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名。收发模块51,还用于向服务器发送经过数字签名的交易摘要和所述表单数据,以使所述服务器对所述表单数据进行所述摘要算法处理获得第一交易摘要,以及根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
可选地,生成模块52,具体用于:调用预先封装的组件中的makeSummary方法,从所述交易页面下各类型的HTML标签中,分别读取出各表单的表单数据字段;所述进行摘要算法处理,生成交易摘要,包括:遍历所述各表单的表单数据字段,并按照预定的分组排序策略,将所述各表单的表单数据字段进行分组排序,获得表单数据二维数组;其中,所述分组排序策略包括:针对首次出现的表单数据字段,将该表单数据字段放置在一个新建的分组内,并将该新建的分组放置在表单数据二维数组的末尾;针对非首次出现的表单数据字段,将该表单数据字段放置在与其为同名字段的表单数据字段所在分组内的末尾;读取所述表单数据二维数组中每个表单数据字段的字段值,并按照各表单数据字段在所述表单数据二维数组中的先后顺序,对所述各表单数据字段的字段值进行拼接;对拼接获得的数据进行摘要算法处理,生成交易摘要。
可选地,生成模块52,还具体用于:接收服务器基于所述交易请求返回的初始化字符串,所述初始化字符串包括各表单对应的排除字段的名称;根据初始化字符串,通过基于initModule方法执行组件的初始化,解析出各表单对应的排除字段的名称;所述读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:删除所述表单数据二维数组中,字段名称与所述各表单对应的排除字段的名称一致的表单数据字段。
其中,所述组件包括用于进行组件初始化的initModule方法。
可选地,生成模块52,还具体用于:调用预先封装的组件中的makeSummary方法,以使所述makeSummary方法从开源算法库中调用摘要算法;所述makeSummary方法根据所述表单数据,采用所述摘要算法进行摘要算法处理,生成交易摘要。
本实施例提供的数据验证装置可以执行前述方法实施例一和实施例二的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例六
图10为本申请实施例六提供的数据验证装置的结构示意图,如图10所示,本实施例提供的数据验证装置应用于服务器,包括:接收模块61及验证模块62。
其中,接收模块61,用于接收浏览器发送的交易请求,并基于所述交易请求向浏览器返回交易页面和证书信息,以使所述浏览器调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;以及,将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名。接收模块61,还用于接收所述浏览器发送的经过数字签名的交易摘要和所述表单数据。验证模块62,用于根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,并根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
可选地,验证模块62,具体用于:遍历所述各表单的表单数据字段,并按照预定的分组排序策略,将所述各表单的表单数据字段进行分组排序,获得表单数据二维数组;其中,所述分组排序策略包括:针对首次出现的表单数据字段,将该表单数据字段放置在一个新建的分组内,并将该新建的分组放置在表单数据二维数组的末尾;针对非首次出现的表单数据字段,将该表单数据字段放置在与其为同名字段的表单数据字段所在分组内的末尾;读取所述表单数据二维数组中每个表单数据字段的字段值,并按照各表单数据字段在所述表单数据二维数组中的先后顺序,对所述各表单数据字段的字段值进行拼接;对拼接获得的数据进行所述摘要算法处理,获得第一交易摘要。
其中,所述表单数据包括浏览器调用预先封装的组件中的makeSummary方法,从所述交易页面下各类型的HTML标签中,分别读取的各表单的表单数据字段。
可选地,验证模块62,还具体用于:获取第一字符串,所述第一字符串包括各表单对应的排除字段的名称;根据第一字符串,解析出各表单对应的排除字段的名称;所述读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:删除所述表单数据二维数组中,字段名称与所述各表单对应的排除字段的名称一致的表单数据字段。
可选地,验证模块62,还具体用于:根据所述表单数据,调用本地的摘要算法进行摘要算法处理,获得第一交易摘要。
本实施例提供的数据验证装置可以执行前述方法实施例三和实施例四的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例七
图11为本申请实施例七提供的一种电子设备的结构示意图。如图11所示,该电子设备可以为安装有如实施例五所述的浏览器的手机,电脑或平板。该电子设备包括:存储器71和处理器72。
存储器71被配置为存储处理器可执行指令。存储器71可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
存储器71和处理器72之间通过电路互联。具体地,各个部件利用总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对电子设备内执行的指令进行处理。
实施例八
图12为本申请实施例八提供的一种电子设备的结构示意图。如图12所示,该电子设备可以为服务器。该电子设备包括:存储器81和处理器82。
存储器81被配置为存储处理器可执行指令。存储器81可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
存储器81和处理器82之间通过电路互联。具体地,各个部件利用总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对电子设备内执行的指令进行处理。
实施例九
本申请实施例九提供了一种计算机可读存储介质。
当该存储介质中的指令由处理器执行,使得如实施例七所述的电子设备能够执行上述数据验证方法。
实施例十
本申请实施例十提供了一种计算机可读存储介质。
当该存储介质中的指令由处理器执行,使得如实施例八所述的电子设备能够执行上述数据验证方法。
实施例十一
本申请实施例十一提供了一种计算机程序产品。该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述数据验证方法。
实施例十二
本申请实施例十二提供了一种计算机程序产品。该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述数据验证方法。
实施例十三
本申请实施例十三提供一种数据验证系统,包括:如实施例五所述的浏览器、以及如实施例六所述的服务器。以下结合图13,交易摘要的签名验签流程图,来说明基于该系统的签名验签流程。
具体地,浏览器向服务器发送交易请求,并接收服务器基于所述交易请求返回的交易页面和证书信息。在一个示例中,在客户需要办理相应业务时,使用浏览器登陆网上银行系统,然后,从页面菜单中选择需要办理的业务,以向服务器发起交易页面请求,服务器接收到该交易请求后,服务器生成交易页面,并根据XML配置文件生成Summary组件初始化参数,即配置排除字段的名称,最后将生成的交易页面、客户的证书信息、以及Summary组件初始化参数返回给浏览器。浏览器显示交易页面,初始化Summary组件。具体地,浏览器加载出交易页面,并基于initModule方法解析出排除字段,以完成Summary组件的初始化。
浏览器调用Summary组件,生成交易摘要。在一个示例中,浏览器调用Summary组件,该组件再调用开源算法库crypto-js的CryptoJS组件提供的SHA256算法,对表单数据进行摘要算法处理,以生成交易摘要。
浏览器将交易摘要和证书信息发送至K宝进行数字签名,并将签名数据和表单数据发送至服务器。在一个示例中,浏览器将上一步生成的交易摘要,以及客户的证书信息发送至K宝;K宝根据证书信息选取数字证书的私钥对交易摘要进行加密计算,获得密文形式的签名数据,再返回给浏览器,浏览器将该签名数据和表单数据发送至服务器。
服务器接收签名数据和表单数据,对交易摘要进行验证。在一个示例中,服务器使用数字证书公钥解密签名数据,以解析出证书信息验证客户身份;验证成功后,从签名数据中解析出经过数字签名的交易摘要;服务器采用摘要算法对接收到的表单数据进行处理,获得第一交易摘要;将经过数字签名的交易摘要与第一交易摘要进行对比,若二者是一致的,则验证结果为成功,允许进行业务办理;若二者不一致,则验证结果为失败,不允许进行业务办理。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (17)

1.一种数据验证方法,其特征在于,包括:
向服务器发送交易请求,并接收服务器基于所述交易请求返回的交易页面和证书信息;
调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;
将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;
向服务器发送经过数字签名的交易摘要和所述表单数据,以使所述服务器对所述表单数据进行所述摘要算法处理获得第一交易摘要,以及根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
2.根据权利要求1所述的方法,其特征在于,所述调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要,包括:
调用预先封装的组件中的makeSummary方法,从所述交易页面下各类型的HTML标签中,分别读取出各表单的表单数据字段;
所述进行摘要算法处理,生成交易摘要,包括:
遍历所述各表单的表单数据字段,并按照预定的分组排序策略,将所述各表单的表单数据字段进行分组排序,获得表单数据二维数组;其中,所述分组排序策略包括:针对首次出现的表单数据字段,将该表单数据字段放置在一个新建的分组内,并将该新建的分组放置在表单数据二维数组的末尾;针对非首次出现的表单数据字段,将该表单数据字段放置在与其为同名字段的表单数据字段所在分组内的末尾;
读取所述表单数据二维数组中每个表单数据字段的字段值,并按照各表单数据字段在所述表单数据二维数组中的先后顺序,对所述各表单数据字段的字段值进行拼接;
对拼接获得的数据进行摘要算法处理,生成交易摘要。
3.根据权利要求2所述的方法,其特征在于,所述组件包括用于进行组件初始化的initModule方法;所述调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要之前,还包括:
接收服务器基于所述交易请求返回的初始化字符串,所述初始化字符串包括各表单对应的排除字段的名称;
根据初始化字符串,通过基于initModule方法执行组件的初始化,解析出各表单对应的排除字段的名称;
所述读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:
删除所述表单数据二维数组中,字段名称与所述各表单对应的排除字段的名称一致的表单数据字段。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要,包括:
调用预先封装的组件中的makeSummary方法,以使所述makeSummary方法从开源算法库中调用摘要算法;
所述makeSummary方法根据所述表单数据,采用所述摘要算法进行摘要算法处理,生成交易摘要。
5.一种数据验证方法,其特征在于,包括:
接收浏览器发送的交易请求,并基于所述交易请求向浏览器返回交易页面和证书信息,以使所述浏览器调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;以及,将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;
接收所述浏览器发送的经过数字签名的交易摘要和所述表单数据;
根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,并根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
6.根据权利要求5所述的方法,其特征在于,所述表单数据包括浏览器调用预先封装的组件中的makeSummary方法,从所述交易页面下各类型的HTML标签中,分别读取的各表单的表单数据字段;
所述根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,包括:
遍历所述各表单的表单数据字段,并按照预定的分组排序策略,将所述各表单的表单数据字段进行分组排序,获得表单数据二维数组;其中,所述分组排序策略包括:针对首次出现的表单数据字段,将该表单数据字段放置在一个新建的分组内,并将该新建的分组放置在表单数据二维数组的末尾;针对非首次出现的表单数据字段,将该表单数据字段放置在与其为同名字段的表单数据字段所在分组内的末尾;
读取所述表单数据二维数组中每个表单数据字段的字段值,并按照各表单数据字段在所述表单数据二维数组中的先后顺序,对所述各表单数据字段的字段值进行拼接;
对拼接获得的数据进行所述摘要算法处理,获得第一交易摘要。
7.根据权利要求6所述的方法,其特征在于,所述根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要之前,还包括:
获取第一字符串,所述第一字符串包括各表单对应的排除字段的名称;
根据第一字符串,解析出各表单对应的排除字段的名称;
所述读取所述表单数据二维数组中每个表单数据字段的字段值之前,还包括:
删除所述表单数据二维数组中,字段名称与所述各表单对应的排除字段的名称一致的表单数据字段。
8.根据权利要求5-7中任一项所述的方法,其特征在于,所述根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,包括:
根据所述表单数据,调用本地的摘要算法进行摘要算法处理,获得第一交易摘要。
9.一种数据验证装置,其特征在于,应用于浏览器,包括:
收发模块,用于向服务器发送交易请求,并接收服务器基于所述交易请求返回的交易页面和证书信息;
生成模块,用于调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;
收发模块,还用于将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;
收发模块,还用于向服务器发送经过数字签名的交易摘要和所述表单数据,以使所述服务器对所述表单数据进行所述摘要算法处理获得第一交易摘要,以及根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
10.一种数据验证装置,其特征在于,应用于服务器,包括:
接收模块,用于接收浏览器发送的交易请求,并基于所述交易请求向浏览器返回交易页面和证书信息,以使所述浏览器调用预先封装的组件,从所述交易页面中获取表单数据,进行摘要算法处理,生成交易摘要;以及,将所述交易摘要和所述证书信息发送至安全认证设备,以使所述安全认证设备对所述交易摘要进行数字签名;
接收模块,还用于接收所述浏览器发送的经过数字签名的交易摘要和所述表单数据;
验证模块,用于根据所述表单数据,通过进行所述摘要算法处理,获得第一交易摘要,并根据所述第一交易摘要和所述经过数字签名的交易摘要进行验证。
11.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-4中任一项所述的数据验证方法。
12.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求5-8中任一项所述的数据验证方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-4中任一项所述的数据验证方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求5-8中任一项所述的数据验证方法。
15.一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现如权利要求1-4中任一项所述的数据验证方法。
16.一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现如权利要求5-8中任一项所述的数据验证方法。
17.一种数据验证系统,其特征在于,包括:用于执行如权利要求1-4中任一项所述方法的浏览器、以及用于执行如权利要求5-8中任一项所述方法的服务器。
CN202110805688.0A 2021-07-16 2021-07-16 数据验证方法及装置 Active CN113537985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110805688.0A CN113537985B (zh) 2021-07-16 2021-07-16 数据验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110805688.0A CN113537985B (zh) 2021-07-16 2021-07-16 数据验证方法及装置

Publications (2)

Publication Number Publication Date
CN113537985A true CN113537985A (zh) 2021-10-22
CN113537985B CN113537985B (zh) 2024-03-26

Family

ID=78128422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110805688.0A Active CN113537985B (zh) 2021-07-16 2021-07-16 数据验证方法及装置

Country Status (1)

Country Link
CN (1) CN113537985B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060130154A1 (en) * 2004-11-30 2006-06-15 Wai Lam Method and system for protecting and verifying stored data
CN102609841A (zh) * 2012-01-13 2012-07-25 东北大学 一种基于数字证书的远程移动支付系统及支付方法
CN102694780A (zh) * 2011-03-25 2012-09-26 同方股份有限公司 一种数字签名认证方法及包含该方法的支付方法及系统
CN107633402A (zh) * 2017-09-14 2018-01-26 深圳市华付信息技术有限公司 一种用于聚合认证的方法及其系统
CN108011719A (zh) * 2017-11-16 2018-05-08 深圳市文鼎创数据科技有限公司 一种签名方法、装置及数字签名系统
CN108512666A (zh) * 2018-04-08 2018-09-07 苏州犀牛网络科技有限公司 Api请求的加密方法、数据交互方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060130154A1 (en) * 2004-11-30 2006-06-15 Wai Lam Method and system for protecting and verifying stored data
CN102694780A (zh) * 2011-03-25 2012-09-26 同方股份有限公司 一种数字签名认证方法及包含该方法的支付方法及系统
CN102609841A (zh) * 2012-01-13 2012-07-25 东北大学 一种基于数字证书的远程移动支付系统及支付方法
CN107633402A (zh) * 2017-09-14 2018-01-26 深圳市华付信息技术有限公司 一种用于聚合认证的方法及其系统
CN108011719A (zh) * 2017-11-16 2018-05-08 深圳市文鼎创数据科技有限公司 一种签名方法、装置及数字签名系统
CN108512666A (zh) * 2018-04-08 2018-09-07 苏州犀牛网络科技有限公司 Api请求的加密方法、数据交互方法及系统

Also Published As

Publication number Publication date
CN113537985B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
CN110493007B (zh) 一种基于区块链的信息验证方法、装置、设备及存储介质
US10567320B2 (en) Messaging balancing and control on blockchain
US11728995B2 (en) Reward point transfers using blockchain
US20200042960A1 (en) Procurement system using blockchain
WO2019157367A1 (en) Scalable decentralized digital and programmatic advertising analytics system
WO2019108358A1 (en) Transaction authorization process using blockchain
WO2019194962A1 (en) Fraud management using a distributed database
CN108701309A (zh) 一种用于电子商务交易安全的分布式用户简档身份验证系统
US20200013028A1 (en) Peer-to-peer money transfers
CN110309022B (zh) 模拟交易测试的方法、模拟器、设备及存储介质
CN107016074A (zh) 一种网页加载方法及装置
CN112580306A (zh) 生成保函的方法及装置
CN112600830B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN112348326A (zh) 一种银行业务处理方法和系统
CN111950032A (zh) 基于区块链的数据存储方法、终端设备和存储介质
CN105491116A (zh) 一种跨窗口提交数据的方法及系统
CN112560072A (zh) 基于区块链的密钥管理方法、装置、介质及设备
CN111222963A (zh) 基于区块链的招标信息处理方法及装置
CN113537985B (zh) 数据验证方法及装置
CN113706299B (zh) 数据处理的方法、装置、电子设备及介质
CN109801075A (zh) 支付方法、装置、计算机设备和存储介质
CN109472661A (zh) 基于电子合同的数据处理方法、系统和计算机设备
KR102315328B1 (ko) 온라인 상의 대화를 블록체인에 저장하여 당사자간의 분쟁을 해결하기 위한 법률 계약 서비스 제공 시스템 및 그 방법
CN111865726B (zh) 业务消息测试方法、装置、计算机系统和存储介质
US11233820B2 (en) Systems and methods for detecting phishing websites

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
GR01 Patent grant
GR01 Patent grant