登陆验证方法、装置、计算机设备和存储介质转让专利

申请号 : CN202210367756.4

文献号 : CN114745173B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周雁鸣万重桂

申请人 : 湖南长银五八消费金融股份有限公司

摘要 :

本申请涉及一种登陆验证方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取客户端传输的用户登陆密码;根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算;若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值;若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值;将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,通过二次哈希值与目标哈希值比较来验证用户身份的合法性,提高了登陆验证的效率。

权利要求 :

1.一种登陆验证方法,其特征在于,所述方法包括:

获取客户端传输的用户登陆密码;

根据所述用户登陆密码的数据特征,判断所述用户登陆密码是否进行过哈希计算;其中,所述用户登陆密码的数据特征包括长度特征或者字符特征;

若所述用户登陆密码进行过哈希计算,则对所述用户登陆密码再次进行哈希计算,得到二次哈希值;

若所述用户登陆密码未进行过哈希计算,则对所述用户登陆密码进行哈希计算,得到一次哈希值,对所述一次哈希值再次进行哈希计算,得到二次哈希值;

将所述二次哈希值与本地存储的目标哈希值进行比较,若所述二次哈希值与所述目标哈希值一致,则验证通过,其中,所述目标哈希值为对原始一次哈希值再次进行哈希计算得到,所述原始一次哈希值为客户端对用户原始密码进行哈希计算得到;

所述获取客户端传输的用户登陆密码包括:

获取客户端发送的登陆请求,对所述登陆请求进行解析,得到用户标识和用户登陆密码;

所述登陆请求由所述客户端响应用户登陆操作,判断客户端本地是否具备哈希计算工具后生成。

2.根据权利要求1所述的方法,其特征在于,所述根据所述用户登陆密码的数据特征,判断所述用户登陆密码是否进行过哈希计算包括:获取所述用户登陆密码的长度特征以及预设哈希值长度;

根据所述用户登陆密码的长度特征与所述预设哈希值长度是否一致,判断所述用户登陆密码是否进行过哈希计算。

3.根据权利要求2所述的方法,其特征在于,所述预设哈希值长度大于用户原始密码长度。

4.根据权利要求1所述的方法,其特征在于,所述根据所述用户登陆密码的数据特征,判断所述用户登陆密码是否进行过哈希计算包括:获取所述用户登陆密码的字符特征以及预设魔术字符串;

根据所述用户登陆密码的字符特征中是否存在预设魔术字符串,判断所述用户登陆密码是否进行过哈希计算。

5.根据权利要求1所述的方法,其特征在于,所述将所述二次哈希值与本地存储的目标哈希值进行比较之前,还包括:根据所述用户标识获取本地存储的目标哈希值。

6.根据权利要求1所述的方法,其特征在于,若所述客户端本地具备哈希计算工具,则对所述用户登陆密码进行哈希,根据哈希后的用户登陆密码与用户标识生成登陆请求;若所述客户端本地不具备哈希计算工具,则根据用户登陆密码与用户标识生成登陆请求。

7.一种登陆验证装置,其特征在于,所述装置包括:

获取模块,用于获取客户端传输的用户登陆密码;

判断模块,用于根据所述用户登陆密码的数据特征,判断所述用户登陆密码是否进行过哈希计算;其中,所述用户登陆密码的数据特征包括长度特征或者字符特征;

计算模块,用于若所述用户登陆密码进行过哈希计算,则对所述用户登陆密码再次进行哈希计算,得到二次哈希值;

计算模块还用于若所述用户登陆密码未进行过哈希计算,则对所述用户登陆密码进行哈希计算,得到一次哈希值,对所述一次哈希值再次进行哈希计算,得到二次哈希值;

比较模块,用于将所述二次哈希值与本地存储的目标哈希值进行比较,若所述二次哈希值与所述目标哈希值一致,则验证通过,其中,所述目标哈希值为对原始一次哈希值再次进行哈希计算得到,所述原始一次哈希值为客户端对用户原始密码进行哈希计算得到;

获取模块还用于获取客户端发送的登陆请求,对所述登陆请求进行解析,得到用户标识和用户登陆密码;所述登陆请求由所述客户端响应用户登陆操作,判断客户端本地是否具备哈希计算工具后生成。

8.根据权利要求7所述的装置,其特征在于,所述判断模块还用于获取所述用户登陆密码的长度特征以及预设哈希值长度;

根据所述用户登陆密码的长度特征与所述预设哈希值长度是否一致,判断所述用户登陆密码是否进行过哈希计算。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。

