支付密码的管理方法、系统、计算机设备和存储介质与流程

文档序号:24337035发布日期:2021-03-19 12:17阅读:171来源:国知局
支付密码的管理方法、系统、计算机设备和存储介质与流程

本申请涉及密码技术领域,特别涉及一种支付密码的管理方法、系统、计算机设备和存储介质。



背景技术:

目前业内对于6位支付密码的保存、校验以及使用比较保密,支付密码的安全级别比较高,基于每个支付系统都会有一套自己的支付密码管理体系。

目前业内通常保存支付密码的方式是通过对支付密码进行hash的方式来保存,但是当不同用户设置了相同的支付密码时,则会存在重复数据。因此,需要保证每个用户的密码都是唯一且不同的。

目前业内服务端可以拿到明文的支付密码,支付密码比对的手段一般都是与数据库直接比对是否相同,明晚密码的使用会产生一定安全缺陷。

目前在多个业务场景下,如果需要支付密码的校验,业内通常的方式是通过业务代码传入支付密码来进行校验,这样支付密码就会在多个系统之间传递,存在安全风险。

因此,目前支付密码在保存、校验以及使用过程中均存在安全缺陷。



技术实现要素:

本申请的主要目的为提供一种支付密码的管理方法、系统、计算机设备和存储介质,旨在克服目前服务端保存支付密码时存在不安全的缺陷。

为实现上述目的,本申请提供了一种支付密码的管理方法,应用于服务端,包括以下步骤:

在设置支付密码时,接收客户端经传递层传输的第一加密密码;其中,所述客户端用于获取到用户输入的预设支付密码时,获取所述用户的凭证信息,并将所述用户的凭证信息与所述预设支付密码进行组合得到第一组合密码,对所述第一组合密码进行哈希计算得到得到第一哈希密码;对所述第一哈希密码进行加密,得到所述第一加密密码;

对所述第一加密密码进行解密,得到所述第一哈希密码;

基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,并将所述第二加密密码与所述用户进行绑定存储在数据库中。

进一步地,所述基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码的步骤,包括:

根据预先配置的参数生成虚拟加密机;其中,所述参数包括服务端自定义的偏移量、cpu消耗、秘钥和盐值长度;

基于所述虚拟加密机对所述第一哈希密码进行加密,得到所述第二加密密码。

进一步地,所述基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,并将所述第二加密密码与所述用户进行绑定存储在数据库中的步骤之后,还包括:

在进行支付交易时,接收客户端经传输层传输的第三加密密码;其中,用户在所述客户端发起支付交易时,所述客户端获取所述用户输入的支付密码,并获取所述用户的凭证信息;将所述用户的凭证信息与所述支付密码进行组合得到第二组合密码,并对所述第二组合密码进行哈希计算得到得到第二哈希密码;所述客户端对所述第二哈希密码进行加密,得到所述第三加密密码;

从所述数据库中获取对应所述用户的第二加密密码;

基于所述第二加密密码对所述第三加密密码进行验证。

进一步地,所述基于所述第二加密密码对所述第三加密密码进行验证的步骤,包括:

对所述第三加密密码进行解密,得到所述第二哈希密码;

基于所述自定义的密码器对所述第二哈希密码进行加密,得到第四加密密码;

验证所述第四加密密码与所述第二加密密码是否一致,若一致,则判定所述用户输入的支付密码正确。

进一步地,所述基于所述第二加密密码对所述第三加密密码进行验证的步骤,包括:

对所述第三加密密码进行解密,得到所述第二哈希密码;

基于所述自定义的密码器对所述第二加密密码进行解密,得到所述第一哈希密码;

验证所述第一哈希密码与所述第二哈希密码是否一致,若一致,则判定所述用户输入的支付密码正确。

进一步地,所述基于所述第二加密密码对所述第三加密密码进行验证的步骤之后,包括:

验证所述支付密码正确时,生成一个无状态的令牌,并将所述令牌经所述传递层传输至所述客户端;其中,所述客户端需要访问业务系统请求业务时,将所述令牌传输至所述业务系统;

接收所述业务系统发送的所述令牌,并对所述令牌进行验证;

将验证结果反馈至所述业务系统,以通过所述业务系统根据所述验证结果,返回业务处理结果至所述客户端。

进一步地,所述生成一个无状态的令牌的步骤,包括:

获取所述用户的用户属性,所述用户属性至少包括所述凭证信息;

对所述用户属性进行哈希计算,得到属性哈希值;

采用随机算法生成一个八位数的随机数;

将所述属性哈希值与所述随机数进行组合,得到所述令牌。

本申请还提供了一种支付密码的管理系统,包括客户端、传递层以及服务端;

