本发明涉及计算机技术领域,特别涉及一种验证方法及装置。
背景技术:
为了防止批量注册、恶意破解密码、刷票、论坛灌水等行为,使用验证码进行人机识别是现在大多数网站的通用做法。
现有的验证方法中,均是采用单一类型的验证码进行验证。例如采用数字验证码类型进行验证时,图片中会掺杂着混淆曲线与杂点。用户识别出图片上的数字后,输入到验证码输入框内,点击确定按钮,即可完成验证。如果验证失败或者用户点击了刷新验证码,验证码图片会刷新,出现一组新的验证数字,用户需要重复上述步骤,再次进行验证。
然而通过采用上述这种方式进行验证,攻击者可预先知道验证码的类型,然后采用相应的识别程序进行破解,因此验证码的安全性较低,容易被攻击者破解。
技术实现要素:
本发明实施例的目的在于提供一种验证方法及装置,用于解决现有技术中验证码的类型单一,容易被破解的问题。
为了解决上述技术问题,本申请的实施例采用了如下技术方案:一种验证方法,包括如下步骤:
获取生成指令的接收时间,以获得时间参数;
基于所述时间参数确定与所述时间参数对应的验证码类型;
基于所述验证码类型生成第一验证码;
接收待验证的第二验证码,基于所述第一验证码对所述第二验证码进行验证,获得验证结果。
可选的,所述获取生成指令的接收时间,包括以下至少一种:
获取接收到生成指令时所对应的时刻;
获取接收生成指令所用的时间段。
可选的,所述基于所述时间参数确定与所述时间参数对应的验证码类型,具体包括:
根据所述时间参数确定所述时间参数中第一位的数值或第二位的数值;
根据所述数值获取与所述数值对应的验证码类型。
可选的,所述将所述第二验证码与所述第一验证码进行比较获得验证结果,具体包括:将所述第二验证码与所述第一验证码进行比较,若所述第二验证码满足所述第一验证码的验证条件,则确定通过验证;若所述第二验证码不满足所述第一验证码的验证条件,则确定未通过验证。
可选的,所述方法还包括:
当确定所述第二验证码未通过验证时,获取验证码刷新指令的接收时间,以获得时间参数;
基于所述时间参数确定与所述时间参数对应的验证码类型;
基于所述验证码类型重新生成第一验证码。
可选的,所述验证码类型包括如下一种或几种:数字类型的验证码、字母类型的验证码、汉字类型的验证码、算数类型的验证码、拖动式类型的验证码、点触式类型的验证码、问答式类型的验证码、语音类型的验证码、旋转式类型的验证码、短信类型的验证码。
可选的,所述时间参数包括:时间秒数、时间分钟数或时间小时数。
为了解决上述技术问题,本申请的实施例还公开一种验证装置,包括:
获取模块,用于获取生成指令的接收时间,以获得时间参数;
确定模块,用于基于所述时间参数确定与所述时间参数对应的验证码类型;
生成模块,用于基于所述验证码类型生成第一验证码;
验证模块,用于接收待验证的第二验证码,基于所述第一验证码对所述第二验证码进行验证,获得验证结果。
可选的,所述获取模块,用于以下至少一种:
获取接收到生成指令时所对应的时刻;
或者,获取接收生成指令所用的时间段。
可选的,所述确定模块具体用于:
根据所述时间参数确定所述时间参数中第一位或第二位的数值;
根据所述数值获取与所述数值对应的验证码类型。
可选的,所述验证模块具体用于:将所述第二验证码与所述第一验证码进行比较,若所述第二验证码满足所述第一验证码的验证条件,则确定通过验证;若所述第二验证码不满足所述第一验证码的验证条件,则确定未通过验证。
可选的,所述装置还包括刷新模块,所述刷新模块用于:
当确定所述第二验证码未通过验证时,获取验证码刷新指令的接收时间,以获得时间参数;
基于所述时间参数确定与所述时间参数对应的验证码类型;
基于所述验证码类型重新生成第一验证码。
可选的,所述验证码类型包括如下一种或几种:数字类型的验证码、字母类型的验证码、汉字类型的验证码、算数类型的验证码、拖动式类型的验证码、点触式类型的验证码、问答式类型的验证码、语音类型的验证码、旋转式类型的验证码、短信类型的验证码。
可选的,所述时间参数包括:时间秒数、时间分钟数或时间小时数。
本发明实施例的有益效果在于:通过根据时间参数来确定验证码类型,由于时间参数是随机、不固定的,所以验证码的类型也是随机的,不可预测的,因此提高了验证码的破解难度,提高了验证的安全性。
附图说明
图1为本发明第一实施例验证方法的流程图;
图2为本发明第二实施例验证方法的流程图;
图3为本发明第三实施例验证方法的流程图;
图4为本发明第四实施例验证装置的结构框图;
图5为本发明第四实施例验证装置的工作流程图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本发明第一实施例提供一种验证方法,包括如下步骤:
步骤s101,获取生成指令的接收时间,以获得时间参数;
本步骤中生成指令的接收时间,具体为验证码的生成指令的接收时间。所述接收时间具体可以为一个时刻点,也可以为一个时间段。例如,当用户进入某个网页或者进行某项操作之前,需要利用验证码进行验证,这时就会触发终端发出生成指令给验证码生成模块,验证码生成模块就会根据生成指令来生成验证码。其中接收时间即为生成模块接收到生成指令的时间,或生成模块接收生成指令所用的时间段。
步骤s102,基于所述时间参数确定与所述时间参数对应的验证码类型;
本实施例中,验证码的类型包括如下一种或几种:数字类型的验证码、字母类型的验证码、汉字类型的验证码、算数类型的验证码、拖动式类型的验证码、点触式类型的验证码、问答式类型的验证码、语音类型的验证码、旋转式类型的验证码、短信类型的验证码。
本步骤中,可以预先将预定的数值和验证码的类型相关联,比如选上述10种验证码类型,然后将这10种验证码类型分别与0-9这10个数字一一对应关联;根据所述时间参数确定所述时间参数中第一位的数值或第二位的数值;根据所述数值获取与所述数值对应的验证码类型。
步骤s103,基于所述验证码类型生成第一验证码;
步骤s104,接收待验证的第二验证码,基于所述第一验证码对所述第二验证码进行验证,获得验证结果。
本步骤中,第二验证码是经过人为输入/操作后,获得的验证码或验证条件。具体的待验证的第二验证码可以人工输入的一串字符、一串数字或者是在图片中点选的相应汉字等。
本实施例中,通过获取时间参数来获得一数值,然后根据该数值确定与该数值对应的验证码类型,再根据确定的验证码类型生成验证码,即实现了在不同的时间参数下,生成不同类型的验证码,最后将人工输入的待验证的验证码和第一验证码进行比较,获得验证结果。由于生成的验证码的类型不是单一、固定的,因此使得验证码的类型不可预测,提高了验证码的破解难度,提高了验证的安全性,防止被攻击者破解的情况发生。
本发明第二实施例提供一种验证方法,如图2所示,包括如下步骤:
步骤s201,将预定的数值和预定的验证码类型相关联;将关联结果保存在列表中。
本步骤中,可以预先选定5种验证码类型,然后将这5种验证码类型分别与0-9这10个数字对应关联,例如可以采用循环的方式,将5中验证码循环匹配给0-9这10个数;也可以选定10种验证码类型,然后将这10种验证码类型与0-60这61个数字对应关联,具体也可以采用循环的方式,保证每个数字都对应一个验证码类型。
步骤s202,获取接收到生成指令时所对应的时刻,以获得时间参数;
例如,接收到验证码生成指令时所对应的时刻为3时40分25秒,那么时间参数可以以秒数为对象,即获得时间参数为25。具体的也可以以小时数或分钟数为对象,来确定时间参数。
步骤s203,根据所述时间参数确定所述时间参数中第一位的数值或第二位的数值;根据所述数值获取与所述数值对应的验证码类型。
具体的比如根据时间参数25,可以确定数值为2,或者确定数值为5,然后选择2或者5所对应的验证码类型;也可以将25直接作为数值,确定25所对应的验证码类型。
步骤s204,基于所述验证码类型生成第一验证码;
本步骤中在确定了验证码类型后,比如确定验证码类型为数字类型的验证码,就可以生成第一数字验证码。
步骤s205,接收待验证的第二验证码,将所述第二验证码与所述第一验证码进行比较,若所述第二验证码满足所述第一验证码的验证条件,则确定通过验证;若所述第二验证码不满足所述第一验证码的验证条件,则确定未通过验证。
本实施例中,通过根据接收生成指令的时刻点来获得时间参数,然后根据时间参数来确定验证码类型,使得验证码的类型不可预测的,提高了验证码的破解难度,提高了验证的安全性。并且本实施例中通过将验证码类型和预定的数值关联,并保存在列表中,可以通过查找列表来获取验证码类型,方便快捷。
本发明第三实施例提供一种验证方法,如图3所示,包括如下步骤:
步骤s301,将预定的数值和预定的验证码类型相关联;将关联结果保存在列表中。
本步骤中,可以预先选定5种验证码类型,然后将这5种验证码类型分别与0-9这10个数字对应关联,例如可以采用循环的方式,将5中验证码循环匹配给0-9这10个数;也可以选定10种验证码类型,然后将这10种验证码类型与0-60这61个数字对应关联,具体也可以采用循环的方式,保证每个数字都对应一个验证码类型。
步骤s302,获取接收生成指令所用的时间段,以获得时间参数;
例如从验证码生成指令的发出时刻到接收到验证码生成指令的时刻一共用时1分30秒,那么就可以以秒数为对象,确定时间参数为30。具体的也可以以小时数或分钟数为对象,来确定时间参数。若采用分钟数,可以将1分30秒换算成1.5分钟,确定时间参数为5、15或1。
步骤s303,根据所述时间参数确定所述时间参数中第一位的数值或第二位的数值;根据所述数值获取与所述数值对应的验证码类型;
具体的比如根据时间参数5,可以确定数值为0,或者确定数值为5,然后选择1或者5所对应的验证码类型。
步骤s304,基于所述验证码类型生成第一验证码;
本步骤中在确定了验证码类型后,比如确定验证码类型为字母类型的验证码,就可以生成第一字母验证码。
步骤s305,接收待验证的第二验证码,将所述第二验证码与所述第一验证码进行比较,若所述第二验证码满足所述第一验证码的验证条件,则确定通过验证;若所述第二验证码不满足所述第一验证码的验证条件,则确定未通过验证。
本实施例中,当确定所述第二验证码未通过验证时,还包括:获取验证码刷新指令的接收时间,以获得时间参数;
基于所述时间参数确定与所述时间参数对应的验证码类型;
基于所述验证码类型重新生成第一验证码。
本发明实施例中,通过根据接收生成指令的用时时间段来获得时间参数,然后根据时间参数来确定验证码类型,使得验证码的类型不可预测的,提高了验证码的破解难度,提高了验证的安全性。并且在验证未通过情况下,通过获取刷新指令的接收时间来重新确定验证码的类型,以生成新的验证码,提高了验证码的安全性。
本发明第四实施例提供一种验证装置,包括:
获取模块1,用于获取生成指令的接收时间,以获得时间参数;
确定模块2,用于基于所述时间参数确定与所述时间参数对应的验证码类型;
生成模块3,用于基于所述验证码类型生成第一验证码;
验证模块4,用于接收待验证的第二验证码,基于所述第一验证码对所述第二验证码进行验证,获得验证结果。本实施例中,所述获取模块1,用于以下至少一种:获取接收到生成指令时所对应的时刻;或者,获取接收生成指令所用的时间段。
本实施例中,所述确定模块具体用于:根据所述时间参数确定所述时间参数中第一位的数值或第二位的数值;根据所述数值获取与所述数值对应的验证码类型。
本实施例中,所述验证模块具体用于:将所述第二验证码与所述第一验证码进行比较,若所述第二验证码满足所述第一验证码的验证条件,则确定通过验证;若所述第二验证码不满足所述第一验证码的验证条件,则确定未通过验证。
本实施例中,所述装置还包括刷新模块,所述刷新模块用于:当确定所述第二验证码未通过验证时,获取验证码刷新指令的接收时间,以获得时间参数;基于所述时间参数确定与所述时间参数对应的验证码类型;基于所述验证码类型重新生成第一验证码。
本实施例中,所述验证码类型包括如下一种或几种:数字类型的验证码、字母类型的验证码、汉字类型的验证码、算数类型的验证码、拖动式类型的验证码、点触式类型的验证码、问答式类型的验证码、语音类型的验证码、旋转式类型的验证码、短信类型的验证码。所述时间参数包括:时间秒数、时间分钟数或时间小时数。
本实施例中还包括以保存模块,用于将预定的数值和预定的验证码类型相关联;将关联结果保存在列表中。
结合图5,本实施例验证装置的工作过程如下:
步骤一、启动装置
步骤二、获取时间参数;
步骤三、提取所述时间参数中的秒数位于个位的数值,根据所述数值确定与数值对应的验证码类型;
步骤五、根据验证码类型生成第一验证码;
步骤六、接收待验证的第二验证码;
步骤七、将所述第二验证码与所述第一验证码进行比较判断是否通过验证。
步骤八、若通过验证则完成验证;若未通过验证,则执行步骤二。
本发明实施例通过根据时间参数来确定验证码类型,由于时间参数是随机、不固定的,所以验证码的类型也是随机的,不可预测的,因此提高了验证码的破解难度,提高了验证的安全性。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。