说明书 :

登陆验证方法、装置、计算机设备和存储介质

技术领域

[0001] 本申请涉及网络安全技术领域,特别是涉及一种登陆验证方法、装置、计算机设备、存储介质和程序产品。

背景技术

[0002] 随着互联网技术的发展,越来越多的数据被采集,数据的安全问题成为当前亟需解决的重要问题。
[0003] 目前的数据传输过程中,首先对用户身份的合法性进行验证,将用户密码存储在服务器端以对用户身份进行验证。然而,服务器端存储的用户密码通常是加密后的密码,目前在服务器端对用户密码进行解密再进行密码验证,服务器端需要多次与客户端进行交互,因此登陆验证效率低下。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种能够提高验证效率的登陆验证方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0005] 第一方面,本申请提供了一种登陆验证方法。该方法包括:
[0006] 获取客户端传输的用户登陆密码;
[0007] 根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算;
[0008] 若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值;
[0009] 若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值;
[0010] 将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,其中,目标哈希值为对原始一次哈希值再次进行哈希计算得到,原始一次哈希值为客户端对用户原始密码进行哈希计算得到。
[0011] 在其中一个实施例中,根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算包括:获取用户登陆密码的长度特征以及预设哈希值长度;根据用户登陆密码的长度特征与预设哈希值长度是否一致,判断用户登陆密码是否进行过哈希计算。
[0012] 在其中一个实施例中,预设哈希值长度大于用户原始密码长度。
[0013] 在其中一个实施例中,根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算包括:获取用户登陆密码的字符特征以及预设魔术字符串;根据用户登陆密码的字符特征中是否存在预设魔术字符串,判断用户登陆密码是否进行过哈希计算。
[0014] 在其中一个实施例中,获取客户端传输的用户登陆密码包括:获取客户端发送的登陆请求,对登陆请求进行解析,得到用户标识和用户登陆密码;将二次哈希值与本地存储的目标哈希值进行比较之前,还包括:根据用户标识获取本地存储的目标哈希值。
[0015] 在其中一个实施例中,登陆请求由客户端响应用户登陆操作,判断客户端本地是否具备哈希计算工具后生成;若客户端本地具备哈希计算工具,则对用户登陆密码进行哈希,根据哈希后的用户登陆密码与用户标识生成登陆请求;若客户端本地不具备哈希计算工具,则根据用户登陆密码与用户标识生成登陆请求。
[0016] 第二方面,本申请还提供了一种登陆验证装置。该装置包括:
[0017] 获取模块,用于获取客户端传输的用户登陆密码;
[0018] 判断模块,用于根据所述用户登陆密码的数据特征,判断所述用户登陆密码是否进行过哈希计算;
[0019] 计算模块,用于若所述用户登陆密码进行过哈希计算,则对所述用户登陆密码再次进行哈希计算,得到二次哈希值;
[0020] 计算模块还用于若所述用户登陆密码未进行过哈希计算,则对所述用户登陆密码进行哈希计算,得到一次哈希值,对所述一次哈希值再次进行哈希计算,得到二次哈希值;
[0021] 比较模块,用于将所述二次哈希值与本地存储的目标哈希值进行比较,若所述二次哈希值与所述目标哈希值一致,则验证通过,其中,所述目标哈希值为对原始一次哈希值再次进行哈希计算得到,所述原始一次哈希值为客户端对用户原始密码进行哈希计算得到。
[0022] 第三方面,本申请还提供了一种计算机设备。该计算机设备包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现以下步骤:
[0023] 获取客户端传输的用户登陆密码;
[0024] 根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算;
[0025] 若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值;
[0026] 若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值;
[0027] 将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,其中,目标哈希值为对原始一次哈希值再次进行哈希计算得到,原始一次哈希值为客户端对用户原始密码进行哈希计算得到。
[0028] 第四方面,本申请还提供了一种计算机可读存储介质。该计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0029] 获取客户端传输的用户登陆密码;
[0030] 根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算;
[0031] 若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值;
[0032] 若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值;
[0033] 将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,其中,目标哈希值为对原始一次哈希值再次进行哈希计算得到,原始一次哈希值为客户端对用户原始密码进行哈希计算得到。
[0034] 第五方面,本申请还提供了一种计算机程序产品。该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0035] 获取客户端传输的用户登陆密码;
[0036] 根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算;
[0037] 若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值;
[0038] 若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值;
[0039] 将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,其中,目标哈希值为对原始一次哈希值再次进行哈希计算得到,原始一次哈希值为客户端对用户原始密码进行哈希计算得到。
[0040] 上述登陆验证方法、装置、计算机设备、存储介质和计算机程序产品,获取客户端传输的用户登陆密码;根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算;若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值;若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值;将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,其中,目标哈希值为对原始一次哈希值再次进行哈希计算得到,原始一次哈希值为客户端对用户原始密码进行哈希计算得到。整个方案通过在密码验证的过程中,判断用户登陆密码是否进行过哈希计算,若进行过哈希计算,则对用户登陆密码再次进行哈希,得到二次哈希值,若用户登陆密码未进行过哈希计算,则直接对用户登陆密码进行两次哈希计算,得到二次哈希值,最后通过二次哈希值与目标哈希值比较来验证用户身份的合法性,提高了登陆验证的效率。

