CN114117404A - 一种用户认证方法、装置、设备、系统及存储介质 - Google Patents

一种用户认证方法、装置、设备、系统及存储介质 Download PDF

Info

Publication number
CN114117404A
CN114117404A CN202111443813.4A CN202111443813A CN114117404A CN 114117404 A CN114117404 A CN 114117404A CN 202111443813 A CN202111443813 A CN 202111443813A CN 114117404 A CN114117404 A CN 114117404A
Authority
CN
China
Prior art keywords
hash
key value
values
keyboard
key
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.)
Pending
Application number
CN202111443813.4A
Other languages
English (en)
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.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202111443813.4A priority Critical patent/CN114117404A/zh
Publication of CN114117404A publication Critical patent/CN114117404A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种用户认证方法、装置、设备及存储介质。本发明涉及云计算安全服务技术领域。该方法包括:应用于客户端,向服务端发送第一键盘打开通知消息;接收服务端返回的键盘上各键值对应的第一哈希值;基于第一敏感信息中各键值对应的第一哈希值生成第一哈希键值组合;将第一哈希键值组合发送给服务端。应用于服务端,基于键盘上各键值对应的第一初始盐值生成各键值对应的第一哈希值;将键盘上各键值对应的第一哈希值发送给客户端;接收客户端发送的第一哈希键值组合;基于第一哈希键值组合对用户进行认证。本发明的技术方案,增强了用户密码在传输过程中的安全性,并在保证原有安全性能的基础上进一步加强密码的不可破解性。

Description