在设置支付密码时,所述客户端获取用户输入的预设支付密码,并获取所述用户的凭证信息;将所述用户的凭证信息与所述预设支付密码进行组合得到第一组合密码,并对所述第一组合密码进行哈希计算得到得到第一哈希密码;

所述客户端对所述第一哈希密码进行加密,得到第一加密密码,并通过所述传递层传输至所述服务端;

所述服务端对所述第一加密密码进行解密,得到所述第一哈希密码;

所述服务端基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,并将所述第二加密密码与所述用户进行绑定存储在数据库中。

本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

本申请提供的支付密码的管理方法、系统、计算机设备和存储介质,在设置支付密码时,接收客户端经传递层传输的第一加密密码;其中,所述客户端用于获取到用户输入的预设支付密码时,获取所述用户的凭证信息,并将所述用户的凭证信息与所述预设支付密码进行组合得到第一组合密码,对所述第一组合密码进行哈希计算得到得到第一哈希密码;对所述第一哈希密码进行加密,得到所述第一加密密码;对所述第一加密密码进行解密,得到所述第一哈希密码;基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,并将所述第二加密密码与所述用户进行绑定存储在数据库中。本申请中保存在服务端中预设支付密码不是以明文密码的形式保存,而且可以保障唯一性,同时客户端、服务端的加密方式不互通,提高支付密码保存的安全性。

附图说明

图1是本申请一实施例中支付密码的管理方法步骤示意图;

图2是本申请一实施例中支付密码的管理系统结构框图;

图3为本申请一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请一实施例中提供了一种支付密码的管理方法,应用于服务端,包括以下步骤:

步骤s1,在设置支付密码时,接收客户端经传递层传输的第一加密密码;其中,所述客户端用于获取到用户输入的预设支付密码时,获取所述用户的凭证信息,并将所述用户的凭证信息与所述预设支付密码进行组合得到第一组合密码,对所述第一组合密码进行哈希计算得到得到第一哈希密码;对所述第一哈希密码进行加密,得到所述第一加密密码;

步骤s2,对所述第一加密密码进行解密,得到所述第一哈希密码;

步骤s3,基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,并将所述第二加密密码与所述用户进行绑定存储在数据库中。

在本实施例中,上述支付密码的管理方法用于管理支付密码,其中包括支付密码的保存、验证以及传递使用等。保存上述支付密码,便于对用户设置的支付密码进行保存,以便后续进行支付密码的验证;验证支付密码通常发生在支付场景中实现密码的验证;支付密码的传递使用发生在多个业务端之间进行支付密码的传递中。

在本实施例中,上述支付密码的管理方法应用于支付密码的管理系统中,该系统中可包括客户端、传递层以及服务端,其中客户端通常为用户所在的一端,用于用户输入密码、发起请求等。传递层为网络传输层,两端用于分别连接上述客户端以及服务端,实现客户端与服务端之间的数据传输。上述服务端为保存支付密码、验证支付密码的管理端。

当某个用户需要设置其在某个应用上的支付密码时,用户可以在客户端上登录对应的应用,并输入其想要的预设支付密码,该预设支付密码通常为6位数字。为了避免服务端拿到用户的明文密码,因此客户端需要对上述预设支付密码进行哈希计算。同时由于不同用户设置的预设支付密码可能相同,造成哈希计算之后得到的哈希密码一致。因此,本实施例中,在预设支付密码哈希计算之前会加盐,盐值为用户凭证信息(每个用户不同),保证了多用户相同密码场景下哈希结果的差异性。具体地,可以将用户的凭证信息与所述预设支付密码进行组合得到第一组合密码,进而再对第一组合密码进行哈希计算得到得到第一哈希密码。

为了避免上述第一哈希密码通过传输层传输至服务端时,被篡改、劫持,上述客户端进一步采用公钥对上述第一哈希密码进行加密,得到第一加密密码,再通过所述传递层传输至上述服务端。在本实施例中,采用rsa加密的方式,客户端公钥加密,服务端私钥解密,保证了传递层的安全,防止抓包之后的数据篡改。

如上述步骤s1所述的,上述服务端接收到上述第一加密密码,该第一加密密码不是一个明文密码,提高了密码安全性。

如上述步骤s2所述的,服务端采用私钥对上述第一加密密码进行解密,得到上述第一哈希密码,该第一哈希密码也不是明文密码,且服务端不能从第一哈希密码中获取到明文的预设支付密码,最大程度保证支付密码安全。

如上述步骤s3所述的,上述服务端上自定义有一个密码器,该密码器用于对上述第一哈希密码进行加密,得到第二加密密码;上述服务端上的密码器的加密与上述客户端的加密方式不同,使得客户端、服务端的密码不互通,增加了密码被劫持的难度。

