身份验证方法及装置
技术领域
本发明涉及计算机网络技术领域,特别是涉及一种身份验证方法及装置。
背景技术
随着计算机和计算机网络的日益普及,互联网已经深入到人们工作、学习和生活的各个领域。网络的发展在为人们提供便利的同时也带来各种挑战。一些人会利用机器人程序大量地不当使用网络资源,例如群发垃圾邮件等,使服务器效能大为降低。也有人利用程序不断发出服务请求回应,进行“饱和攻击”以达到使服务器瘫痪的目的。甚至还有人尝试利用暴利破解等手段进行恶意破解密码等行为。为避免上述恶意行为,设计一套能够让计算机自动分辨信息是来自合理用户或是非正当使用的机器人程序的工具,就显得非常重要。
使用验证码图片是现在比较通行的方式,验证码图片的主要目的是分辨网络服务用户是程序还是人类。验证码图片是一副含有有效验证码(由机器可识别的字符组成)的图片,会要求用户回答在这张图片中显示了哪些文字。为了避免被机器自动识别,通常会通过将验证码的字母笔画相连、将文字的字体进行扭曲变形、或者增加背景等手段对验证码图片中的文字进行处理,从而对机器自动识别进行干扰。
然而,如图1所示,现有的基于验证码图片的身份验证方法,需要用户在验证码输入框1中手动输入验证码图片2中所显示的字符,由于手动输入需要借助键盘来完成,因此决定了验证码图片中的字符必须简单易懂。目前验证码图片中的内容一般都采用字母或数字,可选择范围小,只要收集足够的样本,进行机器学习和训练,很快就可以开发出可以破解验证码的自动机程序。即使是增加了背景的验证码图片,如果背景库不够庞大,依然会被自动机破解。因此,验证码图片的整体抗破解能力比较差,安全性比较低。
发明内容
本发明实施例的目的在于,提供一种安全性更高的身份验证方法及装置。
本发明实施例提供一种身份验证方法,所述方法包括:服务器接收用户终端发送的验证码拉取请求;根据所述验证码拉取请求,生成具有第一有效验证码的第一验证码图片,将所述第一验证码图片下发给所述用户终端进行显示;接收用户终端返回的用户根据所述第一验证码图片手写输入的手写轨迹,利用所述手写轨迹、并根据所述第一有效验证码,生成具有第二有效验证码的第二验证码图片,并将所述第二验证码图片返回所述用户终端;以及接收所述用户终端返回的用户根据所述第二验证码图片输入的答案,通过比对所述答案与所述第二有效验证码,对用户的身份进行验证,当所述答案与所述第二有效验证码相同时,验证通过,否则,验证不通过。
本发明实施例还提供一种身份验证方法,所述方法包括:用户终端向服务器发送验证码拉取请求;接收服务器根据所述验证码拉取请求返回的第一验证码图片,生成手写输入框,显示所述第一验证码图片以及所述手写输入框;获取用户根据所述第一验证码图片手写输入的手写轨迹,并将所述手写轨迹发送给所述服务器,以使所述服务器利用所述手写轨迹生成第二验证码图片;接收并显示所述服务器返回的所述第二验证码图片;以及获取用户根据所述第二验证码图片输入的答案,将所述答案发送给所述服务器,以使所述服务器根据所述答案对用户的身份进行验证。
相应的,本发明实施例还提供一种身份验证装置,所述装置可以运行于服务器,所述装置可以包括:第一接收模块,用于接收用户终端发送的验证码拉取请求;第一验证码下发模块,用于根据所述验证码拉取请求,生成具有第一有效验证码的第一验证码图片,将所述第一验证码图片下发给所述用户终端进行显示;第二接收模块,用于接收用户终端返回的用户根据所述第一验证码图片手写输入的手写轨迹;第二验证码下发模块,用于利用所述手写轨迹、并根据所述第一有效验证码,生成具有第二有效验证码的第二验证码图片,并将所述第二验证码图片返回所述用户终端;第三接收模块,用于接收所述用户终端返回的用户根据所述第二验证码图片输入的答案;以及验证模块,用于通过比对所述答案与所述第二有效验证码,对用户的身份进行验证,当所述答案与所述第二有效验证码相同时,验证通过,否则,验证不通过。
相应的,本发明实施例还提供一种身份验证装置,可以运行于用户终端,所述装置可以包括:请求发送模块,用于向服务器发送验证码拉取请求;第一显示模块,用于接收服务器根据所述验证码拉取请求返回的第一验证码图片,生成手写输入框,显示所述第一验证码图片以及所述手写输入框;第一获取模块,用于获取用户根据所述第一验证码图片手写输入的手写轨迹,并将所述手写轨迹发送给所述服务器,以使所述服务器利用所述手写轨迹生成第二验证码图片;第二显示模块,用于接收并显示所述服务器返回的所述第二验证码图片;以及第二获取模块,用于获取用户根据所述第二验证码图片输入的答案,将所述答案发送给所述服务器,以使所述服务器根据所述答案对用户的身份进行验证。
本发明实施例中的身份验证方法及装置,一方面可以获取用户根据第一验证码图片在用户终端手写输入的手写轨迹作为生成验证码图片的素材,解决了素材数据库资源有限的问题,另一方面由于手写输入需要由用户完成,因此增加了机器破解验证码的难度,另外,由于第二验证码图片是利用用户根据第一验证码图片手写输入的轨迹生成的,不容易被机器破解,因此安全性更高。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是现有的采用验证码图片进行身份验证时的交互界面示意图。
图2是本发明实施例的一种应用环境图。
图3是一种可应用于本发明实施例的用户终端的结构框图。
图4是一种可应用于本发明实施例的服务器的结构框图。
图5是本发明实施例的另一种应用环境图。
图6是本发明第一实施例提供的身份验证方法的流程图。
图7是本发明第一实施例提供的身份验证方法中部分步骤的具体流程图。
图8是本发明第一实施例提供的身份验证方法中部分步骤的具体流程图。
图9是本发明第二实施例提供的身份验证方法的流程图。
图10是本发明第二实施例提供的身份验证方法的部分步骤的具体流程图。
图11是本发明第三实施例提供的身份验证方法的流程图。
图12是本发明第三实施例中的交互界面示意图之一。
图13是本发明第三实施例中的交互界面示意图之二。
图14是本发明第三实施例中的交互界面示意图之三。
图15是本发明第四实施例提供的身份验证装置的结构框图。
图16是图15中部分结构的结构框图。
图17是本发明第五实施例提供的身份验证装置的结构框图。
图18是图17中部分结构的结构框图。
图19为本发明实施例中的身份验证系统的结构框图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的身份验证方法及身份验证装置的具体实施方式、方法、步骤、结构、特征及其功效,详细说明如下。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
请参阅图2,图2所示为本发明实施例提供的身份验证方法的应用环境图。如图2所示,用户终端100以及服务器200位于无线或有线网络300中,通过该无线或有线网络300,用户终端100以及服务器200相互通信。
本实施例提供的技术方案中,在进行身份验证时,服务器200会下发两次验证码图片给用户终端100,用户根据服务器200第一次下发的第一验证码图片在用户终端100手写输入手写轨迹,服务器200利用用户输入的手写轨迹以及第一验证码图片的第一有效验证码生成具有第二有效验证码的第二验证码图片,然后用户再根据服务器200第二次下发的第二验证码图片在用户终端100输入答案,服务器200通过比对用户输入的答案与第二有效验证码,对用户的身份进行验证,当所述答案与所述第二有效验证码相同时,验证通过,否则,验证不通过。
用户终端100具体可以包括智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机、车载终端、网络电视、可穿戴设备等等。
图3示出了一种可应用于本发明实施例中的用户终端的结构框图。如图3所示,用户终端100包括存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、射频模块110、定位模块112、图像采集模块114、音频模块116、触控屏幕118以及按键模块120。这些组件通过一条或多条通讯总线/信号线122相互通讯。
可以理解,图3所示的结构仅为示意,用户终端100还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。
存储器102可用于存储软件程序以及模块,如本发明实施例中的身份验证方法及装置对应的程序指令/模块,处理器106通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的身份验证方法。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器106远程设置的存储器,这些远程存储器可以通过网络连接至用户终端100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。
外设接口108将各种输入/输入装置耦合至CPU以及存储器102,例如手写板、键盘等。处理器106运行存储器102内的各种软件、指令以执行用户终端100的各种功能以及进行数据处理。
在一些实施例中,外设接口108,处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频模块110用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块110可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。射频模块110可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for Mobile Communication,GSM)、增强型移动通信技术(Enhanced Data GSM Environment,EDGE),宽带码分多址技术(wideband code divisionmultiple access,W-CDMA),码分多址技术(Code division access,CDMA)、时分多址技术(time division multiple access,TDMA),蓝牙,无线保真技术(Wireless,Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE 802.11a,IEEE 802.11b,IEEE802.11g和/或IEEE 802.11n)、网络电话(Voice over internet protocal,VoIP)、全球微波互联接入(Worldwide Interoperability for Microwave Access,Wi-Max)、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
定位模块112用于获取用户终端100的当前位置。定位模块112的实例包括但不限于全球卫星定位系统(GPS)、基于无线局域网或者移动通信网的定位技术。
图像采集模块114用于拍摄照片或者视频。拍摄的照片或者视频可以存储至存储器102内,并可通过射频模块110发送。
音频模块116向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。音频电路从外设接口108处接收声音数据,将声音数据转换为电信息,将电信息传输至扬声器。扬声器将电信息转换为人耳能听到的声波。音频电路还从麦克风处接收电信息,将电信号转换为声音数据,并将声音数据传输至外设接口108中以进行进一步的处理。音频数据可以从存储器102处或者通过射频模块110获取。此外,音频数据也可以存储至存储器102中或者通过射频模块110进行发送。在一些实例中,音频模块116还可包括一个耳机播孔,用于向耳机或者其他设备提供音频接口。
触控屏幕118在用户终端100与用户之间同时提供一个输出及输入界面。具体地,触控屏幕118向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。触控屏幕118还接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应,例如获取用户输入的手写轨迹等。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。通过检测用户输入的技术可以获取用户输入的时间、用户输入的位置、用户手势的轨迹、力度等。触控屏幕118显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。
按键模块120同样提供用户向用户终端100进行输入的接口,用户可以通过按下不同的按键以使用户终端100执行不同的功能。
图4为一种可应用于本发明实施例的中的服务器的结构框图。如图4所示,服务器200包括:存储器201、处理器202以及网络模块203。可以理解,图4所示的结构仅为示意,其并不对本发明实施例中的服务器的结构造成限定。例如,本发明实施例中的服务器还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。另外,本发明实施例中的服务器还可以包括多个具体不同功能的服务器。
存储器201可用于存储软件程序以及模块,如本发明实施例中的身份验证方法及装置对应的程序指令/模块,处理器202通过运行存储在存储器201内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本发明实施例中的身份验证方法。存储器201可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器201可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至服务器200。
网络模块203用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,网络模块203可包括处理器、随机存储器、转换器、晶体振荡器等元件。
上述的软件程序以及模块还包括操作系统,例如可为LINUX,UNIX,WINDOWS,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。
需要说明的是,本发明实施例中的服务器可以是单个服务器,也可以是服务器集群(如图5所示),包括不同功能的服务器,例如可以包括web服务器、验证服务器、验证码生成服务器、字迹或原图等素材存储服务器等。其中,web服务器可以用于与用户终端100进行交互,例如接收用户终端100发送的访问请求、向用户终端100下发验证码图片等。验证服务器可以用于根据用户终端100返回的答案与验证码图片对应的有效验证码进行验证等。验证码生成服务器可以用于根据用户请求生成对应的验证码图片,并且记录每个请求与验证码图片之间的对应关系等。字迹或原图等素材存储服务器可以用于存储海量的图片素材以及包括各种字体的字迹库等。
下面将结合附图,对本发明实施例提供的身份验证方法、装置进行详细的介绍。
第一实施例
请参阅图6,所示为本发明第一实施例提供的身份验证方法的流程图。结合图2,本实施例描述的是服务器的处理流程,本实施例提供的身份验证方法包括以下步骤:
步骤S11,服务器接收用户终端发送的验证码拉取请求。
当用户终端监测到用户使用终端进行发起交易等需要验证身份的敏感操作、或者在某时间段内登陆某应用次数过多、或者异地登陆某应用、或者登陆某应用密码输入错误次数过多等情况发生时,可以判定身份验证请求被触发,用户终端可以向服务器发送验证码拉取请求。
用户终端可以向预先配置的服务器,例如可以为一个网页地址,发送验证码拉取请求,以获取验证码。具体的,验证码拉取请求中可以携带有页面标识,页面标识用于标识一个唯一的页面,例如可以是一个数字,每次刷新页面时页面标识都会变化,与验证码拉取请求具有对应关系。
步骤S12,根据所述验证码拉取请求,生成具有第一有效验证码的第一验证码图片,将所述第一验证码图片下发给所述用户终端进行显示。
在一种具体实施方式中,所述第一验证码图片中可以包括多个由素材数据库中随机选取的字符(也就是字符型验证码图片),所述第一有效验证码为与所述第一验证码图片中的字符相对应的机器可识别字符串。具体的,服务器可以由素材数据库中随机选取多个字符,并在素材数据库中选取背景图片,将所选取的字符设置在背景图片中生成第一验证码图片,进一步的,还可以对第一验证码图片中的字符进行干扰变形等处理。当然,本发明实施例中的第一验证码图片的生成方式并不限于上述方法,其他可以生成验证码图片的方法均适用。素材数据库可以存储在服务器200中,也可以存储在专门用于存储素材的存储服务器中。
在其他可替代的具体实施方式中,第一验证码图片中可以包括简单的、用户可以描绘的实物图形,例如太阳、月亮、爱心等,也就是图形验证码图片。
在服务器下发第一验证码图片前,第一有效验证码作为第一验证码图片的签名被服务器记录下来。同时,服务器还可以记录第一有效验证码、第一验证码图片以及验证码拉取请求的页面标识之间的对应关系。
第一有效验证码来源于素材数据库,素材数据库中不仅存储有不同字体的字符、原图图片等素材,还存储有与这些素材对应的机器可识别字符或字符串。不同字体的字符相对应的机器可识别字符可以是该字符本身,当然也可以是其他字符,包括数字、字母、符号、或中文文字等。例如,图1中的验证码图片2对应的机器可识别字符串可以为XXEH。如果验证码图片中的内容是实物图形,对应的机器可识别字符或字符串通常是该图形所表示的主题。例如,与太阳图形对应的机器可识别字符可以是“太阳”。
假设第一验证码图片为字符型验证码图片,服务器在生成第一验证码时,由数据库中随机选取多个字符,并获取该多个字符对应的机器可识别字符,第一验证码图片的第一有效验证码就是与所述第一验证码图片中的字符相对应的机器可识别字符串,其字符的内容以及排列顺序可以与第一验证码图片中的内容及排列顺序相同。
步骤S13,接收用户终端返回的用户根据所述第一验证码图片手写输入的手写轨迹,利用所述手写轨迹、并根据所述第一有效验证码,生成具有第二有效验证码的第二验证码图片,并将所述第二验证码图片返回所述用户终端。
如果第一验证码图片为字符型验证码图片,用户输入的手写轨迹可以包括多个与第一验证码图片中的内容相对应的手写字符。
如果第一验证码图片为图形验证码图片,用户输入的手写轨迹可以是与第一验证码图片中的图形相对应的图形,例如第一验证码图片的内容为太阳图形,用户输入的手写轨迹可以是太阳图形。
具体的,用户终端返回用户根据所述第一验证码图片手写输入的手写轨迹的同时,可以返回页面标识,服务器可以根据页面标识查找到对应的第一验证码图片以及第一有效验证码,然后生成第二验证码图片。
以所述手写轨迹包括多个手写字符为例,请参照图7,所述利用所述手写轨迹、并根据所述第一有效验证码,生成具有第二有效验证码的第二验证码图片的步骤,可以包括:
步骤S131,根据所述第一有效验证码中的机器可识别字符串与所述手写轨迹中的多个手写字符之间的对应关系,获取并记录与每个手写字符所对应的机器可识别字符;
步骤S132,将所述手写轨迹中的手写字符重新排序,生成所述第二验证码图片,所述第二验证码图片包括重新排序后的所述手写字符;以及
步骤S133,根据重新排序后的所述手写字符以及与每个手写字符所对应的机器可识别字符,获取所述第二有效验证码,所述第二有效验证码为与所述第二验证码图片中的手写字符相对应的机器可识别字符串。
在服务器返回第二验证码图片前,第二有效验证码作为第二验证码图片的签名被服务器记录下来。同时,服务器还可以记录第二有效验证码、第二验证码图片以及页面标识之间的对应关系。
步骤S13中,服务器并不需要对用户输入的手写轨迹是否与第一有效验证码相匹配进行校验,而是利用用户输入的手写轨迹重新生成第二验证码图片下发给用户终端,由于在后续的步骤中,服务器会对用户根据第二验证码图片输入的答案进行身份验证,并且与第二验证码图片相对应的第二有效验证码是根据第一验证码图片的第一有效验证码生成的,因此,用户需要尽量输入正确的手写轨迹以保证最终通过验证。
步骤S14,接收所述用户终端返回的用户根据所述第二验证码图片输入的答案,通过比对所述答案与所述第二有效验证码,对用户的身份进行验证,当所述答案与所述第二有效验证码相同时,验证通过,否则,验证不通过。
用户终端返回用户输入的答案的同时,也可以将页面标识赶回给服务器,服务器可以根据页面标识查找到对应的第二验证码图片以及第二有效验证码,然后进行身份验证。
具体的,服务器可以将所述答案转换为对应的机器可识别的字符串,比对所述答案对应的字符串与所述第二有效验证码中的机器可识别字符串,如果所述答案对应的字符串与所述第二有效验证码中的机器可识别字符串相同,则验证通过,如果不相同,则验证不通过。
如果验证不通过,服务器可以向用户终端发送重新获取用户手写轨迹的请求,用户终端根据该请求重新将所述第一验证码图片显示给用户,并获取用户手写输入的手写轨迹,并执行步骤S13至步骤S14,直到验证通过为止。
如果验证通过,服务器可以直接将手写字符或图形以及与其对应的机器可识别字符对应存储在系统字符库中,以便下次生成验证码图片时使用。服务器还可以对手写字符进行测试后再将其存储在系统的字符库,也就是前面提到的素材数据库中。以用户输入的手写轨迹为手写字符为例,请参照图8,具体的测试过程可以包括:
步骤S141,将所述手写字符以及与其对应的机器可识别字符对应存储在待选字符库中;
步骤S142,随机由待选字符库中选取多个手写字符,生成第三验证码图片,并将所述第三验证码图片下发给测试终端进行身份验证测试;
步骤S143,接收测试终端返回的用户根据所述第三验证码图片输入的答案,并根据所述答案对用户的身份进行验证,记录验证结果;
可重复进行步骤S141至步骤S143多次,然后根据多次的验证结果,统计所述第三验证码图片的验证通过率,如果通过率达到预置比例,则将所述手写字符存储在系统字迹库中,作为生成验证码图片的字符。
本发明实施例中的身份验证方法,一方面可以获取用户根据第一验证码图片在用户终端手写输入的手写轨迹作为生成验证码图片的素材,解决了素材数据库资源有限的问题,另一方面由于手写输入需要由用户完成,因此增加了机器破解验证码的难度,另外,由于第二验证码图片是利用用户根据第一验证码图片手写输入的轨迹生成的,不容易被机器破解,因此安全性更高。
第二实施例
请参阅图9,所示为本发明第二实施例提供的身份验证方法的流程图。结合图2,本实施例描述的是用户终端的处理流程,本实施例中的身份验证方法包括:
步骤S21,用户终端向服务器发送验证码拉取请求。
步骤S22,接收服务器根据所述验证码拉取请求返回的第一验证码图片,生成手写输入框,显示所述第一验证码图片以及所述手写输入框。
所述第一验证码图片中可以包括多个由字符库中随机选取的字符,所述第一验证码图片具有第一有效验证码,所述第一有效验证码为与所述第一验证码图片中的字符相对应的机器可识别字符串。
进一步的,所述手写输入框可以包括多个子输入框,所述子输入框的个数与所述第一验证码图片中的字符的个数相同。
步骤S23,获取用户根据所述第一验证码图片手写输入的手写轨迹,并将所述手写轨迹发送给所述服务器,以使所述服务器利用所述手写轨迹生成第二验证码图片。
用户根据第一验证码图片的内容,在手写输入框中依序输入与第一验证码图片中的内容相同的手写轨迹。具体的,用户可以通过手指或手写装置,例如手写笔等在用户终端的触控屏上输入手写轨迹,也可以通过外接在用户终端上的手写板进行输入。当用户终端在手写输入框中接收到对应的手写轨迹后,可以将手写轨迹进行影像处理以产生符合存储格式的手写轨迹。所述影像处理可以包括、但不限于:缩放手写轨迹、去杂讯、边缘化、灰阶处理等影像处理方法,主要是为了产生便于存储的手写轨迹。
步骤S24,接收并显示所述服务器返回的所述第二验证码图片。
进一步的,请参照图10,步骤S24可以包括:
步骤S241,接收所述第二验证码图片;
步骤S242,生成答案输入控件;以及
步骤S243,显示所述第二验证码图片以及所述答案输入控件。
所述答案输入控件可以是字符输入框,用于获取用户输入的字符,也可以是语音采集控件,用于采集用户输入的语音信号,当然,也可以是其他的答案输入控件,本发明并不以此为限。
步骤S25,获取用户根据所述第二验证码图片输入的答案,将所述答案发送给所述服务器,以使所述服务器根据所述答案对用户的身份进行验证。
本发明实施例中的身份验证方法,一方面可以获取用户根据第一验证码图片在用户终端手写输入的手写轨迹作为生成验证码图片的素材,解决了素材数据库资源有限的问题,另一方面由于手写输入需要由用户完成,因此增加了机器破解验证码的难度,另外,由于第二验证码图片是利用用户根据第一验证码图片手写输入的轨迹生成的,不容易被机器破解,因此安全性更高。
第三实施例
请参阅图11,所示为本发明第三实施例提供的身份验证方法的流程图。结合图2,该实施例描述的是用户终端与服务器之间的交互处理流程。本实施例中的身份验证方法可以包括:
步骤S301,用户终端向服务器发送验证码拉取请求。
步骤S302,服务器根据所述验证码拉取请求,生成具有第一有效验证码的第一验证码图片。步骤S303,服务器将所述第一验证码图片下发给用户终端。
步骤S304,用户终端生成手写输入框,向用户显示所述第一验证码图片以及所述手写输入框。
图12所示为用户终端显示的身份验证交互界面示意图之一,其包括第一验证码图片12a,手写输入框12b。假设服务器由素材数据库总随机选取了c、o、Z、n四个字符,并且与c对应的机器可识别字符是c,与o对应的机器可识别字符是o,与Z对应的机器可识别字符是z,与n对应的机器可识别字符是n。服务器生成如图12所示的第一验证码图片12a,并存储与该第一验证码图片对应的第一有效验证码是字符串:cozn(不区分大小写)。
用户终端生成的手写输入框12b可以包括多个子输入框120b,所述子输入框120b的个数与第一验证码图片12a中的字符的个数相同,图12中为4个。
步骤S305,用户终端获取用户根据所述第一验证码图片手写输入的手写轨迹。
用户可以通过手指或手写装置在手写输入框中手写输入第一验证码图片中的字符,图13为用户在4个子输入框120b中依次输入手写轨迹后的交互界面示意图。用户终端在子输入框120b中接收到对应的手写字符c、o、z、n后,可以将手写字符进行影像处理以产生符合存储格式的手写字符,假设手写字符是以点阵图储存,且其点阵图大小为64x64pixels,则用户终端将会把手写字符转换为点阵图格式,并将手写字符大小缩放为正确的储存格式。
步骤S306,用户终端将所述手写轨迹发送给服务器。
用户终端将处理后的手写字符c、o、z、n发送给服务器。
步骤S307,服务器利用所述手写轨迹、并根据所述第一有效验证码,生成具有第二有效验证码的第二验证码图片。
服务器根据第一有效验证码中的机器可识别字符串cozn与多个手写字符c、o、z、n之间的对应关系,获取并记录与每个手写字符所对应的机器可识别字符,具体的,与手写字符c对应的机器可识别字符是c,与手写字符o对应的机器可识别字符是o,与手写字符z对应的机器可识别字符是z,手写字符n对应的机器可识别字符是n。将手写字符c、o、z、n重新排序,生成如图14所示的第二验证码图片14a,所述第二验证码图片14a中手写字符的排列顺序为c、z、n、o。根据与每个手写字符所对应的机器可识别字符,获得第二验证码图片14a对应的机器可识别字符串为:czno。
步骤S308,服务器将第二验证码图片返回给用户终端。
步骤S309,用户终端生成答案输入控件,显示所述第二验证码图片以及所述答案输入控件。
图14为另一个用户终端显示的身份验证交互界面示意图,包括第二验证码图片14a以及答案输入控件14b。图14中的答案输入控件14b为文本输入框。
步骤S310,用户终端获取用户根据所述第二验证码图片输入的答案。
用户可以在文本输入框中输入验证码的答案,也就是与第二验证码图片内容相同的字符串。
步骤S311,用户终端将用户输入的答案发送给服务器。
步骤S312,服务器通过比对所述答案与所述第二有效验证码,对用户的身份进行验证,当所述答案与所述第二有效验证码相同时,验证通过,否则,验证不通过。
第二有效验证码为czno,如果用户在文本输入框14b中输入的答案为czno,则验证通过,否则,验证不通过。如果验证不通过,服务器可以向用户终端发送重新获取用户手写轨迹的请求,用户终端根据该请求重新将所述第一验证码图片显示给用户,也就是返回步骤S304,并获取用户手写输入的手写轨迹,执行步骤S304至步骤S312,直到验证通过为止。如果验证通过,服务器可以直接将手写字符c、z、n、o与其对应的机器可识别字符对应存储在素材数据库中,以便下次生成验证码图片时使用。服务器还可以对手写字符c、z、n、o进行测试后再将其存储在系统的字符库,也就是前面提到的素材数据库中。具体的方法可以参照第一实施例中的相关步骤,这里不再赘述。
需要说明的是,由于本发明实施例中用户终端所获得的手写字符可能涉及版权的问题,因此需要在用户许可的条件才可以进行采集,相关的协议可以显示在身份验证交互界面中。
本发明实施例中的身份验证方法,一方面可以获取用户根据第一验证码图片在用户终端手写输入的手写轨迹作为生成验证码图片的素材,解决了素材数据库资源有限的问题,另一方面由于手写输入需要由用户完成,因此增加了机器破解验证码的难度,另外,由于第二验证码图片是利用用户根据第一验证码图片手写输入的轨迹生成的,不容易被机器破解,因此安全性更高。
第四实施例
图15为本发明第四实施例提供的一种身份验证装置的结构示意图。请参照图15,本实施例提出的装置可运行于服务器,用于实现上述实施例提出的身份验证方法,本实施例中的装置40可以包括:
第一接收模块41,用于接收用户终端发送的验证码拉取请求;
第一验证码下发模块42,用于根据所述验证码拉取请求,生成具有第一有效验证码的第一验证码图片,将所述第一验证码图片下发给所述用户终端进行显示;
第二接收模块43,用于接收用户终端返回的用户根据所述第一验证码图片手写输入的手写轨迹;
第二验证码下发模块44,用于利用所述手写轨迹、并根据所述第一有效验证码,生成具有第二有效验证码的第二验证码图片,并将所述第二验证码图片返回所述用户终端;
第三接收模块45,用于接收所述用户终端返回的用户根据所述第二验证码图片输入的答案;以及
验证模块46,用于通过比对所述答案与所述第二有效验证码,对用户的身份进行验证,当所述答案与所述第二有效验证码相同时,验证通过,否则,验证不通过。
其中,所述第一验证码图片中包括多个由字符库中随机选取的字符,所述第一有效验证码为与所述第一验证码图片中的字符相对应的机器可识别字符串。
进一步的,所述手写轨迹可以包括多个手写字符,请参照图16,所述第二验证码下发模块44包括:
第一处理单元441,用于根据所述第一有效验证码中的机器可识别字符串与所述手写轨迹中的多个手写字符之间的对应关系,获取并记录与每个手写字符所对应的机器可识别字符;
第二处理单元442,用于将所述手写轨迹中的手写字符重新排序,生成所述第二验证码图片,所述第二验证码图片包括重新排序后的所述手写字符;以及
第三处理单元443,用于根据重新排序后的所述手写字符以及与每个手写字符所对应的机器可识别字符,获取所述第二有效验证码,所述第二有效验证码为与所述第二验证码图片中的手写字符相对应的机器可识别字符串。
进一步的,所述验证模块46还可以用于将所述答案转换为对应的机器可识别的字符串,比对所述答案对应的字符串与所述第二有效验证码中的机器可识别字符串。
进一步的,所述装置40还可以包括:
存储模块47,用于将所述手写字符以及与其对应的机器可识别字符对应存储在待选字符库中;
第三验证码下发模块48,用于随机由待选字符库中选取多个手写字符,生成第三验证码图片,并将所述第三验证码图片下发给测试终端进行身份验证测试;以及
统计模块49,用于统计所述第三验证码图片的验证通过率,如果通过率达到预置比例,则将所述手写字符存储在系统字迹库中,作为生成验证码图片的字符。
所述验证模块46还用于接收测试终端返回的用户根据所述第三验证码图片输入的答案,并根据所述答案对用户的身份进行验证,记录验证结果。
以上各模块可以是由软件代码实现,此时,上述的各模块可存储于服务器的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。
需要说明的是,本发明实施例的用户终端的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,在此不赘述。
本发明实施例中的身份验证装置,一方面可以获取用户根据第一验证码图片在用户终端手写输入的手写轨迹作为生成验证码图片的素材,解决了素材数据库资源有限的问题,另一方面由于手写输入需要由用户完成,因此增加了机器破解验证码的难度,另外,由于第二验证码图片是利用用户根据第一验证码图片手写输入的轨迹生成的,不容易被机器破解,因此安全性更高。
第五实施例
图17为本发明第五实施例提供的一种身份验证装置的结构示意图。请参照图17,本实施例提出的装置可运行于用户终端,用于实现上述实施例提出的身份验证方法,本实施例中的装置50可以包括:
请求发送模块51,用于向服务器发送验证码拉取请求;
第一显示模块52,用于接收服务器根据所述验证码拉取请求返回的第一验证码图片,生成手写输入框,显示所述第一验证码图片以及所述手写输入框;
第一获取模块53,用于获取用户根据所述第一验证码图片手写输入的手写轨迹,并将所述手写轨迹发送给所述服务器,以使所述服务器利用所述手写轨迹生成第二验证码图片;
第二显示模块54,用于接收并显示所述服务器返回的所述第二验证码图片;以及
第二获取模块55,用于获取用户根据所述第二验证码图片输入的答案,将所述答案发送给所述服务器,以使所述服务器根据所述答案对用户的身份进行验证。
其中,所述第一验证码图片中包括多个由字符库中随机选取的字符,所述第一验证码图片具有第一有效验证码,所述第一有效验证码为与所述第一验证码图片中的字符相对应的机器可识别字符串。
所述手写输入框包括多个子输入框,所述子输入框的个数与所述第一验证码图片中的字符的个数相同。
进一步的,请参照图18,所述第二显示模块54可以包括:
接收单元541,用于接收所述第二验证码图片;
控件生成单元542,用于生成答案输入控件;以及
显示单元543,用于显示所述第二验证码图片以及所述答案输入控件。
其中,所述答案输入控件可以是字符输入框,用于获取用户输入的字符,也可以是语音采集控件,用于采集用户输入的语音信号。
以上各模块可以是由软件代码实现,此时,上述的各模块可存储于用户终端的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。
需要说明的是,本发明实施例的用户终端的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,在此不赘述。
本发明实施例中的身份验证装置,一方面可以获取用户根据第一验证码图片在用户终端手写输入的手写轨迹作为生成验证码图片的素材,解决了素材数据库资源有限的问题,另一方面由于手写输入需要由用户完成,因此增加了机器破解验证码的难度,另外,由于第二验证码图片是利用用户根据第一验证码图片手写输入的轨迹生成的,不容易被机器破解,因此安全性更高。
第六实施例
图19为本发明第六实施例中的身份验证系统的结构框图。请参照图19,本实施例提出的身份验证系统60可以用于实现上述实施例提出的身份验证方法,本实施例中的身份验证系统60可以包括:用户终端61以及服务器62,用户终端61可以是第四实施例中的用户终端,服务器62可以是第五实施例中的服务器。本发明实施例的用户终端以及服务器的各功能模块的功能可根据上述实施例中的方法或装置具体实现,其具体实现过程可以参照上述实施例的相关描述,在此不赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。