一种用户验证方法、装置及设备与流程

文档序号:22324783发布日期:2020-09-25 17:52阅读:167来源:国知局
一种用户验证方法、装置及设备与流程

本说明书实施例涉及计算机技术领域,特别涉及一种用户验证方法、装置及设备。



背景技术:

为了保障用户数据的安全,在用户采取登录操作或调用数据的操作时,往往需要对用户进行验证,验证可以通过用户输入相应的验证码来完成。例如,在一种具体的验证方法中,用户基于客户端提交验证请求后,服务器以短信的方式将验证码发送给用户。用户在接收到包含所述验证码的短信后,将获取到的验证码输入客户端的验证界面以完成对于自身身份的验证。

目前服务器在生成验证码时,往往会随机生成若干个字符,并将这些字符拼接为验证码,用于对用户身份进行验证。但是,基于上述方法所生成的验证码随机性较强,往往不具有任何实际意义,使得用户较难识别所述验证码,进而无法在验证界面中输入正确的验证码,导致验证失败。因此,目前的验证方式可能无法对正常用户进行识别,从而造成无效的验证。目前亟需一种能够准确识别出正常用户的验证方式。



技术实现要素:

本说明书实施例的目的是提供一种用户验证方法、装置及设备,以解决如何对用户进行验证时准确识别出正常用户的问题。

为了解决上述技术问题,本说明书实施例提出一种用户验证方法,包括:

接收待验证用户的验证请求;所述验证请求中包括所述待验证用户的用户账号;

获取对应于所述用户账号的用户信息;所述用户信息包括所述待验证用户的个人身份信息;

利用所述用户信息生成第一验证码;

将所述第一验证码发送至关联所述用户账号的终端设备,以供所述终端设备展示所述第一验证码;

接受所述待验证用户提交的第二验证码;

若所述第二验证码与所述第一验证码相匹配,确定所述待验证用户为正常用户。

本说明书实施例还提出一种用户验证装置,包括:

请求接收模块,用于接收待验证用户的验证请求;所述验证请求中包括所述待验证用户的用户账号;

信息获取模块,用于获取对应于所述用户账号的用户信息;所述用户信息包括所述待验证用户的个人身份信息;

验证码生成模块,用于利用所述用户信息生成第一验证码;

验证码发送模块,用于将所述第一验证码发送至关联所述用户账号的终端设备,以供所述终端设备展示所述第一验证码;

验证码接收模块,用于接受所述待验证用户提交的第二验证码;

用户确定模块,用于在所述待验证用户提交的第二验证码与所述第一验证码相匹配时,确定所述待验证用户为正常用户。

本说明书实施例还提出一种用户验证设备,包括存储器和处理器;所述存储器,用于存储计算机程序指令;所述处理器,用于执行所述计算机程序指令实现以下步骤:接收待验证用户的验证请求;所述验证请求中包括所述待验证用户的用户账号;获取对应于所述用户账号的用户信息;所述用户信息包括所述待验证用户的个人身份信息;利用所述用户信息生成第一验证码;将所述第一验证码发送至关联所述用户账号的终端设备,以供所述终端设备展示所述第一验证码;接受所述待验证用户提交的第二验证码;若所述第二验证码与所述第一验证码相匹配,确定所述待验证用户为正常用户。

由以上本说明书实施例提供的技术方案可见,本说明书实施例在接收到用户的验证请求需要对用户进行验证时,获取到包含用户的个人身份信息的用户信息,并利用所述用户信息构建第一验证码供用户进行识别,在用户输入的第二验证码与所述第一验证码相同的情况下,验证该用户为正常用户。由于所生成的第一验证码与待验证用户之间具有关联性,使得用户在接收到所述第一验证码中所包含的个人身份信息较为轻易地对所述第一验证码进行识别,从而有效地对正常用户进行识别,提高了验证的准确性。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例一种用户验证方法的流程图;

图2为本说明书实施例一种用户验证装置的模块图;

图3为本说明书实施例一种用户验证设备的结构图。

具体实施方式

下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

本说明书实施例提供一种用户验证方法的实施例。所述用户验证方法的执行主体为用户验证设备,所述用户验证设备包括但不限于服务器、工控机、pc机等。如图1所示,所述用户验证方法具体包括以下步骤。

s110:接收待验证用户的验证请求;所述验证请求中包括所述待验证用户的用户账号。

