一种基于Web端交互图片旋转的人机验证方法及系统与流程

文档序号:31525295发布日期:2022-09-14 14:01阅读:168来源:国知局
一种基于Web端交互图片旋转的人机验证方法及系统与流程
一种基于web端交互图片旋转的人机验证方法及系统
技术领域
1.本发明涉及计算机技术领域,尤其涉及一种基于web端交互图片旋转的人机验证方法及系统。


背景技术:

2.目前常见的人机验证手段是输出扭曲带干扰的图片验证码,靠用户识别出图片验证码里的内容,然后输入预期结果作为判断此次行为是否属于正常的用户操作,通常是看图输入一串字符或者做一些简单的运算。
3.但这种方式在机器学习门槛普遍降低以及计算机算力大幅提升的今天则存在一定的问题,让机器去学习验证码样本特征并且完成自动化校验已经并非难事,目前的基于传统的图片验证码方式难以有效防御机器学习程序。


技术实现要素:

4.本发明所要解决的是目前的基于传统的图片验证码方式难以有效防御机器学习程序的问题,为了解决上述技术问题,本发明提供了一种基于web端交互图片旋转的人机验证方法及系统。
5.第一个方面,提供了一种基于web端交互图片旋转的人机验证方法,包括:
6.获取一张用于验证的图片,所述图片包含至少一个非中心对称且非纯色的图案;
7.通过预设算法确定角度值,将所述图片按照逆时针或顺时针旋转所述角度值,得到第一图片;
8.将所述第一图片在用户端的验证区域内进行显示;
9.以预设透明度对未旋转的所述图片进行处理,得到第二图片;
10.将所述第二图片在所述验证区域内进行显示,且所述第一图片的中心与所述第二图片的中心重合;
11.获取用户在所述验证区域内旋转所述第一图片使所述第一图片中的图案与所述第二图片中的图案重合时产生的旋转角度;
12.根据所述角度值和所述旋转角度判断用户是否验证通过。
13.在第一个方面的一种可能实现中,通过预设算法确定角度值,具体包括:
14.随机生成一个90度到270度之间的角度值。
15.在第一个方面的一种可能实现中,获取一张用于验证的图片之后,还包括:
16.在所述图片中的随机位置添加至少一个用于干扰验证的线条。
17.在第一个方面的一种可能实现中,根据所述角度值和所述旋转角度判断用户是否验证通过,具体包括:
18.根据所述角度值和所述旋转角度是否在预设误差范围内判断用户是否验证通过。
19.在第一个方面的一种可能实现中,根据所述角度值和所述旋转角度是否在预设误差范围内判断用户是否验证通过,具体包括:
20.将所述角度值与所述旋转角度作差,得到差值;
21.取所述差值的绝对值,判断所述绝对值是否小于预设阈值,当所述绝对值小于所述预设阈值时,验证通过,否则,验证不通过。
22.第二个方面,提供了一种基于web端交互图片旋转的人机验证系统,包括:服务器和用户端,其中:
23.所述服务器用于获取一张用于验证的图片,所述图片包含至少一个非中心对称且非纯色的图案;通过预设算法确定角度值,将所述图片按照逆时针或顺时针旋转所述角度值,得到第一图片;将所述第一图片在用户端的验证区域内进行显示;以预设透明度对未旋转的所述图片进行处理,得到第二图片;将所述第二图片在所述验证区域内进行显示,且所述第一图片的中心与所述第二图片的中心重合;获取用户在所述验证区域内旋转所述第一图片使所述第一图片中的图案与所述第二图片中的图案重合时产生的旋转角度;根据所述角度值和所述旋转角度判断用户是否验证通过。
24.在第二方面的一种可能实现中,所述服务器具体用于随机生成一个90度到270度之间的角度值。
25.在第二方面的一种可能实现中,所述服务器还用于在所述图片中的随机位置添加至少一个用于干扰验证的线条。
26.在第二方面的一种可能实现中,所述服务器具体用于根据所述角度值和所述旋转角度是否在预设误差范围内判断用户是否验证通过。
27.在第二方面的一种可能实现中,所述服务器具体用于将所述角度值与所述旋转角度作差,得到差值;取所述差值的绝对值,判断所述绝对值是否小于预设阈值,当所述绝对值小于所述预设阈值时,验证通过,否则,验证不通过。
28.通过图片旋转的方式进行验证,极大提高了机器学习图片验证码样本特征的难度,并提高了机器学习自动绕过人机验证的门槛,使得服务器端对外暴露的http业务接口更加安全可靠,能够有效抵御大部分基于传统的图片验证码方式的机器学习程序。
29.本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
30.图1为本发明人机验证方法的实施例提供的流程示意图;
31.图2为本发明人机验证方法的实施例提供的图片旋转示意图;
32.图3为本发明人机验证方法的实施例提供的验证区域示意图。
具体实施方式
33.以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
34.需要说明的是,本发明提供的验证方法依赖于验证图片,这些图片可以预先拍摄,例如,可以是随手拍摄的风景图,用于人机验证过程的展示。
35.应理解,由于涉及图片的旋转,为便于用户判断,图片不能是纯色图案,应该与背景区分开,并且不能是中心对称的简单图案,如中心对称的圆,这会导致用户难以判断旋转
的角度。
36.基于此,本发明提供了如下的验证方案。
37.如图1所示,为本发明人机验证方法的实施例提供的流程示意图,该基于web端交互图片旋转的人机验证方法包括:
38.首先,在web页面生成state。
39.具体地,用户打开web页面后,javascript随机生成一个字符串作为状态码用于后续的步骤保持上下文使用。
40.例如,可以为const state:string=

