本发明实施例涉及数据处理技术,尤其涉及一种数据验证的方法及装置。
背景技术:
在网络游戏运营过程中,时常需要对玩家的登录、交易等行为进行控制和规范,杜绝玩家使用外挂或者在进行危险操作时给予验证和提醒。这时就需要在游戏中通过引入一种验证系统来解决此问题,例如在玩家登录时、与NPC交易时、长时间挂机后突然进行活动时、刷大量低于自己一定等级的怪物等时刻验证是否是玩家在操作而不是外挂的操作。
在一些网络游戏的验证规范系统中,使用了输入框的方式进行验证,即服务器向客户端发送用来验证的一串英文字符或数字,客户端对验证字符串进行缩放、扭曲等处理后进行显示,然后由玩家输入相同的字符串来进行验证。
当前网络游戏的验证方式存在操作繁琐,且字符本身存在大量相似字符,造成识别率差的问题。
技术实现要素:
本发明实施例提供一种数据验证的方法及装置,解决当前网络游戏的验证方式存在操作繁琐,且字符本身存在大量相似字符,造成识别率差的问题。
第一方面,本发明实施例提供了一种数据验证的方法,该方法包括:
从验证元素列表的索引中随机获取一串索引,按照获取顺序为所述一串索引中的每个索引分配对应的位置信息;
将所述一串索引中的任意两个索引的索引值修改为相同的索引值;
按照所述获取顺序将所述修改后的一串索引对应的验证元素渲染成验证图片,并将所述两个具有相同的索引值的索引对应的位置信息保存为所述验证图片的验证答案;
接收客户端发送的针对所述验证图片的待验证答案,其中,所述待验证答案为客户端通过所述验证图片上的点击坐标获取到的验证元素的索引的位置信息;
判断所述待验证答案与验证答案是否一致,并在判断出一致时验证通过。
进一步地,在所述接收客户端发送的针对所述验证图片的待验证答案之前,所述方法还包括:
为所述验证答案分配一个唯一的ID;
将所述验证图片和所述ID发送至客户端进行验证;
相应地,所述接收客户端发送的针对所述验证图片的待验证答案包括:
接收客户端发送的针对所述验证图片的待验证答案和所述ID。
进一步地,在所述为所述验证答案分配一个唯一的ID之后,所述方法还包括:将所述ID和所述验证答案保存为一个键值对,并存储于map容器中;
在所述判断所述待验证答案与验证答案是否一致之前,所述方法还包括:根据所述客户端发送的ID查找所述map容器的键值对中与所述ID对应的验证答案。
进一步地,在所述验证通过之后,所述方法还包括:删除所述键值对。
进一步地,所述方法还包括:
当判断出所述待验证答案与验证答案不一致时,则验证不通过;
当验证不通过时,并且接收的客户端的信息为刷新信号,则重新生成验证答案,并将所述重新生成的验证答案覆盖所述键值对中原始的验证答案;
当验证不通过时,并且接收的客户端的信息为取消信号,则删除所述键值对。
第二方面,本发明实施例还提供了一种数据验证的装置,该装置包括:
索引获取模块,用于从验证元素列表的索引中随机获取一串索引,按照获取顺序为所述一串索引中的每个索引分配对应的位置信息;
索引值修改模块,用于将所述一串索引中的任意两个索引的索引值修改为相同的索引值;
验证图片渲染模块,用于按照所述获取顺序将所述修改后的一串索引对应的验证元素渲染成验证图片,并将所述两个具有相同的索引值的索引对应的位置信息保存为所述验证图片的验证答案;
待验证答案接收模块,用于接收客户端发送的针对所述验证图片的待验证答案,其中,所述待验证答案为客户端通过所述验证图片上的点击坐标获取到的验证元素的索引的位置信息;
判断模块,用于判断所述待验证答案与验证答案是否一致,并在判断出一致时验证通过。
进一步地,该装置还包括:
ID分配模块,用于在所述接收客户端发送的针对所述验证图片的待验证答案之前,为所述验证答案分配一个唯一的ID;
验证图片和ID发送模块,用于将所述验证图片和所述ID发送至客户端进行验证;
相应地,所述待验证答案接收模块具体用于:
接收客户端发送的针对所述验证图片的待验证答案和所述ID。
进一步地,该装置还包括:
键值对保存模块,用于在所述为所述验证答案分配一个唯一的ID之后,将所述ID和所述验证答案保存为一个键值对,并存储于map容器中;
验证答案查找模块,用于在所述判断所述待验证答案与验证答案是否一致之前,根据所述客户端发送的ID查找所述map容器的键值对中与所述ID对应的验证答案。
进一步地,该装置还包括:
键值对删除模块,用于在所述验证通过之后,删除所述键值对。
进一步地,该装置还包括:
验证不通过模块,用于当判断出所述待验证答案与验证答案不一致时,则验证不通过;
刷新验证模块,用于当验证不通过时,并且接收的客户端的信息为刷新信号,则重新生成验证答案,并将所述重新生成的验证答案覆盖所述键值对中原始的验证答案;
取消验证模块,用于当验证不通过时,并且接收的客户端的信息为取消信号,则删除所述键值对。
本发明实施例通过从验证元素列表的索引中随机获取一串索引,按照获取顺序为每个索引分配对应的位置信息,并将任意两个索引的索引值修改为相同的索引值,按照索引的位置信息将验证元素顺序渲染为验证图片,保存索引值相同的两个验证元素的索引的位置信息为验证答案,验证客户端通过点击坐标获取到的待验证答案与验证答案是否一致,若一致,则验证通过,实现了通过用户点选的方式进行验证,操作简单,利用验证元素索引的位置信息进行验证提高了验证精度,保证了验证效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种数据验证的方法的流程示意图;
图2是本发明实施例二提供的一种数据验证的方法的流程示意图;
图3是本发明实施例三提供的一种数据验证的方法的流程示意图;
图4是本发明实施例四提供的一种数据验证的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1是本发明实施例一提供的一种数据验证的方法的流程图。本实施例的技术方案可以适用于进行验证的情况。该方法可以由本发明实施例提供的一种数据验证的装置来执行,该装置可以采用软件和/或硬件的方式实现,并配置在验证码服务器中应用。该方法具体包括如下操作:
S110、从验证元素列表的索引中随机获取一串索引,按照获取顺序为所述一串索引中的每个索引分配对应的位置信息。
验证元素可以由验证码服务器生成,用于在客户端直观显示给用户。验证元素的表现形式可以是汉字,也可以是字母,还可以是图片,优选为汉字,汉字的区分性高,能够方便用户选择正确的验证答案,提高验证效率,而且不易被黑客盗取,安全性高。每个验证元素唯一对应一个索引。随机从验证元素列表的索引中获取一串索引,该一串索引中索引的个数由需要的验证元素的个数决定。示例性地,当需要的验证元素个数为8个时,该一串索引中索引的个数为8。按照获取顺序为这8个索引分配对应的位置信息,示例性地,位置信息依次为1~8。
S120、将所述一串索引中的任意两个索引的索引值修改为相同的索引值。
将一串索引中的任意两个索引的索引值修改为相同,以此实现该一串索引中的任意两个具有相同索引值的索引对应相同的验证元素,将其显示在客户端以供用户选出相同的验证元素,完成验证操作。
S130、按照所述获取顺序将所述修改后的一串索引对应的验证元素渲染成验证图片,并将所述两个具有相同的索引值的索引对应的位置信息保存为所述验证图片的验证答案。
验证元素按照对应索引的获取顺序即索引的位置信息,顺序渲染为验证图片。示例性地,当验证元素有8个时,索引的位置信息为1~8,则验证元素按照1~8的顺序渲染为验证图片,其中,验证元素的排列可以是1行8列,也可以是2行4列,还可以是4行2列,具体排列形式在此不作限制。两个具有相同的索引值的索引对应的位置信息例如可以是3和6,则将3和6保存为验证图片的验证答案。
S140、接收客户端发送的针对所述验证图片的待验证答案,其中,所述待验证答案为客户端通过所述验证图片上的点击坐标获取到的验证元素的索引的位置信息。
用户在客户端的显示界面上通过点击鼠标或者手动点击触摸屏的方式,点选验证元素。客户端获取到用户点选验证元素的坐标,结合验证元素的排列方式,得到用户点选的验证元素的位置信息,即待验证答案。客户端将该待验证答案发送给验证码服务器,以供验证码服务器接收并进行判断待验证答案的正确性。
用户在验证图片上进行点击时,会在界面上显示一个方框提示选中的验证元素,这个方块的位置是根据用户点选验证元素的坐标和每个验证元素的大小计算出来的。客户端中还可以设置一个变量用来控制方块的数量,使用户无论怎么点击都只有最多两个方块。用户选择两个验证元素之后,点击确认按钮,客户端就会把这两个验证元素对应的位置信息即验证答案发送回验证码服务器进行验证,也可以点击刷新或取消按钮来刷新验证码或取消验证。
S150、判断所述待验证答案与验证答案是否一致,并在判断出一致时验证通过。
将待验证答案与验证答案比较,当二者完全一致时,验证通过。当待验证答案只有部分与验证答案一致或者全部与验证答案不一致时,验证不通过。
本发明实施例的技术方案通过从验证元素列表的索引中随机获取一串索引,按照获取顺序为每个索引分配对应的位置信息,并将任意两个索引的索引值修改为相同的索引值,按照索引的位置信息将验证元素顺序渲染为验证图片,保存索引值相同的两个验证元素的索引的位置信息为验证答案,验证客户端通过点击坐标获取到的待验证答案与验证答案是否一致,若一致,则验证通过。本发明实施例解决了当前网络游戏的验证方式存在操作繁琐,且字符本身存在大量相似字符,造成识别率差的问题,实现了通过用户点选的方式进行验证,操作简单,利用验证元素索引的位置信息进行验证提高了验证精度,保证了验证效率。
实施例二
图2是本发明实施例二提供的一种数据验证的方法的流程图。本发明实施例在上述实施例的基础上,进一步优化了接收客户端发送的针对所述验证图片的待验证答案之前的操作。
相应地,本实施例的方法包括:
S210、从验证元素列表的索引中随机获取一串索引,按照获取顺序为所述一串索引中的每个索引分配对应的位置信息。
S220、将所述一串索引中的任意两个索引的索引值修改为相同的索引值。
S230、按照所述获取顺序将所述修改后的一串索引对应的验证元素渲染成验证图片,并将所述两个具有相同的索引值的索引对应的位置信息保存为所述验证图片的验证答案。
S240、为所述验证答案分配一个唯一的ID。
ID和验证答案一一对应,可以实现通过ID找到验证答案,以便于有多个验证程序在执行时,快速找到对应的验证答案,保证验证精度和效率。
S250、将所述验证图片和所述ID发送至客户端进行验证。
将ID发送给客户端,以便于客户端返回待验证答案时,将ID与待验证答案一起返回验证码服务器,便于验证码服务器根据客户端返回的ID找到对应的验证答案。
S260、接收客户端发送的针对所述验证图片的待验证答案和所述ID,其中,所述待验证答案为客户端通过所述验证图片上的点击坐标获取到的验证元素的索引的位置信息。
S270、判断所述待验证答案与验证答案是否一致,并在判断出一致时验证通过。
本发明实施例通过为验证答案分配一个唯一的ID,并将ID和验证图片一起发送给客户端,接收客户端返回的待验证答案和ID,当待验证答案与验证答案一致时验证通过,实现了利用ID快速找到待验证答案对应的验证答案,提高了验证精度和效率。
在本实施例的另一个优选实施方式中,在所述为所述验证答案分配一个唯一的ID之后,所述数据验证的方法还包括:将所述ID和所述验证答案保存为一个键值对,并存储于map容器中。
相应地,在所述判断所述待验证答案与验证答案是否一致之前,所述方法还包括:根据所述客户端发送的ID查找所述map容器的键值对中与所述ID对应的验证答案。
相应地,在所述验证通过之后,所述方法还包括:删除所述键值对。
将ID和验证答案保存为一个键值对,方便通过ID快速查找验证答案;将键值对存储在map容器中,简化操作;在验证通过之后,删除键值对可以释放验证空间,避免数据溢出。
实施例三
图3是本发明实施例三提供的一种数据验证的方法的流程图。本发明实施例在上述实施例的基础上,进一步增加了当判断出所述待验证答案与验证答案不一致时的操作。
相应地,本实施例的方法包括:
S310、从验证元素列表的索引中随机获取一串索引,按照获取顺序为所述一串索引中的每个索引分配对应的位置信息。
S320、将所述一串索引中的任意两个索引的索引值修改为相同的索引值。
S330、按照所述获取顺序将所述修改后的一串索引对应的验证元素渲染成验证图片,并将所述两个具有相同的索引值的索引对应的位置信息保存为所述验证图片的验证答案。
S340、接收客户端发送的针对所述验证图片的待验证答案,其中,所述待验证答案为客户端通过所述验证图片上的点击坐标获取到的验证元素的索引的位置信息。
S350、判断所述待验证答案与验证答案是否一致,并在判断出一致时验证通过。
S360、当判断出所述待验证答案与验证答案不一致时,则验证不通过。
S370、当验证不通过时,并且接收的客户端的信息为刷新信号,则重新生成验证答案,并将所述重新生成的验证答案覆盖所述键值对中原始的验证答案。
验证码服务器接收到来自客户端的刷新验证码请求,则根据ID在map容器中查找对应的验证答案,然后再随机生成一个验证答案覆盖查找到的验证答案,并且按照新随机到的索引列表,选取对应的验证元素重新渲染验证图片发送到客户端。由此可以实现,在不改变ID情况下,改变验证答案,简化操作流程,提高验证效率。
S380、当验证不通过时,并且接收的客户端的信息为取消信号,则删除所述键值对。
验证码服务器接收到来自客户端的取消验证码的请求,则把ID和对应的验证答案全部从map容器中删除,即将ID和验证答案组成的键值对删除。当客户端取消验证时,删除当前的键值对可以做到减少验证程序占用的空间。
本发明实施例通过增加在验证不通过时,当接收的客户端的信息为刷新信号时,重新生成验证答案,并将所述重新生成的验证答案覆盖键值对中原始的验证答案,当接收的客户端的信息为取消信号,则删除键值对,保证了用户在验证不通过时,仍然可以通过刷新进行验证或者自主取消验证,提高了用户体验。
实施例四
图4是本发明实施例四提供的一种数据验证的装置的结构框图。该装置用于执行上述任意实施例所提供的一种数据验证的方法。该装置包括:
索引获取模块410,用于从验证元素列表的索引中随机获取一串索引,按照获取顺序为所述一串索引中的每个索引分配对应的位置信息;
索引值修改模块420,用于将所述一串索引中的任意两个索引的索引值修改为相同的索引值;
验证图片渲染模块430,用于按照所述获取顺序将所述修改后的一串索引对应的验证元素渲染成验证图片,并将所述两个具有相同的索引值的索引对应的位置信息保存为所述验证图片的验证答案;
待验证答案接收模块440,用于接收客户端发送的针对所述验证图片的待验证答案,其中,所述待验证答案为客户端通过所述验证图片上的点击坐标获取到的验证元素的索引的位置信息;
判断模块450,用于判断所述待验证答案与验证答案是否一致,并在判断出一致时验证通过。
进一步地,该装置还包括:
ID分配模块,用于在所述接收客户端发送的针对所述验证图片的待验证答案之前,为所述验证答案分配一个唯一的ID;
验证图片和ID发送模块,用于将所述验证图片和所述ID发送至客户端进行验证;
相应地,所述待验证答案接收模块440具体用于:
接收客户端发送的针对所述验证图片的待验证答案和所述ID。
进一步地,该装置还包括:
键值对保存模块,用于在所述为所述验证答案分配一个唯一的ID之后,将所述ID和所述验证答案保存为一个键值对,并存储于map容器中;
验证答案查找模块,用于在所述判断所述待验证答案与验证答案是否一致之前,根据所述客户端发送的ID查找所述map容器的键值对中与所述ID对应的验证答案。
进一步地,该装置还包括:
键值对删除模块,用于在所述验证通过之后,删除所述键值对。
进一步地,该装置还包括:
验证不通过模块,用于当判断出所述待验证答案与验证答案不一致时,则验证不通过;
刷新验证模块,用于当验证不通过时,并且接收的客户端的信息为刷新信号,则重新生成验证答案,并将所述重新生成的验证答案覆盖所述键值对中原始的验证答案;
取消验证模块,用于当验证不通过时,并且接收的客户端的信息为取消信号,则删除所述键值对。
本发明实施例四提供的数据验证的装置,实现了通过用户点选的方式进行验证,操作简单,利用验证元素索引的位置信息进行验证提高了验证精度,保证了验证效率。
本发明实施例所提供的数据验证的装置可执行本发明任意实施例所提供的数据验证的方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。