待验证用户即需要通过一定的验证方式确定所述待验证用户的身份的用户。所述待验证用户的身份具有不确定性,即所述待验证用户可能为正常用户,也可能为冒充正常用户的恶意用户或非法程序。

验证请求是待验证用户执行一些指定操作时所触发的请求。所述指定操作,可能是会对用户数据安全造成影响的操作,例如,登录用户账号、获取用户账户中的资金等操作。客户端在检测到用户执行所述指定操作后,可以基于预设的程序向所述用户验证设备发送验证请求,以实现对于所述待验证用户的身份的验证。

在一些实施方式中,所述验证请求中可以包括所述待验证用户的用户账号。例如,在用户执行登录操作时,客户端可以获取到用户在显示界面上所输入的用户账号,并在所述验证请求中附带所述用户账号;若用户在已经登录所述客户端时执行触发验证请求的指定操作,则可以直接获取当前登录所述客户端的用户账号,并在所述验证请求中附带所述用户账号。

s120:获取对应于所述用户账号的用户信息;所述用户信息包括所述待验证用户的个人身份信息。

当获取到所述用户账号后,可以获取对应于所述用户账号的用户信息。所述用户信息可以是与所述待验证用户之间具有较强关联性的信息。例如,所述用户信息可以包括待验证用户的个人身份信息,所述个人身份信息包括用户身份证号、用户手机号、用户生日、用户所处地邮编中的至少一种。实际应用中所述用户信息不限于上述示例,也可以是与所述待验证用户之间具有较强关联性的信息。

由于用户在注册账号时,往往会同时输入手机号、身份证号、住址等信息与所述用户账号进行绑定,因此,基于所述验证请求中的用户账号,可以直接获取到与所述用户账号相关联的个人身份信息。

s130:利用所述用户信息生成第一验证码。

获取到对应于所述目标账号的用户信息后,可以利用所述用户信息生成相应的第一验证码。所述第一验证码是用于展示给用户的验证码。所述第一验证码可以是由数字构成的验证码,例如根据个人身份信息中的数字所生成的验证码;所述第一验证码也可以是数字与字符相结合的验证码。在一些实施方式中,所述第一验证码还可以是对数字和/或字符进行扭曲后生成相应的图像所形成的验证码。

在一些实施方式中,可以直接利用用户信息生成相应的第一验证码。具体的,在所述验证请求中可以包含验证码位数。所述验证码位数用于限定所生成的第一验证码的位数。获取到所述验证码位数后,可以直接将所述用户信息截取为对应于所述验证码位数的第一验证码。

利用一个具体的示例对上述实施方式进行说明,在获取到的用户信息为用户手机号,且手机号为18812345678的情况下,获取到验证码位数为6位,可以直接在所述手机号中截取六位数字,作为第一验证码。例如,所截取的数字可以为123456,即所生成的第一验证码为123456,若待验证用户为正常用户,在查看到所述第一验证码时,可以识别出所述第一验证码为自身手机号中的片段,从而能够方便准确地对所述第一验证码进行识别。

在一些实施方式中,可以将用户信息截取为第一指定位数的验证码构建信息,所述第一指定位数不大于所述验证码位数的二分之一。获得所述验证码构建信息后,可以利用至少两个所述验证码构建信息生成对应于所述验证码位数的第一验证码。

利用一个具体的示例对上述实施方式进行说明,在获取到的用户信息为用户手机号,且手机号为18812345678的情况下,获取到验证码位数为6位,则可以确定所述第一指定位数为3位,即在所述用户手机号中截取3位作为验证码构建信息,例如,所述验证码构建信息可以是234。进而可以利用两个验证码构建信息生成第一验证码,即生成第一验证码为234234。通过重复利用验证码构建信息生成所述第一验证码,减小了第一验证码中字符的随机性,使得用户能够更易识别第一验证码中的验证码构建信息,并确定所述验证码构建信息为与自身身份信息相关联的信息,从而能够方便准确地对所述第一验证码进行识别。

在一些实施方式中,可以将用户信息截取为第二指定位数的验证码构建信息,所述第二指定位数不大于所述验证码位数的二分之一。获得所述验证码构建信息后,可以利用验证码构建信息和倒序的验证码构建信息生成对应于所述验证码位数的第一验证码。