asdfx3’。
41.然后,获取旋转后的图片。
42.从存储有大量可用图片的服务器中获取一张用于验证的图片,图片包含至少一个非中心对称且非纯色的图案;
43.通过预设算法确定角度值,将图片按照逆时针或顺时针旋转角度值,得到第一图片;
44.应理解,角度值可以根据实际需求设置,例如,如图2所示,提供了一种示例性的图片旋转示意图,以图片的中心为轴,逆时针旋转97度。
45.将第一图片在用户端的验证区域内进行显示;
46.以预设透明度对未旋转的图片进行处理,得到第二图片;
47.将第二图片在验证区域内进行显示,且第一图片的中心与第二图片的中心重合;
48.例如,可以在用户滑动按钮的过程中显示第二图片,创建一个img标签用于显示正常角度的图片,src属性填写服务器的http接口地址/get_random_image_original,并通过url querystring携带前第一个步骤生成的state状态码,服务器根据这个状态码返回当前这张图片的原图,将半透明重叠在用于辅助用户在旋转过程中与原图角度校对。
49.例如,可以为《img src=”/get_random_image_original?state=asdfx3”/》。
50.下面给出可选的实施方式。
51.可以创建一个img标签,src属性填写服务器的http接口地址/get_random_image_rotated,并通过url querystring携带前一个步骤生成的state状态码。
52.例如,可以为《img src=“/get_random_image_rotated?state=asdfx3”/》。
53.服务器随机出一个角度值,用state状态码值作为主键写入缓存。
54.例如,可以为:
[0055][0056]
然后,提示用户滑动按钮,旋转图片完成校验。
[0057]
例如,服务器可以把旋转后的图片响应给web端,web端展现旋转后的图片,并在交互上提示用户在滑动条上从左到右滑动按钮旋转图片到一个正常的角度值。
[0058]
应理解,本领域技术人员还可以采用其他方式提示用户旋转图片,例如,增加文字提示,或者增加动态动画提示等,也可以通过编写程序实现不同的旋转方式,如通过鼠标指针直接拖动图片旋转等。
[0059]
并且,在校验过程中,显示原图用于辅助用户校验,即同时显示第一图片和第二图片,如图3所示,第二图片以半透明的形式与第一图片同时显示在验证区域内,便于用户对弃两张图片。
[0060]
当用户视觉判断两张图片接近重叠时会结束图片划动状态,此时web端记录当前图片旋转的角度,把发送一个请求携带state与角度值到服务器用于验证人机验证是否通过。
[0061]
例如,可以为get/verify?state=asdfx3&rotate=96。
[0062]
获取用户在验证区域内旋转第一图片使第一图片中的图案与第二图片中的图案重合时产生的旋转角度;
[0063]
最后,将state与用户旋转图片后的角度发送到服务器验证。
[0064]
根据角度值和旋转角度判断用户是否验证通过。
[0065]
本实施例提供的人机验证方法,通过图片旋转的方式进行验证,极大提高了机器学习图片验证码样本特征的难度,并提高了机器学习自动绕过人机验证的门槛,使得服务器端对外暴露的http业务接口更加安全可靠,能够有效抵御大部分基于传统的图片验证码方式的机器学习程序。
[0066]
可选地,在一些可能的实施方式中,通过预设算法确定角度值,具体包括:
[0067]
随机生成一个90度到270度之间的角度值。
[0068]
可选地,在一些可能的实施方式中,获取一张用于验证的图片之后,还包括:
[0069]
在图片中的随机位置添加至少一个用于干扰验证的线条。
[0070]
通过添加干扰线条,可以增加机器学习识别的难度。
[0071]
可选地,在一些可能的实施方式中,根据角度值和旋转角度判断用户是否验证通过,具体包括:
[0072]
根据角度值和旋转角度是否在预设误差范围内判断用户是否验证通过。
[0073]
应理解,预设误差范围可以根据实际需求设置,例如,前后偏差5度以内的都算验证通过。
[0074]
可选地,在一些可能的实施方式中,根据角度值和旋转角度是否在预设误差范围内判断用户是否验证通过,具体包括:
[0075]
将角度值与旋转角度作差,得到差值;
[0076]
取差值的绝对值,判断绝对值是否小于预设阈值,当绝对值小于预设阈值时,验证通过,否则,验证不通过。
[0077]
本发明还提供一种基于web端交互图片旋转的人机验证系统,包括:服务器和用户端,其中:
[0078]
服务器用于获取一张用于验证的图片,图片包含至少一个非中心对称且非纯色的图案;通过预设算法确定角度值,将图片按照逆时针或顺时针旋转角度值,得到第一图片;将第一图片在用户端的验证区域内进行显示;以预设透明度对未旋转的图片进行处理,得到第二图片;将第二图片在验证区域内进行显示,且第一图片的中心与第二图片的中心重合;获取用户在验证区域内旋转第一图片使第一图片中的图案与第二图片中的图案重合时产生的旋转角度;根据角度值和旋转角度判断用户是否验证通过。
[0079]
本实施例提供的人机验证系统,通过图片旋转的方式进行验证,极大提高了机器学习图片验证码样本特征的难度,并提高了机器学习自动绕过人机验证的门槛,使得服务器端对外暴露的http业务接口更加安全可靠,能够有效抵御大部分基于传统的图片验证码方式的机器学习程序。
[0080]
可选地,在一些可能的实施方式中,服务器具体用于随机生成一个90度到270度之间的角度值。
[0081]
可选地,在一些可能的实施方式中,服务器还用于在图片中的随机位置添加至少一个用于干扰验证的线条。
[0082]
可选地,在一些可能的实施方式中,服务器具体用于根据角度值和旋转角度是否在预设误差范围内判断用户是否验证通过。
[0083]
可选地,在一些可能的实施方式中,服务器具体用于将角度值与旋转角度作差,得到差值;取差值的绝对值,判断绝对值是否小于预设阈值,当绝对值小于预设阈值时,验证通过,否则,验证不通过。
[0084]
应理解,上述实施方式为与在先方法实施方式对应的产品实施方式,关于产品实施方式的说明可以参考在先方法实施方式的说明,在此不再赘述。
[0085]
应理解,在不违背本发明构思的前提下,本领域技术人员可以将上述实施方式进行任意组合,均在本发明的保护范围内。
[0086]
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特
征进行结合和组合。
[0087]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
[0088]
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0089]
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1