发明内容
本申请提供一种数字证书管理方法、装置和系统,能够安全方便地进行数字证书的管理。
本申请提出一种数字证书管理方法,包括:
将数字证书配置到数据库中,所述数据库包括:证书表和证书状态表;
通过定时扫描所述证书状态表的方式检查所述数字证书是否为更新状态;
当检查到所述数字证书为更新状态时,从所述数据库中读取并缓存所述数字证书;
使用所述数字证书对支付数据进行加密和/或解密,包括:
使用所述数字证书对用户发送的支付请求进行加密;和/或
使用所述数字证书对银行支付网关返回的支付结果进行解密;以实现对所述数字证书的管理;
将读取后的数字证书设置为非更新状态。
本申请还提出一种数字证书管理装置,包括:
数据库,用于存储数字证书,所述数据库,包括:证书表和证书状态表;
检查模块,用于通过定时扫描所述证书状态表的方式检查所述数据库中的数字证书是否为更新状态;
缓存模块,用于在所述检查模块检查到所述数字证书为更新状态时,从所述数据库中读取并缓存所述数字证书;
加密解密模块,用于使用所述缓存模块缓存的所述数字证书对支付数据进行加密和/或解密;
设置模块,用于在所述缓存模块从所述数据库中读取并缓存数字证书之后,将所述数字证书设置为非更新状态;
其中,所述加密解密模块,具体包括:
加密子模块,用于使用所述数字证书对用户发送的支付请求进行加密;和/或
解密子模块,用于使用所述数字证书对银行支付网关返回的支付结果进行解密。
本申请还提出一种数字证书管理系统,包括:
支付装置,用于接收用户发送的支付请求,请求数字证书管理装置对所述支付请求进行加密,将加密后的支付请求发送到银行支付网关,接收所述银行支付网关返回的支付结果,请求所述数字证书管理装置对所述支付结果进行解密,处理所述解密后的支付结果;
数字证书管理装置,用于将数字证书配置到数据库中,,所述数据库包括:证书表和证书状态表,通过定时扫描所述证书状态表的方式检查所述数字证书是否为更新状态,当检查到所述数字证书为更新状态时,从所述数据库中读取并缓存所述数字证书;使用所述数字证书对所述用户发送的支付请求进行加密,和/或对所述银行支付网关返回的支付结果进行解密;
所述数字证书管理装置,还用于在从所述数据库中读取并缓存数字证书之后,将所述数字证书设置为非更新状态。
本申请包括以下优点,因为将数字证书配置到数据库中,并从数据库中读取并缓存更新后的数字证书,对支付数据进行加密和/或解密,简化了数字证书的管理流程,提高了管理数字证书的安全性。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
具体实施方式
本申请的主要思想包括,将数字证书配置到数据库中,检查数字证书是否为更新状态。当检查到数字证书为更新状态时,从数据库中读取并缓存该数字证书,并使用该数字证书对支付数据进行加密和/或解密,以实现对该数字证书的管理。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请中的一种数字证书管理方法流程图,包括以下步骤:
步骤101,将数字证书配置到数据库中。
当某银行通知之前的数字证书废弃,并传输新的数字证书后,后台结算人员接收该数字证书,并通过管理页面向数据库上传该数字证书,将该数字证书配置在数据库中。
步骤102,检查数字证书是否为更新状态。
数据库中包含证书表和证书状态表,每个数字证书通过唯一的证书ID(Identity,身份标识号码)对应各个表项中的字段内容。证书表和证书状态表,分别如表1和表2所示。
表1证书表
表2证书状态表
证书ID |
银行缩写 |
是否为更新状态 |
001 |
ICBC |
是 |
002 |
ICBC |
否 |
003 |
ABC |
是 |
后台结算人员向数据库上传新接收的数字证书完毕后,该数字证书被写入到数据库的证书表中。同时,在证书状态表中,该数字证书对应的“是否为更新状态”字段的内容被设置为“是”。相应地,可以通过定时扫描证书状态表的方式检查数字证书是否为更新状态,例如,可以通过定时器每隔5分钟对证书状态表扫描一次,根据证书状态表中的“是否为更新状态”字段的内容,确定对应的数字证书是否为更新状态。
当检查到数字证书为更新状态时,执行步骤103;当检查到数字证书为非更新状态时,继续执行本步骤,检查数字证书是否为更新状态。
步骤103,当检查到数字证书为更新状态时,从数据库中读取并缓存该数字证书。
当检查到数据库中数字证书为更新状态,即证书状态表中的“是否为更新状态”字段的内容为“是”时,可以通过该字段内容对应的证书ID从证书表中读取证书内容并缓存。该证书内容用于对支付数据进行加密和/或解密。从数据库中读取并缓存该数字证书之后,可以将该数字证书设置为非更新状态,即将该数字证书在证书状态表中对应的“是否为更新状态”字段的内容设置为“否”,以避免重复读取该数字证书。
步骤104,使用数字证书对支付数据进行加密和/或解密,以实现对该数字证书的管理。
当用户发送支付请求时,可以使用步骤103读取并缓存的数字证书对用户发送的支付数据进行加密。支付装置将加密后的支付数据发送到银行支付网关,并接收银行支付网关返回的支付结果。同理,还可以使用步骤103读取并缓存的数字证书对银行支付网关返回的支付数据进行解密。支付装置处理解密后的支付数据。
本申请包括以下优点,由于现有技术将数字证书配置到源代码中,每次更换数字证书时需要重启支付装置;而本申请将数字证书配置到数据库中,从数据库中读取并缓存更新后的数字证书,对支付数据进行加密和/或解密,简化了数字证书的管理流程,提高了管理数字证书的安全性。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
如图2所示,为本申请中的另一种数字证书管理方法流程图,包括以下步骤:
步骤201,将数字证书配置到数据库中。
后台结算人员通过管理界面维护数据库中的数字证书,该管理界面如图3所示。当数据库中的数字证书需要更新时,可以通过图3中的管理界面将新的数字证书配置到数据库中,同时,将该数字证书设置为更新状态,即在证书状态表中,将该数字证书对应的“是否为更新状态”字段的内容设置为“是”。
步骤202,检查数字证书是否为更新状态。
可以通过定时扫描证书状态表的方式检查数字证书是否为更新状态,例如,可以通过定时器每隔5分钟对证书状态表扫描一次,根据该证书状态表中,该数字证书对应的“是否为更新状态”字段的内容,确定该数字证书是否为更新状态。具体地,如果“是否为更新状态”字段的内容为“是”,则对应的数字证书为更新状态;如果“是否为更新状态”字段的内容为“否”,则对应的数字证书为非更新状态。
需要指出的是,“是否为更新状态”字段的内容与数字证书是否为更新状态的对应关系,并不限于上述方式。
当检查到该数字证书为更新状态时,执行步骤203;当检查到该数字证书为非更新状态时,继续执行本步骤,检查数字证书是否为更新状态。
步骤203,从数据库中读取并缓存数字证书。
当检查到数据库中数字证书为更新状态,即证书状态表中的“是否为更新状态”字段的内容为“是”时,可以获取更新状态的数字证书的证书ID,通过该证书ID从证书表中读取证书内容,并缓存该证书内容,该证书内容用于对支付数据进行加密和/或解密。
步骤204,将数字证书设置为非更新状态。
从数据库中读取并缓存数字证书之后,可以将该数字证书设置为非更新状态,即将该数字证书在证书状态表中对应的“是否为更新状态”字段的内容设置为“否”,以避免重复读取该数字证书。
步骤205,使用数字证书对用户发送的支付请求进行加密。
当用户发送支付请求时,可以使用步骤203读取并缓存的数字证书对用户发送的支付数据进行加密。支付装置将加密后的支付数据发送到银行支付网关。
步骤206,使用数字证书对银行支付网关返回的支付结果进行解密。
当银行支付网关返回支付结果时,可以使用步骤203读取并缓存的数字证书对银行支付网关返回的支付数据进行解密。支付装置处理解密后的支付数据。
本申请包括以下优点,由于现有技术将数字证书配置到源代码中,每次更换数字证书时需要重启支付装置;而本申请将数字证书配置到数据库中,通过设置数字证书是否为更新状态,实现对数字证书的管理,简化了数字证书的管理流程,提高了管理数字证书的安全性。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
如图4所示,为本申请中的一种数字证书管理装置结构示意图,包括:
数据库410,用于存储数字证书。
数据库410包括证书表和证书状态表,后台结算人员通过管理界面维护数据库410中的数字证书。当数据库410中的数字证书需要更新时,可以通过管理界面将新的数字证书配置到数据库中,同时,将该数字证书设置为更新状态,即在证书状态表中,将该数字证书对应的“是否为更新状态”字段的内容设置为“是”。
检查模块420,用于检查数据库410中的数字证书是否为更新状态。
检查模块420可以通过定时扫描证书状态表的方式检查数字证书是否为更新状态,例如,可以通过定时器每隔5分钟对证书状态表扫描一次,以检查数字证书是否为更新状态。检查模块420,具体用于根据证书状态表中,该数字证书对应的“是否为更新状态”字段的内容,确定该数字证书是否为更新状态。
具体地,如果“是否为更新状态”字段的内容为“是”,则对应的数字证书为更新状态;如果“是否为更新状态”字段的内容为“否”,则对应的数字证书为非更新状态。
需要指出的是,“是否为更新状态”字段的内容与数字证书是否为更新状态的对应关系,并不限于上述方式。
具体地,上述检查模块420是以上所述装置中负责检查数据库410中的数字证书是否为更新状态的部分,可以是定时器等硬件,也可以是软件或硬件和软件的结合。
缓存模块430,用于在检查模块420检查到数字证书为更新状态时,从数据库410中读取并缓存该数字证书。
当检查模块420检查到数据库410中数字证书为更新状态,即证书状态表中的“是否为更新状态”字段的内容为“是”时,缓存模块430可以获取“是否为更新状态”字段的内容为“是”的数字证书的证书ID,通过该证书ID从证书表中读取证书内容,并缓存该证书内容,该证书内容用于对支付数据进行加密和/或解密。
具体地,上述缓存模块430是以上所述装置中负责从数据库410中读取并缓存数字证书的部分,可以是存储器等硬件,也可以是软件或硬件和软件的结合。
加密解密模块440,用于使用缓存模块430缓存的数字证书对支付数据进行加密和/或解密。
当用户发送支付请求时,加密解密模块440可以使用缓存模块430读取并缓存的数字证书对用户发送的支付数据进行加密。支付装置将加密后的支付数据发送到银行支付网关,并接收银行支付网关返回的支付结果。同理,加密解密模块440还可以使用缓存模块430读取并缓存的数字证书对银行支付网关返回的支付数据进行解密。支付装置处理解密后的支付数据。
具体地,上述加密解密模块440是以上所述装置中负责使用数字证书对支付数据进行加密和/或解密的部分,可以是硬件、软件或两者的结合。
优选地,本申请中的数字证书管理装置,还包括:
设置模块450,用于在缓存模块430从数据库410中读取并缓存数字证书之后,将该数字证书设置为非更新状态。
在缓存模块430从数据库中读取并缓存该数字证书之后,设置模块450将该数字证书设置为非更新状态,即将该数字证书在证书状态表中对应的“是否为更新状态”字段的内容设置为“否”,以避免重复读取该数字证书。
具体地,上述设置模块450是以上所述装置中负责将数字证书设置为非更新状态的部分,可以是硬件、软件或两者的结合。
优选地,该缓存模块430,具体包括:
获取子模块431,用于获取更新状态的数字证书的证书ID。
如表2所示,数据库410中的证书状态表包含证书ID字段、银行缩写字段以及“是否为更新状态”字段,当检查模块420在证书状态表中检查到“是否为更新状态”字段的内容为“是”时,获取子模块431可以获取该字段内容对应的证书ID。
读取子模块432,用于通过获取子模块431获取的证书ID从证书表中读取证书内容,并缓存该证书内容。
如表1所示,数据库410中的证书表包含证书ID字段、银行缩写字段、证书内容字段、证书类型字段、证书状态字段以及证书描述字段,读取子模块432可以使用获取子模块431获取的证书ID,从证书表中读取证书内容,并缓存该证书内容。
优选地,该加密解密模块440,具体包括:
加密子模块441,用于使用数字证书对用户发送的支付请求进行加密;和/或
解密子模块442,用于使用数字证书对银行支付网关返回的支付结果进行解密。
当用户发送支付请求时,加密子模块441可以使用缓存模块430读取并缓存的数字证书对用户发送的支付数据进行加密。支付装置将加密后的支付数据发送到银行支付网关,并接收银行支付网关返回的支付结果。同理,解密子模块442也可以使用缓存模块430读取并缓存的数字证书对银行支付网关返回的支付数据进行解密。支付装置处理解密后的支付数据。
本申请包括以下优点,由于现有技术将数字证书配置到源代码中,每次更换数字证书时需要重启支付装置;而本申请将数字证书配置到数据库中,从数据库中读取并缓存更新后的数字证书,对支付数据进行加密和/或解密,简化了数字证书的管理流程,提高了管理数字证书的安全性。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
如图5所示,为本申请中的一种数字证书管理系统结构示意图,包括:
支付装置510,用于接收用户发送的支付请求,请求数字证书管理装置520对该支付请求进行加密,将加密后的支付请求发送到银行支付网关,接收银行支付网关返回的支付结果,请求数字证书管理装置520对该支付结果进行解密,处理解密后的支付结果。
数字证书管理装置520,用于将数字证书配置到数据库中,检查该数字证书是否为更新状态,当检查到该数字证书为更新状态时,从数据库中读取并缓存该数字证书;使用该数字证书对用户发送的支付请求进行加密,和/或对银行支付网关返回的支付结果进行解密。
数据库中包含证书表和证书状态表,后台结算人员向数据库上传新接收的数字证书完毕后,该数字证书被写入到数据库的证书表中。同时,在证书状态表中,该数字证书对应的“是否为更新状态”字段的内容被设置为“是”。相应地,数字证书管理装置520可以通过定时扫描证书状态表的方式检查数字证书是否为更新状态,例如,数字证书管理装置520可以通过定时器每隔5分钟对证书状态表扫描一次,以检查证书状态表中的“是否为更新状态”字段的内容,确定对应的数字证书是否为更新状态。当检查到数据库中数字征书为更新状态,即证书状态表中的“是否为更新状态”字段的内容为“是”时,数字证书管理装置520通过该字段内容对应的证书ID从证书表中读取证书内容并缓存。该证书内容用于对支付数据进行加密和/或解密。当用户向支付装置510发送支付请求时,支付装置510请求数字证书管理装置520对用户发送的支付数据进行加密,支付装置510将加密后的支付数据发送到银行支付网关,并接收银行支付网关返回的支付结果。支付装置510请求数字证书管理装置520对银行支付网关返回的支付数据进行解密,支付装置510处理解密后的支付数据。
上述数字证书管理装置520,还用于在从数据库中读取并缓存数字证书之后,将该数字证书设置为非更新状态。
在从数据库中读取并缓存数字证书之后,数字证书管理装置520将该数字证书设置为非更新状态,即将该数字证书在证书状态表中对应的“是否为更新状态”字段的内容设置为“否”,以避免重复读取该数字证书。
本申请包括以下优点,由于现有技术将数字证书配置到源代码中,每次更换数字证书时需要重启支付装置;而本申请将数字证书配置到数据库中,从数据库中读取并缓存更新后的数字证书,对支付数据进行加密和/或解密,简化了数字证书的管理流程,提高了管理数字证书的安全性。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
为了描述的方便,描述以上系统时以功能分为各种模块或装置分别描述。当然,在实施本发明时可以把各模块或装置的功能在同一个或多个软件和/或硬件中实现
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本申请的保护范围。