附图说明

[0041] 图1为一个实施例中登陆验证方法的应用环境图;
[0042] 图2为一个实施例中登陆验证方法的流程示意图;
[0043] 图3为一个实施例中登陆验证步骤的流程示意图;
[0044] 图4为一个实施例中登陆验证装置的结构框图;
[0045] 图5为一个实施例中计算机设备的内部结构图。

具体实施方式

[0046] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0047] 本申请实施例提供的登陆验证方法,可以应用于如图1所示的应用环境中。其中,客户端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104获取客户端传输的用户登陆密码;根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算;若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值;若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值;将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,将验证通过信息推送至客户端102,其中,目标哈希值为对原始一次哈希值再次进行哈希计算得到,原始一次哈希值为客户端对用户原始密码进行哈希计算得到。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0048] 在一个实施例中,如图2所示,提供了一种登陆验证方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0049] 步骤202,获取客户端传输的用户登陆密码。
[0050] 具体地,服务器获取客户端发送的登陆请求,对登陆请求进行解析,得到用户登陆密码。
[0051] 步骤204,根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算。
[0052] 其中,用户登陆密码的数据特征可以为长度特征或者字符特征。
[0053] 具体地,服务器提取用户登陆密码的数据特征,得到长度特征或者字符特征,根据用户登陆密码的长度特征或者字符特征,判断用户登陆密码是否进行过哈希计算。
[0054] 本申请实施例中的哈希计算过程为单向非可逆加密算法,可以为SHA(Secure Hash Algorithm,安全散列算法)、MD5(MD5 Message‑Digest Algorithm,MD5信息摘要算法)、HMAC(Hash‑based Message Authentication Code,哈希消息认证码)算法等,保证用户密码在服务器端存储的安全性。
[0055] 步骤206,若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值。
[0056] 具体地,若服务器判断用户登陆密码进行过哈希计算,则对用户密码再次进行哈希计算,得到二次哈希值,此时二次哈希值中的第一次哈希计算在客户端进行,第二次哈希计算在服务器端进行。
[0057] 步骤208,若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值。
[0058] 具体地,若服务器判断用户登陆密码为进行过哈希计算,则对用户密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值,此时二次哈希值中的第一次哈希计算和第二次哈希计算都在服务器端进行。
[0059] 步骤210,将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过。
[0060] 其中,目标哈希值为对原始一次哈希值再次进行哈希计算得到,原始一次哈希值为客户端对用户原始密码进行哈希计算得到。
[0061] 具体地,服务器从本地数据库中获取存储的目标哈希值,将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,推送验证通过请求至客户端。
[0062] 上述登陆验证方法中,获取客户端传输的用户登陆密码;根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算;若用户登陆密码进行过哈希计算,则对用户登陆密码再次进行哈希计算,得到二次哈希值;若用户登陆密码未进行过哈希计算,则对用户登陆密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值;将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,其中,目标哈希值为对原始一次哈希值再次进行哈希计算得到,原始一次哈希值为客户端对用户原始密码进行哈希计算得到。整个方案通过在密码验证的过程中,判断用户登陆密码是否进行过哈希计算,若进行过哈希计算,则对用户登陆密码再次进行哈希,得到二次哈希值,若用户登陆密码未进行过哈希计算,则直接对用户登陆密码进行两次哈希计算,得到二次哈希值,最后通过二次哈希值与目标哈希值比较来验证用户身份的合法性,提高了登陆验证的效率。
[0063] 在一个可选的实施例中,获取客户端传输的用户登陆密码包括:获取客户端发送的登陆请求,对登陆请求进行解析,得到用户标识和用户登陆密码;将二次哈希值与本地存储的目标哈希值进行比较之前,还包括:根据用户标识获取本地存储的目标哈希值。
[0064] 具体地,服务器获取客户端发送的登陆请求,对登陆请求进行解析,对登陆请求进行解析,得到用户标识和用户登陆密码。服务器提取用户登陆密码的数据特征,得到长度特征或者字符特征,根据用户登陆密码的长度特征或者字符特征,判断用户登陆密码是否进行过哈希计算。若服务器判断用户登陆密码进行过哈希计算,则对用户密码再次进行哈希计算,得到二次哈希值。若服务器判断用户登陆密码为进行过哈希计算,则对用户密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值。服务器根据用户标识获取本地存储的目标哈希值从本地数据库中获取用户标识对应的目标哈希值,将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过,推送验证通过请求至客户端。
[0065] 在一个可选的实施例中,登陆请求由客户端响应用户登陆操作,判断客户端本地是否具备哈希计算工具后生成;若客户端本地具备哈希计算工具,则对用户登陆密码进行哈希,根据哈希后的用户登陆密码与用户标识生成登陆请求;若客户端本地不具备哈希计算工具,则根据用户登陆密码与用户标识生成登陆请求。
[0066] 具体地,客户端监听到用户登陆操作后,响应用户登陆操作,判断客户端本地是否具备哈希计算工具,若客户端本地具备哈希计算工具,则对用户登陆密码进行哈希,根据哈希后的用户登陆密码与用户标识生成登陆请求;若客户端本地不具备哈希计算工具,则根据用户登陆密码与用户标识生成登陆请求。进一步地,由于哈希计算是通过javascrip脚本来实现的,因此如果客户端的javascrip脚本插件被禁用,则客户端本地不具备哈希计算工具。
[0067] 在一个可选的实施例中,根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算包括:获取用户登陆密码的长度特征以及预设哈希值长度;根据用户登陆密码的长度特征与预设哈希值长度是否一致,判断用户登陆密码是否进行过哈希计算。
[0068] 具体地,服务器根据用户登陆密码的位数提取用户登陆密码的长度特征,再获取本地存储的预设哈希值长度,根据用户登陆密码的长度特征与预设哈希值长度是否一致,判断用户登陆密码是否进行过哈希计算。由于哈希计算是将数据运算为另一固定长度值,因此不同的数字分别进行哈希计算,得到的数字的长度一样。若用户登陆密码的长度特征等于预设哈希值长度,则用户登陆密码进行过哈希计算。若用户登陆密码的长度特征小于预设哈希值长度,则用户登陆密码未进行过哈希计算。
[0069] 本实施例中服务器通过用户登陆密码的长度特征,进而根据长度特征来判断用户登陆密码是否进行过哈希计算,简单高效,进一步提升密码验证的效率。
[0070] 在一个可选的实施例中,预设哈希值长度大于用户原始密码长度。这样可以保证根据用户登陆密码的长度特征进行是否哈希计算判断的准确性,可以在用户设置密码时进行长度限制,使得用户原始密码长度小于预设哈希值长度,同理,预设哈希值长度大于用户登陆密码长度。
[0071] 在一个可选的实施例中,根据用户登陆密码的数据特征,判断用户登陆密码是否进行过哈希计算包括:获取用户登陆密码的字符特征以及预设魔术字符串;根据用户登陆密码的字符特征中是否存在预设魔术字符串,判断用户登陆密码是否进行过哈希计算。
[0072] 其中,预设魔术字符串指的是在用户登陆密码的前缀加入的标志字符串,或者是在在用户登陆密码的后缀加入的标志字符串,或者是在用户登陆密码的前缀以及后缀同时加入的标志字符串。
[0073] 具体地,服务器根据用户登陆密码的组成字符提取用户登陆密码的字符特征,再获取本地存储的预设魔术字符串,通过判断用户登陆密码的字符特征中是否存在预设魔术字符串,判断用户登陆密码是否进行过哈希计算。若用户登陆密码的字符特征中存在预设魔术字符串,则用户登陆密码进行过哈希计算。若用户登陆密码的字符特征中不存在预设魔术字符串,则用户登陆密码未进行过哈希计算。
[0074] 本实施例中,客户端在对用户登陆密码进行哈希计算后,在哈希计算后的用户登陆密码的前缀、后缀或者其中一种中加入预设魔术字符串,根据加入预设魔术字符串的用户登陆密码和用户标识生成登陆请求,并将登陆请求发送至服务器。
[0075] 本实施例中服务器通过用户登陆密码的字符特征,进而根据字符特征来判断用户登陆密码是否进行过哈希计算,简单高效,进一步提升密码验证的效率。
[0076] 为了易于理解本申请实施例提供的技术方案,如图3所示,以完整的登陆验证过程对本申请实施例提供的登陆验证方法进行简要说明:
[0077] (1)客户端响应用户登陆操作,获取用户标识以及用户登陆密码。
[0078] (2)客户端判断本地是否具备哈希计算工具。
[0079] (3)若客户端本地具备哈希计算工具,则对用户登陆密码进行哈希,根据哈希后的用户登陆密码与用户标识生成登陆请求。
[0080] (4)若客户端本地不具备哈希计算工具,则根据用户登陆密码与用户标识生成登陆请求。
[0081] (5)服务器获取客户端发送的登陆请求,对登陆请求进行解析,对登陆请求进行解析,得到用户标识和用户登陆密码。
[0082] (6)服务器提取用户登陆密码的数据特征,得到长度特征或者字符特征。
[0083] (7)服务器根据用户登陆密码的长度特征或者字符特征,判断用户登陆密码是否进行过哈希计算。
[0084] (8)若服务器判断用户登陆密码为进行过哈希计算,则对用户密码进行哈希计算,得到一次哈希值,对一次哈希值再次进行哈希计算,得到二次哈希值。
[0085] (9)若服务器判断用户登陆密码进行过哈希计算,则对用户密码再次进行哈希计算,得到二次哈希值。
[0086] (10)服务器根据用户标识获取本地存储的目标哈希值从本地数据库中获取用户标识对应的目标哈希值,将二次哈希值与本地存储的目标哈希值进行比较,若二次哈希值与目标哈希值一致,则验证通过。
[0087] 应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0088] 基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的登陆验证方法的登陆验证装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个登陆验证装置实施例中的具体限定可以参见上文中对于登陆验证方法的限定,在此不再赘述。
[0089] 在一个实施例中,如图4所示,提供了一种登陆验证装置,包括:获取模块402、判断模块404、计算模块406和比较模块408,其中:
[0090] 获取模块402,用于获取客户端传输的用户登陆密码;
[0091] 判断模块404,用于根据所述用户登陆密码的数据特征,判断所述用户登陆密码是否进行过哈希计算;
[0092] 计算模块406,用于若所述用户登陆密码进行过哈希计算,则对所述用户登陆密码再次进行哈希计算,得到二次哈希值;
[0093] 计算模块406还用于若所述用户登陆密码未进行过哈希计算,则对所述用户登陆密码进行哈希计算,得到一次哈希值,对所述一次哈希值再次进行哈希计算,得到二次哈希值;
[0094] 比较模块408,用于将所述二次哈希值与本地存储的目标哈希值进行比较,若所述二次哈希值与所述目标哈希值一致,则验证通过,其中,所述目标哈希值为对原始一次哈希值再次进行哈希计算得到,所述原始一次哈希值为客户端对用户原始密码进行哈希计算得到。
[0095] 在一个可选的实施例中,判断模块404还用于获取用户登陆密码的长度特征以及预设哈希值长度;根据用户登陆密码的长度特征与预设哈希值长度是否一致,判断用户登陆密码是否进行过哈希计算。
[0096] 在一个可选的实施例中,预设哈希值长度大于用户原始密码长度。
[0097] 在一个可选的实施例中,判断模块404还用于获取用户登陆密码的字符特征以及预设魔术字符串;根据用户登陆密码的字符特征中是否存在预设魔术字符串,判断用户登陆密码是否进行过哈希计算。
[0098] 在一个可选的实施例中,获取模块402还用于获取客户端发送的登陆请求,对登陆请求进行解析,得到用户标识和用户登陆密码;将二次哈希值与本地存储的目标哈希值进行比较之前,还包括:根据用户标识获取本地存储的目标哈希值。
[0099] 在一个可选的实施例中,登陆验证模块还包括登陆请求生成模块,用于由客户端响应用户登陆操作,判断客户端本地是否具备哈希计算工具后生成;若客户端本地具备哈希计算工具,则对用户登陆密码进行哈希,根据哈希后的用户登陆密码与用户标识生成登陆请求;若客户端本地不具备哈希计算工具,则根据用户登陆密码与用户标识生成登陆请求。
[0100] 上述登陆验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0101] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标哈希值、预设哈希值长度以及预设魔术字符串。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种登陆验证方法。
[0102] 本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0103] 在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0104] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0105] 在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0106] 需要说明的是,本申请所涉及的用户信息(包括但不限于用户标识、用户登陆密码等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0107] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0108] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0109] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。