发布信息

验证码的验证方法、装置、电子设备以及存储介质与流程

作者:admin      2022-08-31 13:08:43     969



计算;推算;计数设备的制造及其应用技术1.本技术涉及计算机及互联网技术领域,尤其涉及一种验证码的验证方法、装置、电子设备以及存储介质。背景技术:2.验证码的使用在人们的日常生活中极为常见,其使用频率日益加大、使用场景日益增多,用户对于快速且正确地通过验证,有了更高的要求。3.但现有验证码的验证方法具体存在以下不足:4.1、服务器随机生成由混淆的数字或字母构成的彩色图片验证码,导致用户的肉眼难以辨认数字或字母,并且色盲、色弱用户难以对其进行颜色判断;5.2、生成图片和传输图片会消耗服务器资源;短信验证码或者硬件口令验证码的成本高,导致增加运营商的运营成本;6.3、图片验证码难度过低,导致验证码容易被机器自动化识别,造成非人工通过验证。7.因此,现有的验证码的验证方法要么操作难度高,要么运营成本高,要么安全性低。技术实现要素:8.本技术的主要目的在于提供一种验证码的验证方法、装置、电子设备以及存储介质,旨在降低验证码的操作难度、运营成本,提高验证的安全性。9.为实现上述目的,本技术实施例提供一种验证码的验证方法,所述方法应用于服务器,所述验证码的验证方法包括:10.接收客户端发送的验证请求;11.解析所述验证请求,得到对应的数组信息;12.根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;13.将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;14.接收所述客户端发送的操作指令,根据所述操作指令进行验证。15.可选地,所述解析所述验证请求,得到对应的数组信息的步骤包括:16.解析所述验证请求,索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息;17.所述根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件的步骤包括:18.根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c;19.将所述数组c中的数字元素进行拆分,生成若干对关键数组;20.对所述若干对关键数组进行渲染,生成对应的图形验证码组件。21.可选地,所述根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c的步骤包括:22.根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x;23.对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同;24.依次获取所述数组t中各数字元素的第一数值和该数字元素在所述数组t中对应的第一排序位置;25.将所述第一数值作为第二排序位置,获取所述数组x中位于所述第二排序位置的数字元素;26.将所述数组x中位于所述第二排序位置的数字元素,放置于数组c的第一排序位置,依次类推,直到数组x中的每个数字元素都放置完毕,得到完整的数组c。27.可选地,所述对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同的步骤之后还包括:28.将所述标识与所述数组t作为键值对,并保存在存储器的缓存中;29.将所述键值对作为所述用户的登录验证信息,以供对所述用户进行验证;30.所述接收所述客户端发送的操作指令,根据所述操作指令进行验证的步骤包括:31.接收所述客户端发送的操作指令;32.将所述操作指令携带的数据信息,与所述登录验证信息进行对比,以供对所述用户进行验证;33.如果所述数据信息有非法标识,则将验证失败的信息返回给所述客户端;如果所述数据信息无非法标识,则确定所述用户验证通过。34.可选地,所述根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x的步骤之后还包括:35.判断所述数组x中各数字元素的数值是否大于预设数值;36.如果所述数值大于所述预设数值,则将所述数值除以所述预设数值并取余数;如果所述数值未大于所述预设数值,则保留所述数值。37.本技术实施例还提供一种验证码的验证方法,所述方法应用于客户端,所述验证码的验证方法包括:38.向服务器发送验证请求,以供所述服务器接收所述验证请求,解析所述验证请求,得到对应的数组信息,根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;39.接收所述服务器发送的图形验证码组件,显示验证界面供用户操作;40.接收所述用户的操作指令;41.向所述服务器发送所述操作指令,以供所述服务器根据所述操作指令进行验证。42.可选地,所述接收所述用户的操作指令的步骤包括:43.接收所述用户的长按指令;44.根据所述长按指令,以预设的填充速率对所述图形验证码组件中的图形进行填充颜色,获得一个填满颜色的图形;45.接收所述用户的拖拽指令;46.根据所述拖拽指令,将所述填满颜色的图形从当前所属区域移动到当前所属区域之外的另一区域;47.接收所述用户的提交指令。48.本技术实施例还提出一种验证码的验证装置,所述验证装置包括:49.接收模块:用于接收客户端发送的验证请求;50.解析模块,用于解析所述验证请求,得到对应的数组信息;51.生成模块,用于根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;52.发送模块,用于将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;53.指令接收模块,用于接收所述客户端发送的操作指令,根据所述操作指令进行验证。54.本技术实施例还提出一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的验证码的验证程序,所述验证码的验证程序被所述处理器执行时实现如上所述应用于服务器的验证码的验证方法或实现如上所述应用于客户端的验证码的验证方法的步骤。55.本技术实施例还提出一种可读存储介质,所述可读存储介质上存储有验证码的验证程序,所述验证码的验证程序被处理器执行时实现如上所述应用于服务器的验证码的验证方法或实现如上所述应用于客户端的验证码的验证方法的步骤。56.本技术实施例提出的验证码的验证方法、装置、电子设备以及存储介质,通过接收客户端发送的验证请求;解析所述验证请求,得到对应的数组信息;根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;接收所述客户端发送的操作指令,根据所述操作指令进行验证。通过优化后的验证码的验证方法,可以解决现有技术的操作复杂,验证通过率低和容易被机器自动化识别的问题。基于本技术方案,从服务器和客户端交互中用户进行验证码的验证的基本逻辑出发,提出利用数组元素按预设的数字排序、对用户进行身份验证的流程,在该验证流程中验证了本技术提出的验证码的验证方法的有效性和实用性,经过本技术方法的验证操作的验证难度、验证通过率、验证安全性得到了明显的改善。附图说明57.图1为本技术验证码的验证装置所属电子设备的功能模块示意图;58.图2为本技术验证码的验证方法第一示例性实施例的流程示意图;59.图3为本技术验证码的验证方法第二示例性实施例的细化流程示意图;60.图4为本技术验证码的验证方法第二示例性实施例涉及的数组配对示意图;61.图5为本技术验证码的验证方法第三示例性实施例的细化流程示意图;62.图6为本技术验证码的验证方法第四示例性实施例的流程示意图;63.图7为本技术验证码的验证方法第五示例性实施例的流程示意图;64.图8为本技术验证码的验证方法第六示例性实施例的流程示意图;65.图9为本技术验证码的验证方法第七示例性实施例的流程示意图;66.图10为本技术验证码的验证方法第七示例性实施例涉及的验证界面示意图;67.图11为本技术验证码的验证方法第八示例性实施例的细化流程示意图;68.图12为本技术验证码的验证方法第八示例性实施例涉及的长按指令示意图。69.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式70.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。71.本技术实施例的主要解决方案是:服务器接收客户端发送的验证请求;解析所述验证请求,得到对应的数组信息;根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;接收所述客户端发送的操作指令,根据所述操作指令进行验证。通过优化后的验证码的验证方法,可以解决现有的验证方法存在的操作复杂、验证通过率低和容易被机器自动化识别的问题。基于本技术方案,从互联网服务器和客户端交互中用户进行验证码的验证的基本逻辑出发,提出利用数组元素按预设组合排序、对用户进行身份验证的流程,并在该验证流程中验证了本技术提出的验证码的验证方法的有效性和实用性,最后经过本技术方法的验证操作的验证难度、验证通过率得到了明显的改善。72.本技术实施例涉及的技术术语:73.超文本标记语言,html,hyper text markup language;74.html是一种标记语言,它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的internet资源连接为一个逻辑整体。html文本是由html命令组成的描述性文本,html命令可以说明文字,图形、动画、声音、表格、链接等。75.canvas,也叫canvas draw,是业内着名acd公司推出一款功能强大的矢量图形绘制软件。程序无缝集成了用于绘画、图像编辑和web设计的工具;可以以多种格式(包括动画和web就绪文件)导出绘画作品,它在剪辑图库上捆绑了用于位图编辑、展示、web图形和矢量图绘制的工具。canvas draw内置大量模板和素材,包括一套全面的矢量对象和高级光栅图像编辑工具,可将单一文档中的适应性文字,图像,对象和效果元素相结合。76.具体地,参照图1,图1为本技术验证码的验证装置所属电子设备的功能模块示意图。该验证码的验证装置可以为独立于电子设备的、能够进行图片处理、网络模型训练的装置,其可以通过硬件或软件的形式承载于电子设备上。该电子设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定电子设备或服务器等。77.在本实施例中,该验证码的验证装置所属电子设备至少包括输出模块110、处理器120、存储器130以及通信模块140。78.存储器130中存储有操作系统以及验证码的验证程序,验证码的验证装置可以将接收的客户端发送的验证请求,解析所述验证请求,得到的对应的数组信息;根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;接收的所述客户端发送的操作指令,根据所述操作指令进行的验证等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括wifi模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。79.其中,存储器130中的验证码的验证程序,其特征在于,所述程序应用于服务器,所述验证码的验证程序被处理器执行时实现以下步骤:80.接收客户端发送的验证请求;81.解析所述验证请求,得到对应的数组信息;82.根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;83.将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;84.接收所述客户端发送的操作指令,根据所述操作指令进行验证。85.进一步地,存储器130中的验证码的验证程序被处理器执行时还实现以下步骤:86.解析所述验证请求,索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息;87.所述根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件的步骤包括:88.根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c;89.将所述数组c中的数字元素进行拆分,生成若干对关键数组;90.对所述若干对关键数组进行渲染,生成对应的图形验证码组件。91.进一步地,存储器130中的验证码的验证程序被处理器执行时还实现以下步骤:92.根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x;93.对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同;94.依次获取所述数组t中各数字元素的第一数值和该数字元素在所述数组t中对应的第一排序位置;95.将所述第一数值作为第二排序位置,获取所述数组x中位于所述第二排序位置的数字元素;96.将所述数组x中位于所述第二排序位置的数字元素,放置于数组c的第一排序位置,依次类推,直到数组x中的每个数字元素都放置完毕,得到完整的数组c。97.进一步地,存储器130中的验证码的验证程序被处理器执行时还实现以下步骤:98.将所述标识与所述数组t作为键值对,并保存在存储器的缓存中;99.将所述键值对作为所述用户的登录验证信息,以供对所述用户进行验证。100.进一步地,存储器130中的验证码的验证程序被处理器执行时还实现以下步骤:101.接收所述客户端发送的操作指令;102.将所述操作指令携带的数据信息,与所述登录验证信息进行对比,以供对所述用户进行验证;103.如果所述数据信息有非法标识,则将验证失败的信息返回给所述客户端;如果所述数据信息无非法标识,则确定所述用户验证通过。104.进一步地,存储器130中的验证码的验证程序被处理器执行时还实现以下步骤:105.判断所述数组x中各数字元素的数值是否大于预设数值;106.如果所述数值大于所述预设数值,则将所述数值除以所述预设数值并取余数;如果所述数值未大于所述预设数值,则保留所述数值。107.其中,存储器130中的验证码的验证程序,其特征在于,所述程序应用于客户端,所述验证码的验证程序被处理器执行时实现以下步骤:108.向服务器发送验证请求,以供所述服务器接收所述验证请求,解析所述验证请求,得到对应的数组信息,根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;109.接收所述服务器发送的图形验证码组件,显示验证界面供用户操作;110.接收所述用户的操作指令;111.向所述服务器发送所述操作指令,以供所述服务器根据所述操作指令进行验证。112.进一步地,存储器130中的验证码的验证程序被处理器执行时还实现以下步骤:113.接收所述用户的长按指令;114.根据所述长按指令,以预设的填充速率对所述图形验证码组件中的图形进行填充颜色,获得一个填满颜色的图形;115.接收所述用户的拖拽指令;116.根据所述拖拽指令,将所述填满颜色的图形从当前所属区域移动到当前所属区域之外的另一区域;117.接收所述用户的提交指令。118.本实施例通过上述方案,具体通过接收客户端发送的验证请求;解析所述验证请求,得到对应的数组信息;根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;接收所述客户端发送的操作指令,根据所述操作指令进行验证。通过优化后的验证码的验证方法,可以解决现有的验证方法存在的操作难度高、运营成本高、安全性低的问题。基于本技术方案,从互联网服务器和客户端交互中用户进行验证码的验证的基本逻辑出发,提出利用数组元素按预设组合排序、对用户进行身份验证的流程,并在该验证流程中验证了本技术提出的验证码的验证方法的有效性和实用性,最后经过本技术方法的验证操作在操作难度、运营成本和安全性方面都得到了明显的改善。119.基于上述电子设备架构但不限于上述架构,提出本技术方法实施例。120.本实施例方法的执行主体可以是一种验证码的验证装置,也可以是一种验证码的验证电子设备或服务器,本实施例以验证码的验证装置进行举例,该验证码的验证置可以集成在具有数据处理功能的智能手机、平板电脑等电子设备上。121.参照图2,图2为本技术验证码的验证方法第一示例性实施例的流程示意图。122.如图2所示,所述应用于服务器的验证码的验证方法包括以下步骤:123.步骤s210,接收客户端发送的验证请求;124.具体地,在用户访问网络资源,如登录、忘记密码或身份确认时,需要输入验证码,验证通过后才能继续下一步操作,如:用户在登录页面输入登录名,并触发登录指令,客户端接收用户的登录指令和登录名,向服务器发送一个验证请求,其中,验证请求包括:用户名、用户密码、ip地址、用户的访问时间等。125.服务器接收客户端发送的验证请求,根据验证请求获取对应的数组信息,以供服务器通过预设的数字排序规则对数组信息进行数字排序,生成对应的图形验证码组件。126.步骤s211,解析所述验证请求,得到对应的数组信息;127.具体地,作为一种实现方案,服务器解析所述验证请求,根据验证请求中的用户名等信息索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息。由此可以通过标识实现基于数字的图形验证。128.作为另一种实现方案,服务器解析所述验证请求,获得验证请求中的用户名、用户密码、ip地址、用户的访问时间等信息。由此可以通过用户名、用户密码、ip地址、访问时间等实现基于数字的图形验证。129.因此,本技术方法不仅仅可以通过标识实现基于数字的图形验证,还可以通过用户名、用户密码、ip地址、访问时间等实现基于数字的图形验证,本实施例以通过标识实现基于数字的图形验证进行举例。130.步骤s220,根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;131.具体地,验证码的验证方法的核心是生成对应的图形验证码组件,以供用户对图形验证码组件中的验证码进行验证操作。服务器根据接收的数组信息及预设的数字排序规则,生成对应的图形验证码组件。其中,生成对应的图形验证码组件的方法具体可以包括以下步骤:132.首先,根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c;133.然后,将数组c中的数字元素进行拆分并配对,生成若干对关键数组。134.最后,通过使用html模板以及canvas等技术,对若干对关键数组进行渲染,在服务器生成对应的图形验证码组件。相比于图片传输,基于html模板的图形验证码组件传输的数据量更小,解决了服务器的带宽压力的问题。135.步骤s230,将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作。136.具体地,服务器将图形验证码组件返给客户端,客户端对图形验证码组件渲染成验证码的验证界面,以供用户按照显示界面的提示语进行验证码的验证操作。图形验证码可以防止恶意破解密码、刷票,有效防止黑客对一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。137.步骤s240,接收所述客户端发送的操作指令,根据所述操作指令进行验证。138.具体地,服务器接收客户端发送的操作指令,根据操作指令所携带的数据信息,对用户的标识进行验证,如果有非法标识,则将验证失败的信息返回给客户端;如果无非法标识,则确定用户验证通过,从而保证用户的个人信息安全。139.本实施例通过上述方案,具体通过接收客户端发送的验证请求;解析所述验证请求,得到对应的数组信息;根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;接收所述客户端发送的操作指令,根据所述操作指令进行验证。本实施例从优化验证码的验证方法的实际问题出发,基于预设的数字排序规则,得到图形验证码组件的方式,降低了验证码的验证难度和运营成本,提高验证的安全性。140.进一步地,参照图3,图3为本技术验证码的验证方法第二示例性实施例的细化流程示意图,基于上述图2所示的实施例,对步骤s211进行细化,所述解析所述验证请求,得到对应的数组信息的步骤包括:141.步骤s900:解析所述验证请求,索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息;142.具体地,服务器解析验证请求,根据验证请求中的用户名等信息索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息,并判断标识是否合法存在,如果服务器未索引到标识,则将所述标识标记为非法信息,并将所述非法信息返回至客户端;如果索引到标识,则执行步骤s901:根据预设的数字截取规则,对所述标识中的数字元素进行位置重组,生成数组c。通过服务器使用数据库语句索引所述标识,查询所述用户是否合法存在,可以提高验证过程的效率。143.所述步骤s220,根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件的步骤包括:144.步骤s901:根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c;145.具体地,其中,生成数组c的方法具体可以包括以下步骤:146.首先,根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x;147.然后,对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同;148.然后,依次获取所述数组t中各数字元素的第一数值和该数字元素在所述数组t中对应的第一排序位置;149.然后,将所述第一数值作为第二排序位置,获取所述数组x中位于所述第二排序位置的数字元素;150.最后,将所述数组x中位于所述第二排序位置的数字元素,放置于数组c的第一排序位置,依次类推,直到数组x中的每个数字元素都放置完毕,得到完整的数组c。151.步骤s902:将所述数组c中的数字元素进行拆分,生成若干对关键数组;152.具体地,将所述数组c中的数字元素进行拆分,生成若干对关键数组,其中,关键数组的数量可以按实际需求进行设置。例如,数组c=[3,4,5,2,1,3],服务器将所述数组c中的数字元素进行拆分配对,生成三对关键数组[3,3][4,1][5,2],假定数字1代表三角形,数字2代表正方形,数字3代表长方形,数字4代表梯形,数字5代表圆柱形,则[3,3]对应三个长方形,[4,1]对应四个梯形,[5,2]对应五个圆柱形。例如,[1,1]代表一个三角形,[1,2]代表一个正方形。[0153]步骤s903:对所述若干对关键数组进行渲染,生成对应的图形验证码组件。[0154]具体地,使用html模板以及canvas技术将三对关键数组[3,3][4,1][5,2]进行渲染,生成对应的图形验证码组件,其中,图形验证码组件中的图形通过预设的canvas.onmousemove等回调函数实现了拖拽指令。相比服务器传输验证码图片,通过服务器传输基于html模板的图形验证码组件,其优点在于传输的数据量小、服务器带宽压力小,可以解决现有验证码技术中短信验证码、硬件口令验证码的运营成本和门槛较高的问题。例如:[0155]《div id="div"style="width:100px;height:20px;"》[0156]《/div》[0157]《canvas id="canvas"width="500"height="500"[0158]style="margin-left:20px;margin-top:20px;"[0159]onmousemove="cnvsgetcoordinates(event);"》[0160]《/canvas》[0161]《script type="text/javascript"src="main.js"》《/script》[0162]《/div》[0163]进一步地,参照图4,图4为本技术实施例涉及的数组配对示意图,图中示出数组c=[3,4,5,2,1,3],服务器将所述数组c中的数字元素进行拆分配对,生成三对关键数组[3,3][4,1][5,2],假定数字1代表三角形,数字2代表正方形,数字3代表长方形,数字4代表梯形,数字5代表圆柱形,则[3,3]对应三个长方形,[4,1]对应四个梯形,[5,2]对应五个圆柱形,其中,关键数组的数量包括三组但不限于三组。[0164]本实施例通过上述方案,具体通过解析所述验证请求,索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息;根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c;将所述数组c中的数字元素进行拆分,生成若干对关键数组;对所述若干对关键数组进行渲染,生成对应的图形验证码组件。本实施例从优化验证码的验证方法的实际问题出发,通过预设的数组排序规则,可以解决现有的验证方法存在的操作复杂、验证通过率低和容易被机器自动化识别的问题;通过使用html模板和canvas技术,可以解决现有验证码技术中短信验证码、硬件口令验证码的运营成本和门槛较高的问题。[0165]进一步地,参照图5,图5为本技术验证码的验证方法第三示例性实施例的细化流程示意图,基于上述图3所示的实施例,对步骤s901进行细化,所述根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c的步骤包括:[0166]步骤s2202:根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x;[0167]具体地,基于预设的数字截取规则,可以对标识后若干位数进行整体截取,或者随机截取,或者不截取,其中,截取的位数按实际情况进行选择。例如,可以对标识为111584623的后6位进行截取,生成数组x=[5,3,4,1,2,3]。[0168]步骤s2203:对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同;[0169]具体地,服务器随机生成一组标准恒定数组,其中,标准恒定数组中的数字为从数字1开始的自然数,且标准恒定数组所包含的数字元素的数量与数组x所包含的数字元素的数量相同;对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,得到数组t所包含的数字元素的数量与数组x所包含的数字元素的数量相同。例如,上述数组x所包含的数字元素的数量为六位,则服务器对标准恒定数组[1,2,3,4,5,6]进行随机排序,获得数组t,假定随机排序之后的数组t=[2,3,1,5,4,6]。[0170]步骤s2204:依次获取所述数组t中各数字元素的第一数值和该数字元素在所述数组t中对应的第一排序位置;[0171]具体地,服务器获取数组t的第一位的数组元素的第一数值为2和该数字元素在数组t中对应的第一排序位置为1。[0172]步骤s2205:将所述第一数值作为第二排序位置,获取所述数组x中位于所述第二排序位置的数字元素;[0173]具体地,将第一数值为2作为第二排序位置,得到第二排序位置为2,获取数组x中位于第二排序位置2的数字元素为3。[0174]步骤s2206:将所述数组x中位于所述第二排序位置的数字元素,放置于数组c的第一排序位置,依次类推,直到数组x中的每个数字元素都放置完毕,得到完整的数组c。[0175]具体地,将数组x中位于第二排序位置为2的数组元素放置于数组c的第一排序位置,则数组c的第一个数字元素为3;依此类推,直到数组x中的每个数字元素都放置完毕,得到完整的数组c=[3,4,5,2,1,3]。[0176]本实施例通过上述方案,根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x;对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同;依次获取所述数组t中各数字元素的第一数值和该数字元素在所述数组t中对应的第一排序位置;将所述第一数值作为第二排序位置,获取所述数组x中位于所述第二排序位置的数字元素;将所述数组x中位于所述第二排序位置的数字元素,放置于数组c的第一排序位置,依次类推,直到数组x中的每个数字元素都放置完毕,得到完整的数组c。本实施例从优化验证码的验证方法的实际问题出发,通过预设的数组排序规则,可以解决现有的验证方法存在的操作复杂、验证通过率低和容易被机器自动化识别的问题。[0177]进一步地,参照图6,图6为本技术验证码的验证方法第四实施例的流程示意图,基于上述图5所示的实施例,所述步骤s2203对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同的步骤之后还包括:[0178]步骤s2210:将所述标识与所述数组t作为键值对,并保存在存储器的缓存中;[0179]步骤s2220:将所述键值对作为所述用户的登录验证信息,以供对所述用户进行验证。[0180]所述步骤s240,接收所述客户端发送的操作指令,根据所述操作指令进行验证的步骤包括:[0181]步骤s2240:接收所述客户端发送的操作指令;[0182]步骤s2250:将所述操作指令携带的数据信息,与所述登录验证信息进行对比,以供对所述用户进行验证;[0183]步骤s2260:如果所述数据信息有非法标识,则将验证失败的信息返回给所述客户端;如果所述数据信息无非法标识,则确定所述用户验证通过。[0184]具体地,服务器将标识与数组t作为键值对存储在服务器的存储器的缓存中,并将键值对作为所述用户的登录验证信息,其中,标识作为键值对中的键(key),数组t作为键值对中的值(value);当服务器接收到客户端发送的用户的操作指令时,将操作指令携带的数据信息,与存储在存储器中的登录验证信息进行对比,以供服务器对所述用户进行验证;服务器接收客户端发送的用户的操作指令,将操作指令携带的数据信息,与存储在服务器的缓存器中的登录验证信息进行数据对比,以供服务器对用户的标识进行验证;如果用户错误地输入验证码,则操作指令携带的数据信息带有非法标识,服务器将缓存中的登录验证信息删除,并将验证失败的信息返回给所述客户端,并重新再生成新的键值对;如果用户正确地输入验证码,则表明用户的操作指令携带的数据信息无非法标识,确定所述用户验证通过。[0185]本实施例通过上述方案,具体通过接收客户端发送的验证请求;解析所述验证请求,索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息;根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x;对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同;将所述标识与所述数组t作为键值对,保存在存储器的缓存中;将所述键值对作为所述用户的登录验证信息,以供对所述用户进行验证;依次获取所述数组t中各数字元素的第一数值和该数字元素在所述数组t中对应的第一排序位置;根据所述第一数值得到第二排序位置,获取所述数组x中位于所述第二排序位置的数字元素;将所述数组x中位于所述第二排序位置的数字元素,放置于数组c的第一排序位置,依次类推,直到数组x中的每个数字元素都放置完毕,得到完整的数组c;将所述数组c中的数字元素进行拆分,生成若干对关键数组;对所述若干对关键数组进行渲染,生成对应的图形验证码组件;将所述验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;所述接收所述客户端发送的操作指令,根据所述操作指令进行验证的步骤包括:接收所述客户端发送的操作指令;将所述操作指令携带的数据信息,与所述登录验证信息进行对比,以供对所述用户进行验证;如果所述数据信息有非法标识,则将验证失败的信息返回给所述客户端;如果所述数据信息无非法标识,则确定所述用户验证通过。本实施例从优化验证码的验证方法的实际问题出发,使用键值对作为登录验证信息,与用户的操作指令携带的数据信息作对比,可以解决现有的验证方法存在的容易被机器自动化破解、识别的问题。最后经过本技术方法的验证操作的被机器自动化识别率得到了明显的改善。[0186]进一步地,参照图7,图7为本技术验证码的验证方法第五实施例的流程示意图,基于上述图3所示的实施例,所述步骤s900,解析所述验证请求,索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息的步骤之后还包括:[0187]步骤s400:判断是否索引到所述标识;如果未索引到所述标识,则执行步骤s401;如果索引到所述标识,则执行步骤s901。[0188]步骤s401:将所述标识标记为非法,并将非法标记返回至客户端。[0189]具体地,服务器解析所述验证请求,根据验证请求中的用户名等信息索引出所述用户注册时所生成的唯一的标识,并判断标识是否合法存在,如果服务器未索引到标识,则将所述标识标记为非法,并将非法标记返回至客户端;如果索引到标识,则执行步骤:根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c。通过服务器使用数据库语句索引所述标识,查询所述用户是否合法存在,可以提高验证过程的效率。[0190]本实施例通过上述方案,具体通过解析所述验证请求,索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息;判断是否索引到所述标识;如果未索引到所述标识,将所述标识标记为非法,并将非法标记返回至客户端;如果索引到所述标识,则执行步骤:根据预设的数字排序规则,对所述标识中的数字元素进行位置重组,生成数组c;将所述数组c中的数字元素进行拆分,生成若干对关键数组;对所述若干对关键数组进行渲染,生成对应的图形验证码组件。本实施例从优化验证码的验证方法的实际问题出发,提出使用预设的数组排序规则、结合预设的数字截取规则,可以解决现有的验证方法存在的操作复杂、验证速度慢的问题。最后经过本技术方法的验证操作在验证速度、验证准确率都得到了明显的改善。[0191]进一步地,参照图8,图8为本技术验证码的验证方法第六实施例的流程示意图,基于上述图5所示的实施例,所述步骤s2202,根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x的步骤之后还包括:[0192]步骤s500:判断所述数组x中各数字元素的数值是否大于预设数值;如果所述数值大于所述预设数值,则执行步骤s501;如果所述数值未大于所述预设数值,则执行步骤s502;[0193]步骤s501:将所述数值除以所述预设数值并取余数;[0194]步骤s502:保留所述数值。[0195]具体地,例如:所述数组x=[8,5,4,6,2,3],且预设数值为5,服务器获取所述数组x中的第一位数元素的数值为8,并判断该元素的数值是否大于5,所述数值大于5,则将所述数值除以5取余获得数值为3的数字元素,依此类推,直到所述数组x中的每个数字元素都判断完毕,得到数组x=[3,5,4,1,2,3],从而防止所述标识的数据过大导致繁琐的重复图形出现。[0196]本实施例通过上述方案,具体通过根据预设的数字截取规则,对所述标识的若干位数进行截取,生成数组x;判断所述数组x中各数字元素的数值是否大于预设数值;如果所述数值大于所述预设数值,则将所述数值除以所述预设数值并取余数;如果所述数值未大于所述预设数值,则保留所述数值;对标准恒定数组中的数字元素进行随机排序,生成数组t,其中,所述数组t及数组x所包括的数字元素的数量相同;依次获取所述数组t中各数字元素的第一数值和该数字元素在所述数组t中对应的第一排序位置;将所述第一数值作为第二排序位置,获取所述数组x中位于所述第二排序位置的数字元素;将所述数组x中位于所述第二排序位置的数字元素,放置于数组c的第一排序位置,依次类推,直到数组x中的每个数字元素都放置完毕,得到完整的数组c。本实施例从优化验证码的验证方法的实际问题出发,提出使用预设的数组排序规则、结合预设的数字截取规则,可以解决现有的验证方法存在的操作复杂、验证效率低的问题。最后经过本技术方法的验证操作难度、验证效率都得到了明显的改善。[0197]参照图9,图9为本技术验证码的验证方法第七示例性实施例的流程示意图。所述验证方法应用于客户端,所述验证码的验证方法的步骤包括:[0198]步骤s310:向服务器发送验证请求,以供所述服务器接收所述验证请求,解析所述验证请求,得到对应的数组信息,根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;[0199]具体地,在用户访问网络资源,如登录、忘记密码或身份确认时,需要输入验证码,验证通过后才能继续下一步操作,如:[0200]作为一种实现方案,当用户触发登录指令时,客户端接收用户的登录指令,向服务器发送验证请求,以供服务器接收客户端发送的验证请求,解析所述验证请求,根据验证请求中的用户名等信息索引出所述用户注册时所生成的唯一的标识,所述标识包括若干数字元素组成的数组信息,然后通过预设的数字排序规则对标识进行数字排序,生成对应的图形验证码组件并发送给客户端,客户端接收图形验证码组件。[0201]作为另一种实现方案,当用户触发登录指令时,客户端接收用户的登录指令,向服务器发送验证请求,以供服务器接收客户端发送的验证请求,获得验证请求中的用户名、用户密码、ip地址、用户的访问时间等信息作为数组信息,然后通过预设的数字排序规则对标识进行数字排序,生成对应的图形验证码组件并发送给客户端,客户端接收图形验证码组件。[0202]因此,本技术方法不仅仅通过标识实现基于数字的图形验证,还可以通过用户名、用户密码、ip地址、访问时间等实现基于数字的图形验证,本实施例以通过标识实现进行举例。[0203]步骤s320:接收所述服务器发送的图形验证码组件,显示验证界面供用户操作;[0204]具体地,客户端接收服务器发送的图形验证码组件,客户端对图形验证码组件渲染成验证码的验证界面,以供用户按照显示界面的提示语进行基于所述图形的拖拽操作。[0205]步骤s330:接收所述用户的操作指令;[0206]具体地,客户端显示验证界面,操作指令包括长按指令、拖拽指令和提交指令。其中,客户端接收长按指令、拖拽指令和提交指令的步骤可以包括:[0207]首先,接收用户的长按指令,根据长按指令,以预设的填充速率对图形验证码组件中的图形进行填充颜色,获得一个填满颜色的图形;[0208]然后,接收用户的拖拽指令;[0209]然后,根据拖拽指令,将填满颜色的图形从当前所属区域移动到当前所属区域之外的另一区域;[0210]最后,接收用户的提交指令。[0211]步骤s340:向所述服务器发送所述操作指令,以供所述服务器根据所述操作指令进行验证。[0212]具体地,客户端向服务器发送用户的长按指令、拖拽指令和提交指令,其中,提交指令携带了用户操作验证时的数据信息,服务器接收用户的提交指令,并根据提交指令携带的数据信息与存储在缓存中的用户登录信息进行对比验证,以供服务器对用户进行验证。如果数据信息有非法标识,则将验证失败的信息返回给客户端;如果数据信息无非法标识,则确定用户验证通过,从而保证用户的个人信息安全。[0213]参照图10,图10为本技术实施例涉及的验证界面示意图。图中示出用户名输入框,密码输入框,操作提示语,验证码图形,两个验证码区域和提交按钮。具体步骤可以包括:[0214]用户输入用户名和密码,并根据操作提示语提示的验证码图形,长按验证码图形至填充满;将填满颜色的图形从左边区域拖拽移动到右边区域;拖拽成功后点击提交按钮进行验证。[0215]本实施例通过上述方案,具体通过向服务器发送验证请求,以供所述服务器接收所述验证请求,解析所述验证请求,得到对应的数组信息,根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;接收所述服务器发送的图形验证码组件,显示验证界面供用户操作;接收所述用户的操作指令;向所述服务器发送所述操作指令,以供服务器将操作指令携带的数据信息与存储在缓存中的用户登录信息进行验证。基于本技术方案,从互联网服务器和客户端交互中用户进行验证码的验证的基本逻辑出发,通过数组元素按预设组合排序、图形拖拽并对用户进行身份验证的流程,并在该验证流程中验证了本技术提出的验证码的验证方法的有效性和实用性,最后经过本技术方法的验证操作难度、验证效率和安全性方面都得到了明显的改善。[0216]进一步地,参照图11,图11为本技术验证码的验证方法第八实施例的细化流程示意图,基于上述图9所示的实施例,对步骤s330进行细化,所述接收所述用户的操作指令的步骤包括:[0217]步骤s3301:接收所述用户的长按指令;[0218]步骤s3302:根据所述长按指令,以预设的填充速率对所述图形验证码组件中的图形进行填充颜色,获得一个填满颜色的图形;[0219]步骤s3303:接收所述用户的拖拽指令;[0220]步骤s3304:根据所述拖拽指令,将所述填满颜色的图形从当前所属区域移动到当前所属区域之外的另一区域;[0221]步骤s3305:接收所述用户的提交指令。[0222]具体地,客户端接收用户的长按指令,根据所述长按指令,以预设的填充速率对图形验证码组件中的图形进行填充颜色,获得一个填满颜色的图形,其中,生成预设的填充速率的步骤是:设定图形的高度,设定一个随机速率,随机速率的取值范围为1-5,则填充速率为高度除以随机速率;客户端接收用户的拖拽指令,若用户在长按图形的过程中停止长按操作,则客户端自动取消对图形的填充操作;客户端根据所述拖拽指令,将填满颜色的图形从当前所属区域移动到当前所属区域之外的另一区域;移动成功后,客户端接收用户的提交指令。[0223]参照图12,图12为本技术实施例涉及的长按指令示意图。客户端通过touchstart和touchend事件接收所述用户的长按指令,并设定图形的高度,设定一个随机速率,其中,随机速率的取值范围为1-5,通过用户长按图形,图形基于css3动画技术以高度除以随机速率的速度填充颜色,直至填满,以供所述用户对所述图形进行拖拽操作。[0224]本实施例通过上述方案,具体通过向服务器发送验证请求,以供所述服务器接收所述验证请求,解析所述验证请求,得到对应的数组信息,根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;接收所述服务器发送的图形验证码组件,显示验证界面供用户操作;接收所述用户的长按指令;根据所述长按指令,以预设的填充速率对所述图形验证码组件中的图形进行填充颜色,获得一个填满颜色的图形;接收所述用户的拖拽指令;根据所述拖拽指令,将所述填满颜色的图形从当前所属区域移动到当前所属区域之外的另一区域;接收所述用户的提交指令;向所述服务器发送所述操作指令,以供所述服务器根据所述操作指令进行验证。通过优化后的验证码的验证方法,提出利用数组元素按预设组合排序、图形拖拽并对用户进行身份验证的流程,可以解决现有的验证方法存在的操作复杂、验证效率低和容易被机器自动化识别的问题。最后经过本技术方法的验证操作在验证难度、验证效率和安全性都得到了明显的改善。[0225]此外,本技术实施例还提出一种验证码的验证装置,所述验证装置包括:[0226]接收模块:用于接收客户端发送的验证请求;[0227]解析模块,用于解析所述验证请求,得到对应的数组信息;[0228]生成模块,用于根据所述数组信息及预设的数字排序规则,生成对应的图形验证码组件;[0229]发送模块,用于将所述图形验证码组件返回给所述客户端,以供所述客户端显示验证界面供用户操作;[0230]指令接收模块,用于接收所述客户端发送的操作指令,根据所述操作指令进行验证。[0231]本实施例实现验证码的验证的原理及实施过程,请参照上述各实施例,在此不再赘述。[0232]此外,本技术实施例还提出一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的验证码的验证程序,所述验证码的验证程序被所述处理器执行时实现如上所述的验证码的验证方法的步骤。[0233]由于本验证码的验证程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。[0234]此外,本技术实施例还提出一种可读存储介质,所述可读存储介质上存储有验证码的验证程序,所述验证码的验证程序被处理器执行时实现如上所述的验证码的验证方法的步骤。[0235]由于本验证码的验证程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。[0236]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。[0237]上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。[0238]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台电子设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本技术每个实施例的方法。[0239]以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部