利用一个具体的示例对上述实施方式进行说明,在获取到的用户信息为用户手机号,且手机号为18812345678的情况下,获取到验证码位数为6位,则可以确定所述第二指定位数为3位,即在所述用户手机号中截取3位作为验证码构建信息,例如,所述验证码构建信息可以是456。进而利用验证码构建信息和倒序的验证码构建信息生成6位第一验证码,即生成第一验证码为456654。通过利用验证码构建信息和倒叙的验证码构建信息生成所述第一验证码,减小了第一验证码中字符的随机性,使得用户能够更易识别第一验证码中的验证码构建信息,并确定所述验证码构建信息为与自身身份信息相关联的信息,从而能够方便准确地对所述第一验证码进行识别。

在上述实施方式中,利用验证码构建信息生成第一验证码时,可能会出现若干个验证码构建信息无法生成相应位数的第一验证码的情况。例如,在所述验证码位数为7位,而指定位数为3位的情况下,无法直接利用固定数量的验证码构建信息生成第一验证码。在这种情况下,可以根据验证码位数确定补充字符,并利用所述补充字符和所述验证码构建信息生成所述第一验证码。

所述补充字符可以是随机生成的字符,在空缺位数过多时,所述补充字符也可以是在指定字符串集合中所选取的字符。所述指定字符串集合中可以包含预先设定的字符,例如1314、668、400、88、66等。利用所述指定字符串集合中的字符与验证码构建信息生成所述第一验证码也能够降低第一验证码的随机性,确保所生成的验证码易于被用户所识别。

利用一个具体的示例进行说明,在获取到的用户信息为用户手机号,且手机号为18812345678的情况下,获取到验证码位数为8位,第一指定位数为3位时,在所述用户手机号中截取3位,即345作为验证码构建信息,而两个验证码构建信息只有6位,并未满足验证码位数的要求,可以在指定字符串集合中选取88作为补充字符,与所述验证码构建信息一同生成第一验证码为34534588,使得所生成的第一验证码与待验证用户之间具有较强的关联性,易于被用户所识别。

在一些实施方式中,可以将用户信息截取为第三指定位数的验证码构建信息,所述第三指定位数小于所述验证码位数。获得所述验证码构建信息后,可以在所述验证码构建信息选取验证码构建字符,并利用所述验证码构建信息和所述验证码构建字符生成对应于所述验证码位数的第一验证码。

利用一个具体的示例进行说明,在获取到的用户信息为用户手机号,且手机号为18812345678的情况下,获取到验证码位数为6位,则可以确定所述第三指定位数为3位,即在所述用户手机号中截取3位作为验证码构建信息,例如,所述验证码构建信息可以是678。

接着在所述验证码构建信息中选取验证码构建字符为7、8、7,再利用所述验证码构建信息和所述验证码构建字符生成对应于所述验证码位数的第一验证码为678787,从而在保证第一验证码与用户之间具有较强关联性的情况下,减少了第一验证码中不同字符的数量,也能够利于用户的识别,从而能够方便准确地对所述第一验证码进行识别。

s140:将所述第一验证码发送至关联所述用户账号的终端设备,以供所述终端设备展示所述第一验证码。

在生成所述第一验证码后,所述第一验证码可以在关联所述用户账号的终端设备上展示。所述关联所述用户账号的终端设备例如可以是用户登录所述用户账号的设备,在客户端生成所述验证请求时,获取终端设备的设备标识,并附带在所述验证请求中。用户验证设备在接收到所述验证请求后,根据所述验证请求中的设备标识将对应的第一验证码发送至对应的终端设备。

在另一些实施方式中,所述用户验证设备中可以预先存储有用户账号与对应终端设备的对应关系。例如,将登录所述用户账号最多的终端设备作为所述关联所述用户账号的终端设备。在发送第一验证码时,根据所述用户账号获取到对应的终端设备并发送至所述终端设备。

具体的展示方式例如可以是通过图像的方式展示给用户,也可以是将所述第一验证码通过语音播报的方式展示给用户。实际应用中展示所述第一验证码的方式不限于上述示例,在此不再赘述。

在一些实施方式中,所述验证请求可以是用户通过第一客户端所提交的验证请求。相应的,在生成第一验证码之后,所述用户验证设备可以将所述第一验证码发送至关联所述用户账号的第二客户端以在所述第二客户端中展示所述第一验证码。所述第二客户端与所述第一客户端是不同的客户端。例如,在用户登录淘宝app时,即所述淘宝app为第一客户端时,可以将支付宝app作为第二客户端,并将第一验证码发送至支付宝app,从而实现确保用户在不同的客户端上接收验证码,避免不法分子利用同一客户端轻易地实现验证,并窃取用户的个人信息。