一种用户认证方法、装置、设备、系统及存储介质
技术领域
本发明实施例涉及云计算安全服务技术领域,尤其涉及一种用户认证方法、装置、设备、系统及存储介质。
背景技术
用户在输入一些敏感信息如密码、验证码等信息时,为了保证敏感信息不被泄露、窃取,可以利用安全键盘提高密码在传输过程中的安全性。一般的安全键盘采用单次盐值加哈希加密的方式对用户的敏感信息进行处理,并将处理后的敏感信息发送给服务端进行认证。
然而,上述采用单次盐值加哈希加密的方式是客户端使用服务端发送的与该用户的用户名对应的盐值,对该用户输入的敏感信息整体进行一次性哈希加密,易被攻击者采用技术手段获取敏感信息的原文,安全性较差。
发明内容
本发明实施例提供一种用户认证方法、装置、设备、系统及存储介质,以增强用户敏感信息在认证过程中的安全性。
第一方面,本发明实施例提供了一种用户认证方法,包括:
在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;
接收所述服务端返回的键盘上各键值分别对应的第一哈希值;
基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;
将所述第一哈希键值组合发送给服务端,以使所述服务端基于所述第一哈希键值组合对所述用户进行认证。
第二方面,本发明实施例提供了一种用户认证方法,包括:
在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;
将所述键盘上各键值分别对应的第一哈希值发送给所述客户端;
接收所述客户端发送的第一哈希键值组合;其中,所述第一哈希键值组合是所述客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;
基于所述第一哈希键值组合对所述用户进行认证。
第三方面,本发明实施例还提供了一种用户认证装置,该装置包括:
指令接收模块,用于在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;
第一哈希值接收模块,用于接收所述服务端返回的键盘上各键值分别对应的第一哈希值;
第一哈希键值组合生成模块,用于基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;
第一哈希键值组合发送模块,用于将所述第一哈希键值组合发送给服务端,以使所述服务端基于所述第一哈希键值组合对所述用户进行认证。
第四方面,本发明实施例还提供了一种用户认证装置,该装置包括:
第一哈希值生成模块,用于在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;
第一哈希值发送模块,用于将所述键盘上各键值分别对应的第一哈希值发送给所述客户端;
第一哈希键值组合接收模块,用于接收所述客户端发送的第一哈希键值组合;其中,所述第一哈希键值组合是所述客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;
用户认证模块,用于基于所述第一哈希键值组合对所述用户进行认证。
第五方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例中任一所述的用户认证方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的用户认证方法。
第七方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本发明实施例中任一所述的用户认证方法。
第八方面,本发明实施例还提供了一种用户认证系统,包括:
客户端,用于在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;接收所述服务端返回的键盘上各键值分别对应的第一哈希值;基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;将所述第一哈希键值组合发送给服务端;
服务端,用于在接收到所述第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;将所述键盘上各键值分别对应的第一哈希值发送给所述客户端;接收所述客户端发送的所述第一哈希键值组合,基于所述第一哈希键值组合对所述用户进行认证。
本发明实施例中,客户端可以接收服务端返回的键盘上各键值分别对应的第一哈希值;基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;将第一哈希键值组合发送给服务端。服务端可以基于键盘上各键值分别对应的第一初始盐值生成各键值分别对应的第一哈希值;将键盘上各键值分别对应的第一哈希值发送给客户端;接收客户端发送的第一哈希键值组合;基于第一哈希键值组合对用户进行认证。本发明的技术方案在用户每次进行认证时,服务端都需要生成一次键盘上各键值对应的第一哈希值,使得客户端可以基于用户输入的每个按键键值对应的当前第一哈希值生成待传输的第一哈希键值组合,实现了以按键为维度对待传输的第一敏感信息进行动态加密,可以增强用户敏感信息在认证过程中的安全性,并使第一敏感信息在传输过程中难以被还原成明文,在保证原有安全性能的基础上进一步加强密码的不可破解性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例一提供的一种应用于客户端的用户认证方法的流程图;
图2为本发明实施例一提供的生成第一哈希键值的示意图;
图3为本发明实施例二提供的一种用户认证方法中的敏感信息设置阶段的流程图;
图4为本发明实施例三提供的一种应用于服务端的用户认证方法的流程图;
图5为本发明实施例四提供的应用于服务端的用户认证方法的基于第一哈希键值组合对用户进行认证方法的流程图;
图6为本发明实施例五提供的另一种用户认证方法中的敏感信息设置阶段的的流程图;
图7为本发明实施例六提供的一种用户认证系统结构示意图;
图8为本发明实施例六提供的敏感信息设置阶段服务端与客户端交互过程的示意图;
图9为本发明实施例六提供的用户认证阶段服务端与客户端交互过程的示意图;
图10为本发明实施例七提供的一种用于客户端的用户认证装置的结构示意图;
图11为本发明实施例八提供的一种用于服务端的用户认证装置的结构示意图;
图12为本发明实施例九提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
实施例一
图1为本发明实施例一提供的一种用户认证方法的流程图,本实施例可适用于提高用户敏感信息在认证过程中的安全性的情况,该方法可以由本发明实施例中的应用于客户端的用户认证装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
S110,在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息。
具体的,第一敏感信息可以为密码或验证码。以敏感信息为密码为例,用户可通过客户端的网页输入用户名和密码进行登录和验证等操作。其中,用户名可以是用户的手机号码、用户身份证号码、用户自己设置的昵称等任何唯一的代表该用户的用户名。在用户需要输入密码时,会手动执行打开键盘的操作,从而触发生成第一键盘打开指令,客户端的安全键盘JS端可以接收到该第一键盘打开指令。进一步地,在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息。
S120,接收服务端返回的键盘上各键值分别对应的第一哈希值。
具体的,服务端可以向客户端提供键盘上各键值分别对应的第一哈希值。其中,服务端包含有安全键盘SDK。通过安全键盘SDK对键盘的数据输入过程、数据存储过程和内存数据换算过程进行全程高级加密,可以有效防止数据侦听、键盘劫持和键盘截屏等攻击行为。示例的,假设待打开的第一键盘上有0-9十个键值,服务端可以随机提供十个随机字符串作为每个键值分别对应的第一初始盐值,安全键盘SDK在生成时间戳、键盘标识(UUID)后,对每个第一初始盐值,以该时间戳和键盘标识作为随机因子,采用国产哈希算法(SM3)算法对该第一初始盐值进行加密,从加密结果中选取出预设数目的字符作为对应键值的第一哈希值,其中,该预设数目可以是大于或等于4的数值。其中,SM3是一种密码散列函数标准,主要用于数字签名及验证、消息认证码生成及验证以及随机数生成等。进一步地,服务端将生成的键盘上各键值分别对应的第一哈希值返回给客户端,同时可以将UUID、时间戳等信息一并发送给客户端。
S130,基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合。
具体的,客户端接收到键盘上各键值分别对应的第一哈希值后,基于各键值分别对应的第一哈希值生成并显示第一键盘,如图2所示,假设待打开的第一键盘上有0-9十个键值,每个键值的右下角的字符对应该键值的第一哈希值。其中,右下角的各键值的第一哈希值可以不在客户端的键盘界面上显示出来。用户通过显示的第一键盘输入第一敏感信息,基于该键盘上各键值分别对应的第一哈希值确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值。示例的,现已得知0-9十个键值的第一哈希值。用户输入的第一敏感信息为123456,则从0-9十个键值的第一哈希值中确定出123456这六个键值的第一哈希值。如图2所示,123456这六个键值的第一哈希值分别为:4be0、5f37、5cb1、6677、1a3b和5649。进一步地,基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合为:“4be05f375cb166771a3b5649”。本方案实施例中,客户端接收输入的第一敏感信息的同时可以接收用户输入的用户名。
在上述实施例的基础上,可选地,基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合,可包括步骤A1-A3:
步骤A1、获取预置密钥值。
具体的,在客户端的内存中存储有预置密钥值。获取该密钥值,假设该秘钥值为S0。
步骤A2、按照输入顺序遍历第一敏感信息中的各键值,获取遍历到的当前键值的第一哈希值,对当前键值的第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值。
示例的,假设用户输入的密码为“123456”,首先获取“1”的第一哈希值,记为S1。将S1和S0进行拼接后利用SM3算法加密得到S2,其中,S2=SM3(S0+S1)。用计算出的S2替换更新S0,得到新的S0。以此类推,遍历剩下的“23456”的各键值的第一哈希值。
步骤A3、将遍历结束后的当前预置密钥值确定为第一哈希键值组合。
上述步骤使用了具有后效性的哈希加密方法生成第一哈希键值组合,通过遍历敏感信息中每一个键值使得加密的盐值的强度随着敏感信息的长度增加,进一步加强了用户敏感信息的安全性;并且实现了以按键为维度,每接收一个按键键值便为该键值加密一次,使第一敏感信息在传输过程中不可被还原成明文,进一步增强了用户输入的第一敏感信息在传输过程中的安全性。
S140,将第一哈希键值组合发送给服务端,以使服务端基于第一哈希键值组合对用户进行认证。
在将第一哈希键值组合发送给服务端之前,可以采用单向哈希加密算法,如Bcrypt算法对第一哈希键值组合进行加密。其中,单向哈希加密算法不可逆向破解,在一定程度上增强了第一哈希键值组合的安全性。进一步地,客户端在生成第一哈希键值组合后,将第一哈希键值组合发送给服务端(同时可将用户名、UUID和时间戳等一同发送给服务端,服务端可以利用第一哈希键值组合对用户进行认证。
本实施例的技术方案,通过在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;接收服务端返回的键盘上各键值分别对应的第一哈希值;基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;将第一哈希键值组合发送给服务端,以使服务端基于第一哈希键值组合对用户进行认证。本实施例的技术方案在用户每次进行认证时,服务端都需要生成一次第一哈希值,使得客户端可以基于用户输入的每个按键键值的第一哈希值生成待传输的第一哈希键值组合,实现了以按键为维度对待传输的第一敏感信息进行动态加密,可以增强用户敏感信息在认证过程中的安全性,并使第一敏感信息在传输过程中难以被还原成明文,在保证原有安全性能的基础上进一步加强密码的不可破解性。
实施例二
图3为本发明实施例二提供的一种用户认证方法中的敏感信息设置阶段的流程图,本实施例以上述实施例为基础对在接收到第一键盘打开指令之前的步骤进行细化。如图3所示,本实施例的方法具体包括如下步骤:
S210,接收到第二键盘打开指令时,向服务端发送第二键盘打开通知消息。
具体的,第二敏感信息可以为密码或验证码。以敏感信息为密码为例,用户可通过客户端的网页输入用户名和密码进行密码设置等操作。在用户需要输入密码时,会手动执行打开键盘的操作,从而触发生成第二键盘打开指令,客户端的安全键盘JS端可以接收到该第二键盘打开指令。进一步地,在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息。
S220,接收服务端返回的键盘上各键值分别对应的第二哈希值。
具体的,服务端可以向客户端提供键盘上各键值分别对应的第二哈希值。示例的,假设待打开的第二键盘上有0-9十个键值,服务端可以随机生成十个随机字符串作为每个键值分别对应的第二初始盐值,安全键盘SDK在生成时间戳、键盘标识(UUID)后,对每个第二初始盐值,以该时间戳和键盘标识作为随机因子,采用国产哈希算法(SM3)算法对该第二初始盐值进行加密,从加密结果中选取出预设数目的字符作为对应键值的第二哈希值,其中,该预设数目可以是大于或等于4的数值。进一步地,服务端将生成的键盘上各键值分别对应的第二哈希值返回给客户端,同时可以将UUID、时间戳等信息一并发送给客户端。
S230,基于当前接收信息确定用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值,基于第二敏感信息中各键值分别对应的第二哈希值生成第二哈希键值组合。
具体的,客户端接收到键盘上各键值分别对应的第二哈希值后,基于各键值分别对应的第二哈希值生成并显示第二键盘。用户通过显示的第二键盘输入第二敏感信息,基于该键盘上各键值分别对应的第二哈希值确定用户通过键盘输入的第二敏感信息中各键值分别对应的第二哈希值。示例的,现已得知0-9十个键值的第二哈希值。用户输入的第二敏感信息为123456,则从0-9十个键值的第二哈希值中确定出123456这六个键值的第二哈希值。进一步地,基于第二敏感信息中各键值分别对应的第二哈希值将其第二哈希值进行顺序组合,生成第二哈希键值组合。本方案实施例中,客户端接收输入的第二敏感信息的同时可以接收用户输入的用户名。
在上述实施例的基础上,可选地,按照输入顺序将所述第二敏感信息中各键值分别对应的第二哈希值依次进行拼接,将拼接得到的字符串确定为第二哈希键值组合。
示例的,假设哈希值的字符长度为4,第二敏感信息为“123456”。由上一步确定出“1”对应的第二哈希值为“4be0”,“2”、“3”、“4”、“5”和“6”分别对应的第二哈希值为“5f37”、“5cb1”、“6677”、“1a3b”和“5649”。进一步地,拼接各按键的第二哈希键值得到第二哈希键值组合为“4be05f375cb166771a3b5649”。
通过上述方式得到第二哈希键值组合,增强了用户设置的敏感信息的安全性,使得用户敏感信息在服务端存储入库过程中不易被暴露。
S240,将第二哈希键值组合发送给服务端,以使服务端存储第二哈希键值组合,并通过确定第一哈希键值组合与第二哈希键值组合的一致性来对用户进行认证。
在将第二哈希键值组合发送给服务端之前,可以采用非对称加密算法,如SM2算法对第二哈希键值组合进行加密。其中,非对称加密算法需要两个密钥,分别是公开密钥和私有密钥。公开密钥和私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。非对称加密算法不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便。进一步地,客户端将第二哈希键值组合发送给服务端,同时可将时间戳、UUID和用户名等信息一同发送给服务端,以使服务端存储第二哈希键值组合,并通过确定第一哈希键值组合与第二哈希键值组合的一致性来对用户进行认证。
本实施例的技术方案,通过在接收到第二键盘打开指令时,向服务端发送第二键盘打开通知消息;接收服务端返回的键盘上各键值分别对应的第二哈希值;基于当前接收信息确定用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值,基于第二敏感信息中各键值分别对应的第二哈希值生成第二哈希键值组合;将第二哈希键值组合发送给服务端,以使服务端存储第二哈希键值组合,并通过确定第一哈希键值组合与第二哈希键值组合的一致性来对用户进行认证。本实施例的技术方案,在敏感信息设置阶段中,客户端生成第二哈希键值组合发送给服务端,进一步提高了用户敏感信息的安全性。
实施例三
图4为本发明实施例三提供的一种应用于服务端的用户认证方法的流程图,该方法可以由本发明实施例中的应用于服务端的用户认证装置来执行,该装置可采用软件和/或硬件的方式实现,如图4所示,该方法具体包括如下步骤:
S310,在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成各键值分别对应的第一哈希值。
在上述实施例的基础上,可选地,基于键盘上各键值分别对应的第一初始盐值生成各键值分别对应的第一哈希值,可包括步骤B1-B2:
步骤B1:获取键盘上各键值分别对应的第一初始盐值。
其中第一初始盐值可以是随机生成的固定长度的字符串,并且每次生成的字符串都是不同的。
步骤B2:对于键盘上的各键值,对当前键值对应的第一初始盐值进行加密,基于加密结果获得当前键值对应的第一哈希值。
得到当前各键值对应的第一初始盐值后,对第一初始盐值进行加密。具体的,服务端以时间戳、UUID作为随机因子,对第一初始盐值进行SM3运算,从运算结果中选取出预设数目的字符作为键盘上当前各键值第一哈希值返回给客户端,同时可将时间戳和UUID一同发送给客户端。
利用上述步骤生成各键值分别对应的第一哈希值,在用户每次进行认证时,服务端就会生成一次第一哈希值,并且每次生成的哈希值都不同,实现了对用户敏感信息的动态加密,增强了用户通过第一键盘输入第一敏感信息的安全性,使得第一敏感信息不易被泄露。
S320,将键盘上各键值分别对应的第一哈希值发送给客户端。
S330,接收客户端发送的第一哈希键值组合;其中,第一哈希键值组合是客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的。
具体的,将键盘上各键值分别对应的第一哈希值发送给客户端之后,客户端可以通过键盘上各键值的第一哈希值确定出第一敏感信息中各键值分别对应的第一哈希值,并基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合。如步骤130所述,在此不在赘述。可选的,第一敏感信息为密码或验证码。进一步地,服务端接收客户端发送的第一哈希键值组合。
S340,基于第一哈希键值组合对用户进行认证。
本实施例的技术方案,通过在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;将键盘上各键值分别对应的第一哈希值发送给客户端;接收客户端发送的第一哈希键值组合;其中,第一哈希键值组合是客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;基于第一哈希键值组合对所述用户进行认证。本实施例的技术方案,服务端可以对用户输入的密码进行多次加密,在保证原有安全性能的基础上进一步加强密码的不可破解性。
实施例四
图5为本发明实施例四提供的应用于服务端的用户认证方法的基于第一哈希键值组合对用户进行认证方法的流程图,本实施例以上述各实施例为基础对服务端基于第一哈希键值组合对所述用户进行认证的步骤进行细化。如图5所示,本实施例的方法具体包括如下步骤:
S410,获取预先存储的用户设置的第二敏感信息对应的第二哈希键值组合。
在步骤240中,客户端将用户设置的第二敏感信息对应的第二哈希键值组合发送给服务端,服务端接收并存储客户端发送的第二哈希键值组合。进一步地,获取预先存储的用户设置的第二敏感信息对应的第二哈希键值组合。
S420,确定第二哈希键值组合与第一哈希键值组合的一致性,根据一致性确定结果获得对所述用户的认证结果。
在上述实施例的基础上,可选地,确定第二哈希键值组合与第一哈希键值组合的一致性,可包括步骤C1-C4:
步骤C1:基于存储的键盘上各键值分别对应的第二哈希值,确定第二哈希键值组合中包含的各第二哈希值分别对应的目标键值。
示例的,假设键盘上有0-9十个键值。现服务端中存储有键盘上各键值分别对应的第二哈希值,即0-9十个键值的第二哈希值。基于存储的键盘上各键值分别对应的第二哈希值,可以确定第二哈希键值组合中包含的各第二哈希值分别对应的目标键值。其中,第二哈希键值组合是由客户端基于第二敏感信息中各键值分别对应的第二哈希值生成的,如步骤230所述,在此不再赘述。示例的,第二敏感信息为用户设置的密码“123456”,则第二哈希键值组合为“4be05f375cb166771a3b5649”。现服务端可根据存储的0-9十个键值的第二哈希值确定“4be05f375cb166771a3b5649”中包含的各第二哈希值分别对应的目标键值。例如“4be05f375cb166771a3b5649”中包含的第二哈希值“5649”对应的目标键值为“6”。以此类推,服务端基于存储的键盘上各键值分别对应的第二哈希值,确定第二哈希键值组合中包含的各第二哈希值分别对应的目标键值。
步骤C2:基于键盘上各键值分别对应的第一哈希值,确定各目标键值分别对应的目标第一哈希值。
其中,键盘上各键值分别对应的第一哈希值如步骤310所述,由服务端基于键盘上各键值分别对应的第一初始盐值生成的。服务端基于键盘上各键值分别对应的第一哈希值,可以确定各目标键值分别对应的目标第一哈希值。示例的,各目标键值为在步骤C1中,服务端基于存储的键盘上各键值分别对应的第二哈希值,确定出的第二哈希键值组合中包含的各第二哈希值分别对应的目标键值“123456”。进一步地,基于键盘上各键值分别对应的第一哈希值,确定各目标键值(例如“123456”)分别对应的目标第一哈希值。
步骤C3:基于各目标第一哈希值生成第三哈希键值组合;
在上述实施例的基础上,可选地,基于各目标第一哈希值生成第三哈希键值组合,可包括步骤(1)-(3):
步骤(1):获取预置密钥值;
具体的,在服务端中存储有预置密钥值。获取该密钥值,假设该密钥值为M0,M0与客户端存储的预置密钥值S0相同。
步骤(2):遍历各目标第一哈希值,对遍历到的当前目标第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值。
示例的,假设目标键值为“123456”,首先获取“1”的目标第一哈希值,记为M1。将M1和M0进行拼接后利用SM3算法加密得到M2,其中,M2=SM3(M0+M1)。用计算出的M2替换更新M0,得到新的M0。以此类推,遍历剩下的“23456”的各键值的目标第一哈希值。
步骤(3):将遍历结束后的当前预置密钥值确定为第三哈希键值组合。
上述步骤使用了具有后效性的哈希加密方法生成第三哈希键值组合,通过遍历敏感信息中每一个键值使得加密的盐值的强度随着敏感信息的长度增加,进一步加强了用户敏感信息的安全性;并且实现了以按键为维度,每接收一个按键键值便为该键值加密一次,便于与第一哈希键值组合进行比较以此验证用户输入的密码是否正确的同时保障了用户账号信息的安全。
步骤C4:将第三哈希键值组合与第一哈希键值组合进行比对,根据比对结果确定第二哈希键值组合与第一哈希键值组合的一致性。
其中,第一哈希键值组合是客户端基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合,如步骤130所述。示例的,假设第一敏感信息为用户输入的密码为“123456”,目标键值为“345678”,则在上述步骤中,服务端通过遍历结束后的当前预置密钥值,得到的第三哈希键值组合经过比对发现第三哈希键值组合与第一哈希键值组合不一致,则比对结果为第二哈希键值组合与第一哈希键值组合不一致。
利用上述步骤确定第二哈希键值组合与第一哈希键值组合的一致性,可以有效检测用户输入的账号密码正确与否,有效提高了用户账号的安全性。
本实施例的技术方案,通过获取预先存储的用户设置的第二敏感信息对应的第二哈希键值组合;确定第二哈希键值组合与第一哈希键值组合的一致性,根据一致性确定结果获得对所述用户的认证结果。本实施例的技术方案,使用具有后效性的哈希加密方法生成第三哈希键值组合,加强了用户敏感信息的安全性,进一步有效验证用户身份信息,提高了用户身份信息的安全性。
实施例五
图6为本发明实施例五提供的另一种用户认证方法中的敏感信息设置阶段的方法流程图,本实施例以上述各实施例为基础对服务端在敏感信息设置阶段的步骤进行细化。如图6所示,本实施例的方法具体包括如下步骤:
S510,接收到客户端发送的第二键盘打开通知消息。
S520,基于键盘上各键值分别对应的第二初始盐值生成键盘上各键值分别对应的第二哈希值。
在上述实施例的基础上,可选地,基于键盘上各键值分别对应的第二初始盐值生成键盘上各键值分别对应的第二哈希值,可包括步骤D1-D2:
步骤D1:获取键盘上各键值分别对应的第二初始盐值。
其中第二初始盐值可以是随机生成的固定长度的字符串,并且每次生成的字符串都是不同的,因此第一初始盐值与第二初始盐值也是不同的。
步骤D2:对于键盘上的各键值,对当前键值对应的第二初始盐值进行加密,基于加密结果获得当前键值对应的第二哈希值。
得到当前各键值对应的第二初始盐值后,对第二初始盐值进行加密。具体的,服务端以时间戳、UUID作为随机因子,对第二初始盐值进行SM3运算,从运算结果中选取出预设数目的字符作为键盘上当前各键值第二哈希值返回给客户端。
利用上述步骤生成各键值分别对应的第二哈希值,在用户每次进行敏感信息设置时,服务端就会生成一次第二哈希值,并且每次生成的哈希值都不同,实现了对用户敏感信息的动态加密,增强了用户通过第二键盘输入第二敏感信息的安全性,使得第二敏感信息不易被泄露。
S530、将键盘上各键值分别对应的第二哈希值发送给客户端。
S540、接收并存储客户端发送的第二哈希键值组合;其中,第二哈希键值组合是客户端基于用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值生成的。
具体的,将键盘上各键值分别对应的第二哈希值发送给客户端之后,客户端可以通过键盘上各键值的第二哈希值确定出第二敏感信息中各键值分别对应的第二哈希值,并基于第二敏感信息中各键值分别对应的第二哈希值生成第二哈希键值组合。如步骤230所述,在此不在赘述。可选的,第二敏感信息为密码或验证码。进一步地,服务端接收并存储客户端发送的第二哈希键值组合。
本实施例的技术方案,通过接收到客户端发送的第二键盘打开通知消息;基于键盘上各键值分别对应的第二初始盐值生成所述键盘上各键值分别对应的第二哈希值;将键盘上各键值分别对应的第二哈希值发送给客户端。接收并存储客户端发送的第二哈希键值组合;其中,所述第二哈希键值组合是客户端基于用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值生成的。本实施例的技术方案,服务端可以在用户设置密码时,对密码进行多次加密,有效保护了用户密码在传输过程中不被泄露、窃取,进一步提高用户密码信息的安全性。
实施例六
图7为本发明实施例六提供的一种用户认证系统结构示意图,本实施例以上述各实施例为基础对服务端和客户端交互过程进行进一步细化。如图7所示,包括客户端610和服务端620,其中客户端包括;安全键盘JS端,服务端包括安全键盘服务端SDK和用户认证服务以及数据库:
客户端610,主要用于:在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;接收所述服务端返回的键盘上各键值分别对应的第一哈希值;基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;将所述第一哈希键值组合发送给服务端;
服务端620,主要用于:在接收到所述第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;将所述键盘上各键值分别对应的第一哈希值发送给所述客户端;接收所述客户端发送的所述第一哈希键值组合,基于所述第一哈希键值组合对所述用户进行认证。本实施例方案中,客户端与服务端交互过程中主要包括敏感信息设置和用户认证两个阶段。
具体的,如图8所示,敏感信息设置阶段包括:
客户端接收第二键盘打开指令使用户打开第二键盘,并向安全键盘服务端SDK发送第二键盘打开通知消息。
服务端接收第二键盘打开消息,安全键盘服务端SDK生成当前键盘标识(UUID1)和时间戳发送给用户认证服务,用户认证服务生成各键值分别对应的第二初始盐值并将第二初始盐值返回给安全键盘服务端SDK;安全键盘服务端SDK对第二初始盐值进行加密生成各键值的第二哈希值,存储UUID1与各键值的第二哈希值的对应关系,并将各键值的第二哈希值、UUID和时间戳发送给客户端。
客户端接收安全键盘服务端SDK发送的各键值的第二哈希值、UUID和时间戳,完成第二键盘初始化;客户端接收用户输入的第二敏感信息,并将第二敏感信息中的各键值替换成其对应的第二哈希值,并将第二敏感信息中各键值对应的第二哈希值进行顺序拼接得到第二哈希键值组合;客户端对第二哈希键值组合进行非对称加密后将第二哈希键值组合以及时间戳、UUID1和用户名等信息一同发送给安全键盘服务端SDK。
安全键盘服务端SDK接收到客户端发送的第二哈希键值组合,根据接收到的UUID1查询到存储的各键值的第二哈希值,对第二哈希键值组合以及各键值的第二哈希值和时间戳等信息进行汇总,将汇总信息发送给用户认证服务。用户认证服务使用预置的非对称加密的对应私钥对第二哈希键值组合进行解密,基于接收的时间戳进行时效性验证,并在验证通过后将用户名与各键值的第二哈希键值以及解密得到的第二哈希键值组合的对应关系存储入库。
具体的,如图9所示,用户认证阶段包括:
客户端接收第一键盘打开指令使用户打开第一键盘,并向安全键盘服务端SDK发送第一键盘打开通知消息。
服务端接收第一键盘打开消息,安全键盘服务端SDK生成当前键盘标识(UUID2)和时间戳发送给用户认证服务,用户认证服务生成各键值分别对应的第一初始盐值并将第一初始盐值返回给安全键盘服务端SDK;安全键盘服务端SDK对第一初始盐值进行加密生成各键值的第一哈希值,存储UUID2与各键值的第一哈希值的对应关系,并将各键值的第一哈希值、UUID2和时间戳发送给客户端。
客户端接收安全键盘服务端SDK发送的各键值的第一哈希值、UUID2和时间戳,完成第一键盘初始化;客户端接收用户输入的第一敏感信息,并将第一敏感信息中的各键值替换成其对应的第一哈希值;进一步地获取预置密钥值,按照输入顺序遍历第一敏感信息中的各键值,获取遍历到的当前键值的第一哈希值,对当前键值的第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值,再将遍历结束后的当前预置密钥值确定为第一哈希键值组合;客户端对第一哈希键值组合进行单项哈希加密后将第一哈希键值组合以及时间戳、UUID2和用户名等信息一同发送给用户认证服务。
用户认证服务接收到被单项哈希加密后的第一哈希键值组合,首先对第一哈希键值组合进行解密;将解密后的第一哈希键值组合、UUID2、时间戳以及用户名等信息发送给安全键盘服务端SDK;同时用户认证服务使用接收到的用户名查询数据库中存储的第二哈希键值组合以及各键值的第二哈希值,并发送给安全键盘服务端SDK;安全键盘服务端SDK依据各键值的第二哈希值确定第二哈希键值组合中的第二哈希值分别对应的确定目标键值,根据UUID2查询到存储的各键值对应的第一哈希值,然后根据查询结果确定各目标键值分别对应的第一哈希值,采用与生成第一哈希键值组合相同的方法,根据各目标键值的第一哈希值生成第三哈希键值组合;安全键盘服务端SDK将第三哈希键值组合发送给用户认证服务,用户认证服务将第一哈希键值组合与第三哈希键值组合进行比较得到结果。若结果一致,则认证成功,否则为认证失败。本实施例中每次生成的键盘标识UUID均不相同,能够克服重放攻击。
实施例七
图10为本发明实施例七提供的一种用于客户端的用户认证装置的结构示意图。本实施例可适用于本实施例可适用于提高用户密码在传输过程中的安全性的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供用户认证的功能的设备中,如图10所示,用户认证的装置具体包括:
指令接收模块710,用于在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;
第一哈希值接收模块720,用于接收所述服务端返回的键盘上各键值分别对应的第一哈希值;
第一哈希键值组合生成模块730,用于基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;
第一哈希键值组合发送模块740,用于将所述第一哈希键值组合发送给服务端,以使所述服务端基于所述第一哈希键值组合对所述用户进行认证。
本发明实施例七提供的一种用户认证装置,通过在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;接收服务端返回的键盘上各键值分别对应的第一哈希值;基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;将第一哈希键值组合发送给服务端,以使服务端基于第一哈希键值组合对用户进行认证。可以使用户密码在传输过程中不易被泄露、盗取,进一步加强了用户密码的安全性。
可选的,第一哈希键值组合生成模块730,具体用于:
获取预置密钥值;
按照输入顺序遍历所述第一敏感信息中的各键值,获取遍历到的当前键值的第一哈希值,对当前键值的第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值;
将遍历结束后的当前预置密钥值确定为第一哈希键值组合。
可选的,所述装置还包括:
指令接收单元,用于在接收到第一键盘打开指令之前,接收到第二键盘打开指令,向服务端发送第二键盘打开通知消息;
第二哈希值接收单元,用于接收所述服务端返回的键盘上各键值分别对应的第二哈希值;
第二哈希键值组合生成单元,用于基于当前接收信息确定用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值,基于所述第二敏感信息中各键值分别对应的第二哈希值生成第二哈希键值组合;
用户认证单元,用于将所述第二哈希键值组合发送给服务端,以使服务端存储所述第二哈希键值组合,并通过确定所述第一哈希键值组合与所述第二哈希键值组合的一致性来对所述用户进行认证。
可选的,第二哈希键值组合生成单元,具体用于:
按照输入顺序将所述第二敏感信息中各键值分别对应的第二哈希值依次进行拼接,将拼接得到的字符串确定为第二哈希键值组合。
可选的,所述第一敏感信息为密码或验证码。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例八
图11为本发明实施例八提供的一种用于服务端的用户认证装置的结构示意图。本实施例可适用于提高用户密码在传输过程中的安全性的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供用户认证的功能的设备中,如图11所示,用户认证的装置具体包括:
第一哈希值生成模块810,用于在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;
第一哈希值发送模块820,用于将所述键盘上各键值分别对应的第一哈希值发送给所述客户端;
第一哈希键值组合接收模块830,用于接收所述客户端发送的第一哈希键值组合;其中,所述第一哈希键值组合是所述客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;
用户认证模块840,用于基于所述第一哈希键值组合对所述用户进行认证。
本发明实施例八提供的一种用户认证装置,通过在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成各键值分别对应的第一哈希值;将键盘上各键值分别对应的第一哈希值发送给客户端;接收客户端发送的第一哈希键值组合;其中,第一哈希键值组合是客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;基于第一哈希键值组合对用户进行认证。服务端可以对用户输入的密码进行多次加密,在保证原有安全性能的基础上进一步加强密码的不可破解性。
可选的,第一哈希值生成模块810,具体用于:
获取键盘上各键值分别对应的第一初始盐值;
对于键盘上的各键值,对当前键值对应的第一初始盐值进行加密,基于加密结果获得当前键值对应的第一哈希值。
可选的,用户认证模块840,具体包括:
第二哈希键值组合获取单元,用于获取预先存储的所述用户设置的第二敏感信息对应的第二哈希键值组合;
认证结果确定单元,用于确定所述第二哈希键值组合与所述第一哈希键值组合的一致性,根据一致性确定结果获得对所述用户的认证结果。
可选的,认证结果确定单元,具体包括:
目标键值确定子单元,用于基于存储的键盘上各键值分别对应的第二哈希值,确定所述第二哈希键值组合中包含的各第二哈希值分别对应的目标键值;
目标第一哈希值确定子单元,用于基于所述键盘上各键值分别对应的第一哈希值,确定各所述目标键值分别对应的目标第一哈希值;
第三哈希键值组合生成子单元,用于基于各所述目标第一哈希值生成第三哈希键值组合;
一致性确定子单元,用于将所述第三哈希键值组合与所述第一哈希键值组合进行比对,根据比对结果确定所述第二哈希键值组合与所述第一哈希键值组合的一致性。
可选的,第三哈希键值组合生成子单元,具体用于:
获取预置密钥值;
遍历各所述目标第一哈希值,对遍历到的当前目标第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值;
将遍历结束后的当前预置密钥值确定为第三哈希键值组合。
可选的,所述装置还包括:
消息接收单元,用于在接收到所述第一键盘打开通知消息之前,接收到所述客户端发送的第二键盘打开通知消息;
第二哈希值生成单元,用于基于键盘上各键值分别对应的第二初始盐值生成所述键盘上各键值分别对应的第二哈希值;
第二哈希值发送单元,用于将所述键盘上各键值分别对应的第二哈希值发送给所述客户端;
第二哈希键值组合存储单元,用于接收并存储所述客户端发送的第二哈希键值组合;其中,所述第二哈希键值组合是所述客户端基于用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值生成的。
可选的,第二哈希值生成单元,具体用于:
获取键盘上各键值分别对应的第二初始盐值;
对于键盘上的各键值,对当前键值对应的第二初始盐值进行加密,基于加密结果获得当前键值对应的第二哈希值。
可选的,所述第一敏感信息为密码或验证码。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例九
图12为本发明实施例九提供的一种电子设备的结构示意图。图12示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图12显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图12未显示,通常称为“硬盘驱动器”)。尽管图12中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。另外,本实施例中的电子设备12,显示器24不是作为独立个体存在,而是嵌入镜面中,在显示器24的显示面不予显示时,显示器24的显示面与镜面从视觉上融为一体。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种用户认证方法:在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;接收服务端返回的键盘上各键值分别对应的第一哈希值;基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;将第一哈希键值组合发送给服务端,以使服务端基于第一哈希键值组合对用户进行认证。或者,在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成各键值分别对应的第一哈希值;将键盘上各键值分别对应的第一哈希值发送给客户端;接收客户端发送的第一哈希键值组合;其中,第一哈希键值组合是客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;基于第一哈希键值组合对用户进行认证。
实施例十
本发明实施例十提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明所有发明实施例提供的一种用户认证方法:在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;接收服务端返回的键盘上各键值分别对应的第一哈希值;基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;将第一哈希键值组合发送给服务端,以使服务端基于第一哈希键值组合对用户进行认证。或者,在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成各键值分别对应的第一哈希值;将键盘上各键值分别对应的第一哈希值发送给客户端;接收客户端发送的第一哈希键值组合;其中,第一哈希键值组合是客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;基于第一哈希键值组合对用户进行认证。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
实施例十一
本发明实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现如本申请任一实施例所提供的用户认证方法。
计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (28)