上述服务端对上述第一哈希密码进行加密,得到第二加密密码之后,则将所述第二加密密码与所述用户进行绑定存储在数据库中,完成了用户预设支付密码的设置、保存过程。该过程中,不仅使得服务端拿不到用户的明文密码,而且使得客户端、服务端的密码不互通,增加了密码的安全性。

在一实施例中,所述基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码的步骤s2,包括:

根据预先配置的参数生成虚拟加密机;其中,所述参数包括服务端自定义的偏移量、cpu消耗、秘钥和盐值长度;

基于所述虚拟加密机对所述第一哈希密码进行加密,得到所述第二加密密码。

在本实施例中,由于上述密码器由服务端自定义,且密码器的生成只与服务端自定义的偏移量、cpu消耗、秘钥和盐值长度相关,则可以使得服务端的加密过程与上述客户端的加密过程不同,使得客户端和服务端实现双层自定义加密,实现密码不互通。

在一实施例中,所述基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,并将所述第二加密密码与所述用户进行绑定存储在数据库中的步骤s3之后,还包括:

步骤s4,在进行支付交易时,接收客户端经传输层传输的第三加密密码;其中,用户在所述客户端发起支付交易时,所述客户端获取所述用户输入的支付密码,并获取所述用户的凭证信息;将所述用户的凭证信息与所述支付密码进行组合得到第二组合密码,并对所述第二组合密码进行哈希计算得到得到第二哈希密码;所述客户端对所述第二哈希密码进行加密,得到所述第三加密密码;

步骤s5,从所述数据库中获取对应所述用户的第二加密密码;

步骤s6,基于所述第二加密密码对所述第三加密密码进行验证。

在本实施例中,上述过程用于实现支付密码的验证过程。在客户端发起支付交易时,需要进行支付密码的验证;用户可以在客户端上输入支付密码,进而客户端对上述支付密码进行哈希计算、加密处理,该处理过程与上述设置预设支付密码的过程一致,在此不再进行赘述。

服务端在拿到基于上述支付密码进行哈希计算、加密处理之后得到的上述第三加密密码,该第三加密密码不是明文密码,服务端从数据库中获取对应所述用户的第二加密密码,并基于所述第二加密密码对所述第三加密密码进行验证。在进行支付密码的验证时,也不需要进行明文密码的验证,更加安全。

在一实施例中,所述基于所述第二加密密码对所述第三加密密码进行验证的步骤s6,包括:

对所述第三加密密码进行解密,得到所述第二哈希密码;

基于所述自定义的密码器对所述第二哈希密码进行加密,得到第四加密密码;

验证所述第四加密密码与所述第二加密密码是否一致,若一致,则判定所述用户输入的支付密码正确。

在一实施例中,所述基于所述第二加密密码对所述第三加密密码进行验证的步骤s6,包括:

对所述第三加密密码进行解密,得到所述第二哈希密码;

基于所述自定义的密码器对所述第二加密密码进行解密,得到所述第一哈希密码;

验证所述第一哈希密码与所述第二哈希密码是否一致,若一致,则判定所述用户输入的支付密码正确。

在一实施例中,所述基于所述第二加密密码对所述第三加密密码进行验证的步骤s6之后,包括:

步骤s7,验证所述支付密码正确时,生成一个无状态的令牌,并将所述令牌经所述传递层传输至所述客户端;其中,所述客户端需要访问业务系统请求业务时,将所述令牌传输至所述业务系统;

步骤s8,接收所述业务系统发送的所述令牌,并对所述令牌进行验证;

步骤s9,将验证结果反馈至所述业务系统,以通过所述业务系统根据所述验证结果,返回业务处理结果至所述客户端。

在本实施例中,在一些特殊业务场景中(比如提现或者消费),需要在多个业务端进行密码的传递使用,若直接传递密码,无疑会增加安全隐患;因此,在本实施例中,不直接进行密码的传递,而是在用户的支付密码验证成功之后,根据预设规则生成一个令牌,该令牌为无状态的jwt动态令牌,其为一次性令牌。且上述令牌与上述用户的支付密码具有绑定关系,该绑定关系存储于密码箱中,防止被窃取。

进而,服务端将上述令牌传输至客户端,客户端将其传输至业务系统请求业务,业务系统在验证是否通过客户端的业务请求时,需要对上述令牌进行验证。因此,业务系统需要将上述令牌发送至上述服务端进行求证,得到服务端的验证结果;最后,业务系统根据所述验证结果,返回业务处理结果至所述客户端。在上述过程中,无需进行支付密码的传输,只进行令牌的传输,且该令牌是一次性令牌,动态生成,最大程度保证了支付密码的安全性和可靠性。

在一实施例中,所述生成一个无状态的令牌的步骤,包括:

获取所述用户的用户属性,所述用户属性至少包括所述凭证信息;

对所述用户属性进行哈希计算,得到属性哈希值;

采用随机算法生成一个八位数的随机数;

将所述属性哈希值与所述随机数进行组合,得到所述令牌。

在本实施例中,上述令牌采用用户属性进行哈希计算结合一个随机数的方式生成,由于用户属性具有唯一性,则上述令牌同样具有唯一性,保障了安全可靠性。

参照图2,本申请一实施例中还提供了一种支付密码的管理系统,包括客户端、传递层以及服务端;

在设置支付密码时,所述客户端获取用户输入的预设支付密码,并获取所述用户的凭证信息;将所述用户的凭证信息与所述预设支付密码进行组合得到第一组合密码,并对所述第一组合密码进行哈希计算得到得到第一哈希密码;

所述客户端对所述第一哈希密码进行加密,得到第一加密密码,并通过所述传递层传输至所述服务端;

所述服务端对所述第一加密密码进行解密,得到所述第一哈希密码;

所述服务端基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,并将所述第二加密密码与所述用户进行绑定存储在数据库中。

在一实施例中,所述服务端基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,具体包括:

根据预先配置的参数生成虚拟加密机;其中,所述参数包括服务端自定义的偏移量、cpu消耗、秘钥和盐值长度;

基于所述虚拟加密机对所述第一哈希密码进行加密,得到所述第二加密密码。

在一实施例中,所述服务端还用于验证所述客户端在发起支付交易时输入的支付密码;

其中,所述客户端在发起支付交易时,获取用户输入的支付密码,并获取所述用户的凭证信息;将所述用户的凭证信息与所述支付密码进行组合得到第二组合密码,并对所述第二组合密码进行哈希计算得到得到第二哈希密码;

所述客户端对所述第二哈希密码进行加密,得到第三加密密码,并通过所述传递层传输至所述服务端;

所述服务端从数据库中获取对应所述用户的第二加密密码,并基于所述第二加密密码对所述第三加密密码进行验证。

在一实施例中,所述服务端基于所述第二加密密码对所述第三加密密码进行验证的过程,具体包括:

对所述第三加密密码进行解密,得到所述第二哈希密码;

基于所述自定义的密码器对所述第二哈希密码进行加密,得到第四加密密码;

验证所述第四加密密码与所述第二加密密码是否一致,若一致,则判定所述用户输入的支付密码正确。

在一实施例中,所述服务端基于所述第二加密密码对所述第三加密密码进行验证的过程,具体包括:

对所述第三加密密码进行解密,得到所述第二哈希密码;

基于所述自定义的密码器对所述第二加密密码进行解密,得到所述第一哈希密码;

验证所述第一哈希密码与所述第二哈希密码是否一致,若一致,则判定所述用户输入的支付密码正确。

在一实施例中,所述系统还包括业务系统;

所述服务端还用于:

验证所述支付密码正确时,生成一个无状态的令牌,并将所述令牌经所述传递层传输至所述客户端;

所述客户端需要访问业务系统请求业务时,将所述令牌传输至所述业务系统;

所述业务系统将所述令牌发送至所述服务端进行验证,并接受所述服务端的验证结果;

所述业务系统根据所述验证结果,返回业务处理结果至所述客户端。

在一实施例中,所述服务端生成一个无状态的令牌的步骤,包括:

获取所述用户的用户属性,所述用户属性至少包括所述凭证信息;

对所述用户属性进行哈希计算,得到属性哈希值;

采用随机算法生成一个八位数的随机数;

将所述属性哈希值与所述随机数进行组合,得到所述令牌。

在本实施例中,上述实施例中的客户端、传递层以及服务端的具体实现,请参照上述方法实施例中所述,在此不再进行赘述。

参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储支付密码等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种支付密码的管理方法。

本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种支付密码的管理方法。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。

综上所述,为本申请实施例中提供的支付密码的管理方法、系统、计算机设备和存储介质,在设置支付密码时,接收客户端经传递层传输的第一加密密码;其中,所述客户端用于获取到用户输入的预设支付密码时,获取所述用户的凭证信息,并将所述用户的凭证信息与所述预设支付密码进行组合得到第一组合密码,对所述第一组合密码进行哈希计算得到得到第一哈希密码;对所述第一哈希密码进行加密,得到所述第一加密密码;对所述第一加密密码进行解密,得到所述第一哈希密码;基于自定义的密码器对所述第一哈希密码进行加密,得到第二加密密码,并将所述第二加密密码与所述用户进行绑定存储在数据库中。本申请中保存在服务端中预设支付密码不是以明文密码的形式保存,而且可以保障唯一性,同时客户端、服务端的加密方式不互通,提高支付密码保存的安全性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

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