s150:接受所述待验证用户提交的第二验证码。

待验证用户在查看到终端设备中所展示的第一验证码后,可以输入与所述第一验证码相同的第二验证码并提交至所述用户验证设备。在所述待验证用户为正常用户的情况下,所述待验证用户会输入与所述第一验证码相对应的第二验证码。在所述待验证用户为非法用户或恶意程序的情况下,无法查看到第一验证码,所提交的第二验证码可能为与所述第一验证码不同的随机生成的验证码。

s160:若所述待验证用户提交的第二验证码与所述第一验证码相匹配,确定所述待验证用户为正常用户。

待验证用户在查看到终端设备中所展示的第一验证码后,可以输入与所述第一验证码相同的第二验证码并提交至所述用户验证设备。若所述待验证用户提交的第二验证码与所述第一验证码相匹配,验证所述待验证用户为正常用户,即允许所述待验证用户执行相应的操作。具体的,所述第二验证码与所述第一验证码相匹配可以是检测到所述第二验证码与所述第一验证码相同。

若所述待验证用户提交的第二验证码与所述第一验证码不匹配,则可能用户并未接收到所述第一验证码,而是随机输入的其他验证码,则用户是不法分子或恶意程序的可能性较大,对于所述待验证用户的验证并未通过,可以反馈验证失败信息至所述待验证用户。所述验证失败信息,用于提醒所述待验证用户对应于所述待验证请求验证失败。

利用一个具体的场景示例对上述用户验证方法进行说明,用户a需要登录应用软件a时,在所述应用软件a的登录界面中输入账号和密码后,应用软件a获取所述用户a的账号并生成包含该账号的验证请求发送至服务器。服务器在接收到所述验证请求后,在所述验证请求中获取到用户a的账号,并在数据库中获取到用户a注册所述账号时与该账号绑定的手机号为17798765432。服务器在用户的手机号中截取出第一验证码为987654,并将所述第一验证码通过短信的方式发送至用户的手机号中。用户a在通过短信查看到所述第一验证码后,很容易识别出所述第一验证码为自身手机号中的片段,避免了对验证码识别错误的情况。在用户a在应用软件a的验证界面中输入987654后,客户端将987654作为第二验证码发送至服务器。服务器检测到所述第一验证码与所述第二验证码相同时,验证所述用户a为正常用户,允许用户a的登录操作。

本说明书实施例在接收到用户的验证请求需要对用户进行验证时,获取到包含用户的个人身份信息的用户信息,并利用所述用户信息构建第一验证码供用户进行识别,在用户输入的第二验证码与所述第一验证码相同的情况下,验证该用户为正常用户。由于所生成的第一验证码与待验证用户之间具有关联性,使得用户在接收到所述第一验证码中所包含的个人身份信息较为轻易地对所述第一验证码进行识别,从而有效地对正常用户进行识别,提高了验证的准确性。

为了更好地实施上述用户验证方法,如图2所示,本说明书实施例提供一种用户验证装置,所述装置设置于所述用户验证设备,所述装置包括以下模块。

请求接收模块210,用于接收待验证用户的验证请求;所述验证请求中包括所述待验证用户的用户账号;

信息获取模块220,用于获取对应于所述用户账号的用户信息;所述用户信息包括所述待验证用户的个人身份信息;

验证码生成模块230,用于利用所述用户信息生成第一验证码;

验证码发送模块240,用于将所述第一验证码发送至关联所述用户账号的终端设备,以供所述终端设备展示所述第一验证码;

验证码接收模块250,用于接受所述待验证用户提交的第二验证码;

用户确定模块260,用于在所述待验证用户提交的第二验证码与所述第一验证码相匹配时,确定所述待验证用户为正常用户。

如图3所示,本说明书实施例提供一种用户验证设备。所述用户验证设备可以包括存储器和处理器。

在本实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或u盘等。所述存储器可以用于存储计算机程序指令。

在本实施例中,所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以执行所述计算机程序指令实现以下步骤:接收待验证用户的验证请求;所述验证请求中包括所述待验证用户的用户账号;获取对应于所述用户账号的用户信息;所述用户信息包括所述待验证用户的个人身份信息;利用所述用户信息生成第一验证码;将所述第一验证码发送至关联所述用户账号的终端设备,以供所述终端设备展示所述第一验证码;接受所述待验证用户提交的第二验证码;若所述第二验证码与所述第一验证码相匹配,确定所述待验证用户为正常用户。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

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