1.一种用户认证方法,其特征在于,包括:
在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;
接收所述服务端返回的键盘上各键值分别对应的第一哈希值;
基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;
将所述第一哈希键值组合发送给服务端,以使所述服务端基于所述第一哈希键值组合对所述用户进行认证。
2.根据权利要求1所述的方法,其特征在于,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合,包括:
获取预置密钥值;
按照输入顺序遍历所述第一敏感信息中的各键值,获取遍历到的当前键值的第一哈希值,对当前键值的第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值;
将遍历结束后的当前预置密钥值确定为第一哈希键值组合。
3.根据权利要求1所述的方法,其特征在于,在接收到第一键盘打开指令之前,所述方法还包括:在接收到第二键盘打开指令时,向服务端发送第二键盘打开通知消息;
接收所述服务端返回的键盘上各键值分别对应的第二哈希值;
基于当前接收信息确定用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值,基于所述第二敏感信息中各键值分别对应的第二哈希值生成第二哈希键值组合;
将所述第二哈希键值组合发送给服务端,以使服务端存储所述第二哈希键值组合,并通过确定所述第一哈希键值组合与所述第二哈希键值组合的一致性来对所述用户进行认证。
4.根据权利要求3所述的方法,其特征在于,基于所述第二敏感信息中各键值分别对应的第二哈希值生成第二哈希键值组合,包括:
按照输入顺序将所述第二敏感信息中各键值分别对应的第二哈希值依次进行拼接,将拼接得到的字符串确定为第二哈希键值组合。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一敏感信息为密码或验证码。
6.一种用户认证方法,其特征在于,包括:
在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;
将所述键盘上各键值分别对应的第一哈希值发送给所述客户端;
接收所述客户端发送的第一哈希键值组合;其中,所述第一哈希键值组合是所述客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;
基于所述第一哈希键值组合对所述用户进行认证。
7.根据权利要求6所述的方法,其特征在于,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值,包括:
获取键盘上各键值分别对应的第一初始盐值;
对于键盘上的各键值,对当前键值对应的第一初始盐值进行加密,基于加密结果获得当前键值对应的第一哈希值。
8.根据权利要求6所述的方法,其特征在于,基于所述第一哈希键值组合对所述用户进行认证,包括:
获取预先存储的所述用户设置的第二敏感信息对应的第二哈希键值组合;
确定所述第二哈希键值组合与所述第一哈希键值组合的一致性,根据一致性确定结果获得对所述用户的认证结果。
9.根据权利要求8所述的方法,其特征在于,确定所述第二哈希键值组合与所述第一哈希键值组合的一致性,包括:
基于存储的键盘上各键值分别对应的第二哈希值,确定所述第二哈希键值组合中包含的各第二哈希值分别对应的目标键值;
基于所述键盘上各键值分别对应的第一哈希值,确定各所述目标键值分别对应的目标第一哈希值;
基于各所述目标第一哈希值生成第三哈希键值组合;
将所述第三哈希键值组合与所述第一哈希键值组合进行比对,根据比对结果确定所述第二哈希键值组合与所述第一哈希键值组合的一致性。
10.根据权利要求9所述的方法,其特征在于,基于各所述目标第一哈希值生成第三哈希键值组合,包括:
获取预置密钥值;
遍历各所述目标第一哈希值,对遍历到的当前目标第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值;
将遍历结束后的当前预置密钥值确定为第三哈希键值组合。
11.根据权利要求8所述的方法,其特征在于,在接收到客户端发送的第一键盘打开通知消息之前,所述方法还包括:
接收到所述客户端发送的第二键盘打开通知消息;
基于键盘上各键值分别对应的第二初始盐值生成所述键盘上各键值分别对应的第二哈希值;
将所述键盘上各键值分别对应的第二哈希值发送给所述客户端;
接收并存储所述客户端发送的第二哈希键值组合;其中,所述第二哈希键值组合是所述客户端基于用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值生成的。
12.根据权利要求11所述的方法,其特征在于,基于键盘上各键值分别对应的第二初始盐值生成所述键盘上各键值分别对应的第二哈希值,包括:
获取键盘上各键值分别对应的第二初始盐值;
对于键盘上的各键值,对当前键值对应的第二初始盐值进行加密,基于加密结果获得当前键值对应的第二哈希值。
13.根据权利要求6-12中任一项所述的方法,其特征在于,所述第一敏感信息为密码或验证码。
14.一种用户认证装置,其特征在于,包括:
指令接收模块,用于在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;
第一哈希值接收模块,用于接收所述服务端返回的键盘上各键值分别对应的第一哈希值;
第一哈希键值组合生成模块,用于基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;
第一哈希键值组合发送模块,用于将所述第一哈希键值组合发送给服务端,以使所述服务端基于所述第一哈希键值组合对所述用户进行认证。
15.根据权利要求14所述的装置,其特征在于,所述第一哈希键值组合生成模块,具体用于:
获取预置密钥值;
按照输入顺序遍历所述第一敏感信息中的各键值,获取遍历到的当前键值的第一哈希值,对当前键值的第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值;
将遍历结束后的当前预置密钥值确定为第一哈希键值组合。
16.根据权利要求14所述的装置,其特征在于,所述装置还包括:
指令接收单元,用于在接收到第一键盘打开指令之前,接收到第二键盘打开指令,向服务端发送第二键盘打开通知消息;
第二哈希值接收单元,用于接收所述服务端返回的键盘上各键值分别对应的第二哈希值;
第二哈希键值组合生成单元,用于基于当前接收信息确定用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值,基于所述第二敏感信息中各键值分别对应的第二哈希值生成第二哈希键值组合;
用户认证单元,用于将所述第二哈希键值组合发送给服务端,以使服务端存储所述第二哈希键值组合,并通过确定所述第一哈希键值组合与所述第二哈希键值组合的一致性来对所述用户进行认证。
17.根据权利要求16所述的装置,其特征在于,所述第二哈希键值组合生成单元,具体用于:
按照输入顺序将所述第二敏感信息中各键值分别对应的第二哈希值依次进行拼接,将拼接得到的字符串确定为第二哈希键值组合。
18.一种用户认证装置,其特征在于,包括:
第一哈希值生成模块,用于在接收到客户端发送的第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;
第一哈希值发送模块,用于将所述键盘上各键值分别对应的第一哈希值发送给所述客户端;
第一哈希键值组合接收模块,用于接收所述客户端发送的第一哈希键值组合;其中,所述第一哈希键值组合是所述客户端基于用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值生成的;
用户认证模块,用于基于所述第一哈希键值组合对所述用户进行认证。
19.根据权利要求18所述的装置,其特征在于,所述第一哈希值生成模块,具体用于:
获取键盘上各键值分别对应的第一初始盐值;
对于键盘上的各键值,对当前键值对应的第一初始盐值进行加密,基于加密结果获得当前键值对应的第一哈希值。
20.根据权利要求18所述的装置,其特征在于,所述用户认证模块,具体包括:
第二哈希键值组合获取单元,用于获取预先存储的所述用户设置的第二敏感信息对应的第二哈希键值组合;
认证结果确定单元,用于确定所述第二哈希键值组合与所述第一哈希键值组合的一致性,根据一致性确定结果获得对所述用户的认证结果。
21.根据权利要求20所述的装置,其特征在于,所述认证结果确定单元,包括:
目标键值确定子单元,用于基于存储的键盘上各键值分别对应的第二哈希值,确定所述第二哈希键值组合中包含的各第二哈希值分别对应的目标键值;
目标第一哈希值确定子单元,用于基于所述键盘上各键值分别对应的第一哈希值,确定各所述目标键值分别对应的目标第一哈希值;
第三哈希键值组合生成子单元,用于基于各所述目标第一哈希值生成第三哈希键值组合;
一致性确定子单元,用于将所述第三哈希键值组合与所述第一哈希键值组合进行比对,根据比对结果确定所述第二哈希键值组合与所述第一哈希键值组合的一致性。
22.根据权利要求21所述的装置,其特征在于,所述第三哈希键值组合生成子单元,具体用于:
获取预置密钥值;
遍历各所述目标第一哈希值,对遍历到的当前目标第一哈希值和当前预置密钥值进行加密,使用加密得到的信息替换当前预置密钥值;
将遍历结束后的当前预置密钥值确定为第三哈希键值组合。
23.根据权利要求20所述的装置,其特征在于,所述装置还包括:
消息接收单元,用于在接收到所述第一键盘打开通知消息之前,接收到所述客户端发送的第二键盘打开通知消息;
第二哈希值生成单元,用于基于键盘上各键值分别对应的第二初始盐值生成所述键盘上各键值分别对应的第二哈希值;
第二哈希值发送单元,用于将所述键盘上各键值分别对应的第二哈希值发送给所述客户端;
第二哈希键值组合存储单元,用于接收并存储所述客户端发送的第二哈希键值组合;其中,所述第二哈希键值组合是所述客户端基于用户通过键盘设置的第二敏感信息中各键值分别对应的第二哈希值生成的。
24.根据权利要求23所述的装置,其特征在于,所述第二哈希值生成单元,具体用于:
获取键盘上各键值分别对应的第二初始盐值;
对于键盘上的各键值,对当前键值对应的第二初始盐值进行加密,基于加密结果获得当前键值对应的第二哈希值。
25.一种电子设备,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5或6-13中任一项所述的用户认证方法。
26.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5或6-13中任一所述的用户认证方法。
27.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-5或6-13中任一项所述的用户认证方法。
28.一种用户认证系统,其特征在于,包括:
客户端,用于在接收到第一键盘打开指令时,向服务端发送第一键盘打开通知消息;接收所述服务端返回的键盘上各键值分别对应的第一哈希值;基于当前接收信息确定用户通过键盘输入的第一敏感信息中各键值分别对应的第一哈希值,基于所述第一敏感信息中各键值分别对应的第一哈希值生成第一哈希键值组合;将所述第一哈希键值组合发送给服务端;
服务端,用于在接收到所述第一键盘打开通知消息时,基于键盘上各键值分别对应的第一初始盐值生成所述各键值分别对应的第一哈希值;将所述键盘上各键值分别对应的第一哈希值发送给所述客户端;接收所述客户端发送的所述第一哈希键值组合,基于所述第一哈希键值组合对所述用户进行认证。
CN202111443813.4A 2021-11-30 2021-11-30 一种用户认证方法、装置、设备、系统及存储介质 Pending CN114117404A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111443813.4A CN114117404A (zh) 2021-11-30 2021-11-30 一种用户认证方法、装置、设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111443813.4A CN114117404A (zh) 2021-11-30 2021-11-30 一种用户认证方法、装置、设备、系统及存储介质

Publications (1)

Publication Number Publication Date
CN114117404A true CN114117404A (zh) 2022-03-01

Family

ID=80368561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111443813.4A Pending CN114117404A (zh) 2021-11-30 2021-11-30 一种用户认证方法、装置、设备、系统及存储介质

Country Status (1)

Country Link
CN (1) CN114117404A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116703470A (zh) * 2023-08-09 2023-09-05 深圳市土地公网络科技有限公司 供应信息的预测方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116703470A (zh) * 2023-08-09 2023-09-05 深圳市土地公网络科技有限公司 供应信息的预测方法、装置、设备及存储介质
CN116703470B (zh) * 2023-08-09 2024-01-12 深圳市土地公网络科技有限公司 供应信息的预测方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110493202B (zh) 登录令牌的生成及验证方法、装置和服务器
US10574648B2 (en) Methods and systems for user authentication
US9838205B2 (en) Network authentication method for secure electronic transactions
CN109587162B (zh) 登录验证方法、装置、终端、密码服务器及存储介质
US11818120B2 (en) Non-custodial tool for building decentralized computer applications
CN110519309B (zh) 数据传输方法、装置、终端、服务器及存储介质
CN111835774B (zh) 数据处理方法、装置、设备及存储介质
CN109951295B (zh) 密钥处理和使用方法、装置、设备及介质
US9215064B2 (en) Distributing keys for decrypting client data
CN109981665B (zh) 资源提供方法及装置、资源访问方法及装置和系统
CN110084599B (zh) 密钥处理方法、装置、设备和存储介质
CN110661814A (zh) 一种投标文件加解密方法、装置、设备和介质
WO2021137769A1 (en) Method and apparatus for sending and verifying request, and device thereof
CN112987942B (zh) 键盘输入信息的方法、装置、系统、电子设备和存储介质
CN114266033A (zh) 验证码生成方法、装置、验证码登录系统及电子设备
CN113872770A (zh) 一种安全性验证方法、系统、电子设备及存储介质
CN113742676A (zh) 一种登录管理方法、装置、服务器、系统及存储介质
CN111031037A (zh) 用于对象存储服务的鉴权方法、装置及电子设备
CN114615031A (zh) 文件存储方法、装置、电子设备及存储介质
CN115276978A (zh) 一种数据处理方法以及相关装置
CN113630412B (zh) 资源下载方法、资源下载装置、电子设备以及存储介质
US20240089249A1 (en) Method and system for verification of identify of a user
CN114117404A (zh) 一种用户认证方法、装置、设备、系统及存储介质
CN112565156B (zh) 信息注册方法、装置和系统
WO2022206203A1 (en) Connection resilient multi-factor authentication

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