CN109063453A - 验证码实现方法、装置、系统、计算设备和存储介质 - Google Patents

验证码实现方法、装置、系统、计算设备和存储介质 Download PDF

Info

Publication number
CN109063453A
CN109063453A CN201810661424.0A CN201810661424A CN109063453A CN 109063453 A CN109063453 A CN 109063453A CN 201810661424 A CN201810661424 A CN 201810661424A CN 109063453 A CN109063453 A CN 109063453A
Authority
CN
China
Prior art keywords
identifying code
state
picture
code picture
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810661424.0A
Other languages
English (en)
Inventor
林嘉宇
林万琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Guangzhou I9Game Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou I9Game Information Technology Co Ltd filed Critical Guangzhou I9Game Information Technology Co Ltd
Priority to CN201810661424.0A priority Critical patent/CN109063453A/zh
Publication of CN109063453A publication Critical patent/CN109063453A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation

Abstract

本发明提供了一种验证码实现方法、装置、计算设备和存储介质。该方法包括:呈现验证码图片的第一状态,所述验证码图片包括第一部分和第二部分,所述第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态;响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。由此,通过提供一种新型的验证码及实现方式,能够兼顾语义和行为的双重验证,向用户提供较为友好的交互体验。并且,可以灵活绘制多种多样的验证码图片,并简化用户需执行的验证操作,降低了交互和认知难度,可以更加灵活地应对黑产。

Description

验证码实现方法、装置、系统、计算设备和存储介质
技术领域
本公开涉及计算机技术领域,具体涉及一种验证码实现方法、装置、系统、计算设备和存储介质。
背景技术
验证码全称为“全自动区分计算机和人类的图灵测试”(Captcha, CompletelyAutomated Public Turing Test to Tell Computers and Humans Apart),是一种区分用户是计算机还是人的公共全自动程序。可以用于防止恶意破解密码、刷票、论坛灌水,有效防止黑客通过暴力破解方式进行不断的登陆/下载等操作。在很多场景下,验证码都是防范黑色产业的最后一道防护门。
那些交互体验友好的验证码大多容易被破解,而难以被破解的验证码大多交互体验都很差,甚至反人类。验证码的设计既要考虑交互友好,便于人类完成验证,同时又能对抗机器人或自动化工具,使得它们难以破解。
如今各式各样的验证码大多都已被破解。
图1A至1E示出了五种常见的验证码,分别为简单英文数字验证码 (图1A)、滑动验证码(图1B)、汉字点选验证码(多字版)(图1C)、汉字点选验证码(单字版)(图1D)、汉字拼音首字母验证码(图1D)。这些类型的验证码都已证实或疑似被技术破解或者打码破解。
现有的这些验证码方案,一定程度上考虑了利用一个已知的事实——计算机在图形图像识别方面的能力还相对较弱。所以,这些方案大多利用图片来做验证码,在图片中混入一些语义信息,然后要求访问者来识别出图片中的语义信息,并反馈给服务端,若访问者给出的答案符合验证码中的语义,则认为此访问者是人类而非机器。这也是验证码的本质含义,即全自动区分计算机和人类的图灵测试。
在验证码的设计中,最常用的语义信息就是文字。例如,图1A和图1B都是英文数字验证码,就是将英文字母和数字放在图片中,其假设就是计算机是没法从图片中正确提取英文字母和数字的。但人工智能技术发展到现阶段,这类技术问题早已不在话下,即使是在图片中加入各种干扰因素,人工智能仍然能有较高的概率正确识别出英文和数字,且很多时候,其识别能力甚至超越普通人类。
图1C、图1D和图1E,都是中文文字类的验证码。相比于英文数字验证码,中文文字类验证码的语义复杂度会稍微高一点,看似比较难破解。但在实际线上使用情况来看,已经有黑色产业能够在以十几次每秒的速度完成验证。另外图1E所示的验证码,其语义信息难度与图1C和图1D差不多,但交互的友好程度却打了折扣。
因此,为了对抗黑色产业,需要研发新型验证码。
发明内容
为了解决上述技术问题,本发明提供了一种新型验证码及验证实现方法,该验证码能够兼顾语义验证和行为验证,向用户提供难被破解且更为友好的验证交互体验。与现有验证码相比,本发明的验证码语义复杂度较高且可定制,验证素材更为丰富,验证码灵活度更高,并且验证行为简单易实现,进一步降低了交互难度。
根据本发明的一个方面,提供了一种验证码实现方法,包括:呈现验证码图片的第一状态,所述验证码图片包括第一部分和第二部分,所述第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态;响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。
由此,通过提供一种新型的旋转拼图验证码,向用户提供难被破解且更为友好、有趣的验证交互体验。
优选地,第二状态可以具有用户可以辨别以区分于其它状态的特征。第二状态对应于完整的图形和/或文字;并且/或者在所述第二状态下,所述第一部分和所述第二部分之间的边界处的线条连续;并且/或者所述第二状态具有用户可理解的内容;并且/或者所述第二状态对应于引导说明的状态。
由此,进一步增强现有图形验证码中的语义复杂度,同时又不提高用户认知难度。
优选地,所述第一状态是在所述第二状态的基础上,使所述第一部分绕预定中心旋转一角度而得到的不同于所述第二状态的状态。对于不同的验证码图片,所述角度可以是随机的。
由此,将用户的交互操作从传统的文字输入,改为经由鼠标或手指的旋转、拖拽操作,用户可以通过简单的旋转操作即可完成验证,省去了敲击键盘等繁琐的输入步骤,使验证交互更加友好。
优选地,当用户对所述第一部分的旋转操作停止时,所述第一部分的方位相对于第二状态下所述第一部分的方位之间的旋转角度差异不大于预定角度阈值的情况下,视为所述验证码图片基本上呈现其第二状态。
由此,在用户旋转验证的过程中,允许有一定的旋转偏差,以保障用户验证成功率。
优选地,该方法还可以包括:在判定验证失败的情况下,将所述验证码图片恢复为所述第一状态,或者变化到不同于所述第一状态和所述第二状态的第三状态,作为更新后的所述第一状态,以便用户重新进行旋转操作。
优选地,该方法还可以包括:在连续判定验证失败的次数超过预定次数阈值的情况下,呈现新验证码图片的第一状态。
由此,在验证失败的情况下,通过更改验证码图片的状态或是更新新的验证码图片,持续为用户提供验证服务。
优选地,所述第一部分的形状为同心圆环,所述第二部分包括圆环内部分和/或圆环外部分。
优选地,该方法还可以包括:从服务器接收用于生成验证码图片的原始图片和图片剪裁规格,所述图片剪裁规格包括同心圆环的内径和外径以及圆心在图片中的坐标;基于所述图片剪裁规格对所述原始图片进行剪裁,并对剪裁得到的同心圆环进行旋转,以得到所述验证码图片的第一状态。
由此,通过设计合理、可行的基于圆环的剪裁方式,提供新型的验证码及验证机制。
优选地,所述同心圆环的内外边缘可以被描边,以掩盖圆环边缘裁剪产生的锯齿。
优选地,所述原始图片可以是文字、图形、图像中的任何一种;或者所述原始图片可以是基于文字、图形、图像中的至少两种的叠加。
优选地,在所述验证码图片的第一状态下,还可以显示验证操作提示和/或验证操作动画演示。在用户进行旋转验证时,还可以响应于用户的旋转操作,呈现所述第一部分的相应旋转动画效果。
由此,灵活、生动地向用户呈现操作提示或动画效果,提升用户验证交互体验。
根据本发明的另一方面,还提供了一种验证码实现装置,包括:呈现单元,用于呈现验证码图片的第一状态,所述验证码图片包括第一部分和第二部分,所述第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态;验证单元,用于响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。
优选地,该装置还可以包括:状态恢复单元,用于在判定验证失败的情况下,将所述验证码图片恢复为所述第一状态,或者变化到不同于所述第一状态和所述第二状态的第三状态,作为更新后的所述第一状态,以便用户重新进行旋转操作。
优选地,所述状态恢复单元还可以用于:在连续判定验证失败的次数超过预定次数阈值的情况下,呈现新验证码图片的第一状态。
优选地,所述第一部分的形状可以为同心圆环,所述第二部分可以包括圆环内部分和/或圆环外部分,所述装置还包括:接收单元,用于从服务器接收用于生成验证码图片的原始图片和图片剪裁规格,所述图片剪裁规格包括同心圆环的内径和外径以及圆心在图片中的坐标;剪裁单元,用于基于所述图片剪裁规格对所述原始图片进行剪裁,并对剪裁得到的同心圆环进行旋转,以得到所述验证码图片的第一状态。
优选地,所述显示装置还可以用于:在所述验证码图片的第一状态下,显示验证操作提示和/或验证操作动画演示。
优选地,所述显示装置还可以用于:响应于用户的旋转操作,呈现所述第一部分的相应旋转动画效果。
根据本发明的另一方面,还提供了一种验证码实现系统,包括客户端和服务器,其中,所述客户端从服务器接收用于生成验证码图片的原始图片和图片剪裁规格,并基于所述图片剪裁规格对所述原始图片进行剪裁,以得到验证码图片的第一状态;所述客户端呈现验证码图片的第一状态,所述验证码图片包括第一部分和第二部分,所述第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态;所述客户端响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。
根据本发明的另一方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上任何一项所述的方法。
根据本发明的另一方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上任一项所述的方法。
由此,本发明如上所述的验证码实现方案,通过提供一种难破解的新型验证码以及新型验证机制,为用户提供更为友好的验证交互体验。
相比于传统验证码,本发明提出的旋转拼图验证码,增强了语义复杂度,比基于文字语义的验证码更难破解。通过选择合适的语义素材,可以降低认知难度。通过对语义素材的随机动态组合,进而可以灵活地绘制出多种多样的验证码图片,使得验证码变化和扩展的空间很大,能够灵活地对抗黑色产业。在验证码的交互设计上仅需用户使用手指或鼠标拖拽/旋转操作即可,省去了敲击键盘的繁琐。通过引入引导动画、交互反馈动画,也进一步降低了交互和认知难度。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1A至图1E示出了现有的五种验证码的例子。
图2示出了根据本发明一实施例的验证码实现系统的示意图。
图3A至3C示出了根据本发明一实施例的验证码图片的视觉外观及验证交。
图4A-4D示出了根据本公开的原始图片的例子。
图5A至图5D示出了根据本公开的剪裁得到验证码图片的例子。
图6示出了根据本公开一实施例的初始化流程示意图。
图7A至7C示出了根据本发明一实施例的确定落点位置的示意图。
图8A至图8B示出了根据本公开一实施例的验证码验证原理的示意图。
图9示出了根据本发明一实施例的验证码实现方法的流程示意图。
图10示出了根据本发明一个实施例的验证码实现流程的示意图。
图11是示出了根据本发明一实施例的验证码实现装置的结构框图。
图12示出了根据本发明一实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
如前所述,验证码的设计既要考虑交互友好,便于用户完成验证,同时又需要难被破解,以对抗机器人或自动化工具。现有的各种各样的验证码,交互体验较好的验证码大多已被破解,难以被破解的验证码大多交互体验较差。
为了解决上述技术问题,本公开提出了一种新型的旋转拼图验证码,该验证码能够兼顾语义验证和行为验证,难以被黑色产业破解,并且具有较低的认知难度和交互难度,为用户提供更加友好的验证交互体验。
如下将结合附图及实施例详细说明本公开的验证码实现方案。
验证码实现系统
本公开的验证码实现方案可以由一种验证码实现系统实现。图2示出了根据本发明一实施例的验证码实现系统的示意图。
如图2所示,本发明的验证码实现系统200可以包括至少一个服务器 20和多个终端设备10。终端设备10可以经由网络40实现与服务器20的信息收发。服务器20可以通过访问数据库30来获取终端设备10所需的内容。移动终端之间(例如,10_1与10_2或10_N之间)也可以经由网络 40彼此通信。
网络40可以是广义上的用于信息传递的网络,可以包括一个或多个通信网络,诸如无线通信网络、因特网、私域网、局域网、城域网、广域网或是蜂窝数据网络等。在一个实施例中,网络40也可以包括卫星网络,由此将终端设备10的GPS信号传送给服务器20。
应当注意,如果向图示环境中添加附加模块或从其中去除个别模块,不会改变本发明的示例实施例的底层概念。另外,虽然为了方便说明而在图中示出了从数据库30到服务器20的双向箭头,但本领域技术人员可以理解的是,上述数据的收发也是可以通过网络40实现的。
终端设备10是可用来进行网络访问的任何合适的电子设备,优选可以为便携式电子设备,包括但不限于智能电话、平板电脑或是其他便携式客户端。服务器20则是能够通过网络访问的提供交互服务所需信息的任何服务器。并且在随后的描述中会选择其中的一个或部分移动终端加以描述(例如,终端设备10-1),但是本领域技术人员应该理解的是,上述1… N个移动终端旨在表示真实网络中存在的大量移动终端,示出的单个服务器20和数据库30旨在表示本发明的技术方案涉及服务器及数据库的操作。对特定编号的移动端以及单个服务器和数据库加以详述至少为了说明方便,而非暗示对移动端和服务器的类型或是位置等具有限制。
本公开的验证码的至少部分可相对于其余部分旋转。
本公开实施例中,将可旋转部分称为第一部分,其余部分称为第二部分,第一部分能够相对于第二部分旋转,第一部分相对于第二部分的不同相对方位关系可对应于验证码图片的不同状态。在一个实施例中,验证码图片的第一部分和第二部分可由原始图片(预定背景图片)剪裁、重新绘制而成,第一部分和第二部分可以均有图形和/或文字的至少部分。
在用户进行验证操作之前,可以向用户呈现验证码的第一状态,在验证判定时,验证码图片是否基本上处于第二状态以判定验证是否成功。其中,第二状态具有用户可以辨别以区分于其它状态的特征。第一状态可以是在第二状态的基础上,使第一部分绕预定中心旋转一角度而得到的不同于第二状态的状态。
应该理解的是,文中对“第一”和“第二”的描述,旨在对描述对象加以区分,而非对其顺序和大小有任何明示或是暗示的规定。
在本文技术方案中,数据库30中可以存储有预先设定好的验证码图片,也可以存储有用于生成验证码图片的原始图片,还可以存储有用于生成验证码图片的素材、资源、背景图片等。
服务器20侧可以向终端设备10发送验证码图片(也可以先生成验证码图片后发送)及相关数据(例如图片剪裁规格),以供用户进行验证。或者,可以由服务器侧20向终端设备发送用于生成验证码图片所需要的数据(例如原始图片和图片剪裁规格),以便于得到验证码图片。
终端设备10(客户端)能够从服务器20接收验证码图片及相关数据,并呈现验证码图片的第一状态,并允许用户通过诸如鼠标、手指等设备或装置,在客户端进行操作以旋转验证码的第一部分。客户端能够响应于用户对第一部分的旋转操作停止时所述验证码图片所处的状态进行验证判定。其中,在本文技术方案中,“终端设备”和“客户端”可视为等同概念。
在一个优选实施例中,客户端10还能够从服务器20接收用于生成验证码图片的原始图片和图片剪裁规格,并基于所述图片剪裁规格对所述原始图片进行剪裁和旋转处理,以得到验证码图片。之后,在客户端呈现验证码图片的第一状态以便于用户进行验证。
本公开验证码图片的视觉外观及验证交互如图3A至3C所示。
图3A示出了根据本公开的验证码图片的初始状态,下面称为“原始图片”。
该验证码图片可以基于图形或图像生成,可以基于文字生成,也可以基于图形、图像与文字中任两者或三者的结合来生成。
初始状态下,如图3A所示,原始图片中的部分绕旋转中心点相对于其余部分发生旋转,产生错位,形成验证码图片。图3A中,以原始图片中心一点作为旋转中心点,两个同心圆形成一个同心圆环,内侧圆内部和外侧圆外部相对固定不动,中间的同心圆环相对于内侧圆内部和外侧圆外部的相对固定部分绕旋转中心点旋转一个角度。在同心圆环、圆环内部分、圆环外部分均有图形和/或文字的至少部分的情况下,一方面可以增加机器识别的难度,另一方面又可以为用户提供更多的识别线索,便于完成验证操作。
图3B示出了根据本公开的验证码的操作引导动画。
如图3B所示,可以在验证码图片上或其旁边可以叠加一个引导说明,告诉用户通过旋转拼出一个满足什么条件的图形。例如,可以通过文字说明“请按提示,拖转底部图片上的圆环,拼出正确的图形后松开”。另外还可以有手指图标指示圆环部分(即图片中发生了旋转的第一部分)。进一步地,还可以以动画形式呈现更加形象的指示,例如沿转动方向移动手指图标。
引导说明可以作为一个图层叠加在验证码图片上。例如可以整体上呈现某种颜色,并且可以是半透明的。另外,可以以例如虚线形式突出显示出旋转部分的边缘,例如图3B中的圆环的内侧圆和外侧圆。
引导说明可以具有关闭按钮,如图3B中右上角的“×”按钮。当用户观看引导说明,了解根据本公开的验证码的操作方法后,可以点按关闭按钮“×”。响应于用户点按关闭按钮,关闭引导说明,例如可以去除引导说明图层,更加清晰地呈现验证码图片,以供用户进行验证操作。
图3C示出了根据本公开的验证码的用户操作过程示意图。
用户点按可旋转部分,即图3A、3B、3C中的圆环,拖动以进行旋转。当通过旋转拼接成完整的原始图片时,停止旋转。可以设置为用户在旋转过程中始终点按旋转部分,直到停止旋转时停止点按。也可以设置为用户点按圆环部分开始旋转,当旋转到期望位置时,再次点按以停止旋转。
在用户停止旋转操作后,判断用户执行旋转操作后,转动部分,即圆环部分是否回到了原始图片中的正确位置。在回到了原始图片中的正确位置,即用户通过旋转操作,拼接出了完整的原始图片的情况下,判定操作者是人而不是机器,验证通过。
本公开的用于生成验证码图片的原始图片可如图4A至4D所示。
图4A-4D示出了根据本公开的用于生成验证码图片的原始图片的例子。
原始图片例如可以是大众较为熟悉的图片,如来自互联网的免费或授权的表情包,如图4A示出的表情包图片的例子。原始图片也可以是从特定渠道(例如广告主)获得的例如具有宣传、推广意义的图片,如图4B示出的广告图片的例子。
原始图片也可以是由语义素材库中的语义元素(例如可以包括文字、图形、图像中的任意一种或至少两种)生成的,这些语义元素可以是自行制作、或是来自互联网的素材资源、或是购买或授权取得的。
在一个实施例中,可以制作或是收集一些文字、图形或图像,通过其随机组合来生成本公开的原始图片,如图4C示出的表情包图片的例子。其中,图4C与图4A相比,使用了相同的表情精灵(右手捂胸口的素描人),结合不同的文字组合而成具有不同语义的原始图片。
原始图片也可以是由第一部分和第二部分上的文字和/或数字拼出一句诗词、一句顺畅的话、一个正确的等式或公式,如图4D所示。本发明对原始图片的形式、视觉外观等均不做限制。
由此,通过对语义素材的随机、动态组合,可以灵活地绘制多种多样的原始图片以及验证码图片,极大地丰富和扩展了验证码的素材,能够更灵活地对抗黑色产业。
本公开实施例中,可以按照预设的图片剪裁规格对上述原始图片进行剪裁,并对剪裁得到的第一部分随机旋转一角度,以得到验证码图片。
上述剪裁可以在服务器端实现。例如,服务器端可以按照预设的图片剪裁规格对原始图片进行剪裁得到第一部分和第二部分,并对剪裁得到的第一部分进行旋转,以得到验证码图片的第一状态,并将上述验证码图片发送至客户端以便于用户进行验证。
上述剪裁可以在客户端侧实现。例如,服务器端可以将用于生成验证码图片的原始图片和图片剪裁规格发送给客户端,客户端基于图片剪裁规格对原始图片进行剪裁,并对剪裁得到的第一部分进行旋转,以得到验证码图片的第一状态。
在一个实施例中,可行的剪裁方式可以为按照甜甜圈(donut)的形状对原始图片进行剪裁,第一部分的形状可以为同心圆环,第二部分可以包括圆环内部分和/或圆环外部分。图片剪裁规格可以包括同心圆环的内径和外径以及圆心在图片中的坐标。
本公开的原始图片生成验证码图片的过程如图5A至5D所示。
图5A至图5D示出了根据本公开的剪裁得到验证码图片的例子。
如图5A-5B所示,可以通过绘制两个直径不同的同心圆,将图4B所示的原始图片剪裁成两部分,分别得到如图5A所示的圆环部分,即可旋转的第一部分,以及如5B所示的其余部分(圆环内部分和圆环外部分),即第二部分。
之后,将图5A所示的圆环部分绕预定中心(例如该圆环内圆的圆心或是画布中心)随机旋转一角度,得到图5C所示的旋转后的圆环部分。将图5C所示的圆环部分绘制到图5B所示的第二部分,得到最终的验证码图片,即验证码图片的第一状态,如图5D所示。
服务器端将上述验证码图片(或是验证码图片的原始图片)和图片剪裁规格发送至客户端侧,以便于用户在客户端进行验证的旋转操作。
图6示出了根据本公开一实施例的初始化流程示意图。
客户端在接收到验证码图片和图片剪裁规格后,首先可以按照图6所示流程实施初始化操作。在步骤S610,创建画布(canvas)元素,将验证码图片绘制到canvas上;在步骤S620,监听touchstart/touchmove/touchend 事件、或者监听mousedown/mousemove/mouseup事件;在步骤S630,显示引导动画,等待用户交互。
之后,用户通过按照引导动画的指引,用鼠标或手指按住验证码图片的可旋转的圆环部分,然后将其拖拽旋转合适的角度,在拼出正确的图片 (例如验证码图片的第二状态)之后,松开圆环部分即可完成验证。
在用户进行验证时,例如按下、拖动、松开手指或鼠标的过程中,客户端侧分别执行不同的处理。
(1)落点位置确定
当用户按下鼠标或手指点按屏幕时,判断其落点位置是否落在圆环范围内,若落点位置处于圆环范围内,则需要启动验证的拖拽/旋转流程。
落点位置的确定方法可参见现有技术中的相关方案,在此不赘述。在一个实施例中,可以计算落点到圆心(例如圆环内圆中心或是画布中心) 的连线,与画布水平中线之间的夹角,即旋转角α。
图7A至7C示出了根据本发明一实施例的确定落点位置的示意图。
图7A示出了根据本公开一实施例的donut坐标系的示意图。
画布(canvas)原生坐标系可以是以画布左上角为原点,水平向右为 x轴正向,垂直向下为y轴正向,如图7A所示的灰色坐标轴cx和cy。
为了方便计算用户拖拽/旋转操作过程中,落点经历过的旋转角α,本公开引入了一个新的坐标系,该坐标系以画布中心为原点,水平向右为x 轴正向,垂直向下为y轴正向,将该坐标系简称为donut坐标系,如图7A 所示。
图7B示出了根据本公开一实施例的旋转角规范化示意图。
落点的坐标可以进一步从画布坐标系转换到donut坐标系,此时落点到画布中心的连线,与x轴正向的夹角,记为用户开始拖拽/旋转操作时落点的初始角度,以下称为“出发角度”。
如图7B所示,黑色点1代表落点,其坐标在donut坐标系中的记为 (dx,dy),则出发角度α可以表示为Math.atan(dy/dx),该角度范围是[-π,π],图7B中所示α角度是负数。为了便于计算和观察,我们将所有的角度,都规范化到顺时针方向的[0,2π)范围内。
旋转角α规范化的过程就是判断dx的符号,如果dx>=0,则规范化的角度θ’=(θ+2π)%2π,反之,如果dx<0,则θ’=θ+π。如图7C,α’就是规范化后的角度。
接下来将规范化的角度α记录到一个全局对象中,该对象包含一个数组,保存用户落点经历过的所有角度,以下称之为dragging对象。
(2)用户拖拽过程中落点位置位移
在用户拖拽过程中,落点会发生位移,会发出touchmove或mousemove 事件,在处理这种事件时,需要根据新的落点坐标,将圆环内的图像转动一定的角度,并重新绘制到canvas上,取代上一帧中的圆环内容。这样的绘制效果,在视觉效果上就是圆环内的图片内容,随着用户的手指或鼠标在转动,转动的轴心就是画布中心,亦即圆环中心。
具体步骤如下:
1.同样需要先从touchmove/mousemove事件中,获取落点在窗口(例如显示窗口)中的新坐标,然后将其转换到画布坐标系。
2.再将落点坐标从画布坐标系转换到donut坐标系。计算当前落点所在的位置与x轴正向的规范化夹角度数,然后与出发角度作差,得到在拖拽/旋转操作过程中,用户的鼠标或手指沿顺时针旋转了多少角度,记为stepAngle。如图7C,从点1到点2,旋转角stepAngle=α’-β。
3.恢复上一帧保存的绘图表面数据到画布上。
4.按裁剪规格,创建圆环路径,以该路径作为canvas画布的当前裁剪路径,将原始图片沿顺时针旋转stepAngle度,然后绘制到当前画布上。
5.保存绘图表面,并继续绘制其他辅助元素,包括对圆环路径进行描边、上阴影,这样做是由于在剪裁生成验证码图片时,在圆环裁剪边缘会产生锯齿,对圆环路径进行实时描边可以掩盖这些锯齿。
6.在全局对象dragging中添加当前的落点所确定的规范化角度。
(3)用户拖拽/旋转操作结束
当用户抬起手指停止点按鼠标或屏幕时,表明用户要结束拖拽/旋转操作了。这时,浏览器或相关应用会发出touchend或mouseup事件。处理这种事件时,同样需要先将落点的坐标从窗口坐标系转到画布坐标系,再转到donut坐标系,确定落点离开屏幕时最后的坐标点,并计算其规范化角度,此角度称为“离开角”。将离开角保存到全局dragging对象中,此对象作为用户做出的验证答案。该验证答案可以被提交到服务端,以发起验证请求。
图8A至图8B示出了根据本公开一实施例的验证码验证原理的示意图。
验证时,只验证用户执行拖拽/旋转操作时,旋转的角度是否在正确范围,并没有验证整个拖拽过程。
由于服务端在生成验证码图片时,是将第一部分(圆环部分)裁剪出来,然后旋转一定的角度,再绘制到第二部分上。那么用户在客户端的拖拽/旋转操作,无论是使得圆环部分顺时针旋转还是逆时针旋转,无论旋转多少圈,旋转角都会被规范化到顺时针的[0,2π)范围内。
假设在生成的验证码图片中,圆环部分沿顺时针旋转的角度为γ。原始图片中,虚线3与水平实线条是在同一条直线上的,将圆环部分裁剪出来并顺时针旋转γ角后,再绘制上去,结果如图8A所示。
用户在客户端执行用于验证的拖拽操作时,如果继续沿着顺时针方向旋转的角度θ(其实是规范化后的角度,实际上用户无论沿顺时针或逆时针旋转都可以),那么理想情况下,γ+θ=2π才能拼出原图。如图8B,用户沿顺时针将紫色虚线3旋转到红色虚线4位置,即与x轴重合,旋转的角度为θ。从图中看出,当两个角度相加为2π时,图片刚好恢复到初始状态(原始图片被裁剪、旋转之前所处的初始状态),基本上为验证码图片的第二状态。
本公开实施例中,允许存在一定的视差,γ+θ的结果,允许在2π左右波动。波动的幅度例如可以为±5°,那么只要用户在客户端旋转的θ角,使得γ+θ的结果落在[355°,365°]范围内,都可视为验证成功。
在判定验证成功时,可以继续向用户提供后续的服务。
在判定验证失败的情况下,可以将验证码图片恢复为验证码图片的第一状态,或者变化到不同于第一状态和第二状态的第三状态,作为更新后的第一状态,以便于用户重新进行拖拽或旋转操作。
另外,还可以监听用户验证失败的次数,在连续判定验证失败的次数超过预定次数阈值的情况下,当前的验证码图片的认知难度可能较高,此时可以向用户呈现新验证码图片的第一状态,以便用于重新进行严重。
由此,本公开如上所述的验证码实现方案,通过提供一种新型的旋转拼图验证码和新的验证机制,基于语义和行为的双重验证,该验证码能够兼顾语义验证和行为验证,向用户提供难被破解且更为友好的验证体验。与现有验证码相比,本发明的验证码语义复杂度较高且可定制,验证素材更为丰富,验证码灵活度更高,并且验证行为简单易实现,进一步降低了交互难度。
图片中语义由原先的普通中文汉字,变为复杂的文字、图形、图像的结合体,进一步增强了现有图形验证码中的语义复杂度。并且。验证码图片中的文字、图形、图像可以由服务端动态地、随机地拼接、组合,使得验证码变化和扩展的空间进一步扩大,能够更为灵活地对抗黑色产业。
在不提高认知难度的情况下,验证码图片中语义信息,可以选择互联网上广泛流传但富有变化的语义元素,比如表情包、表情帝、表情文字、热门人物、热点图片等等元素的随机组合。由此,使得验证码更加有趣,而不再是枯燥的文字游戏。
在交互设计方面,将用户的交互操作从传统的文字输入,改成用鼠标或手指拖拽,并且对用户的拖拽反馈以实时的动画效果。相比于现有的基于点击文本框、拉起键盘、输入文字等交互操作的验证码来说,交互更加友好。同时,实时反馈的动画效果,也一定程度上弥补了语义复杂度带来的认知难度,这种动画反馈更有利于完善用户对旋转拼图验证码的认知。
验证码实现方法
本发明的验证码实现方案也可以实现为一种验证码实现方法。图9示出了根据本发明一实施例的验证码实现方法的流程示意图。该验证码实现方法可在客户端侧实现。
如图9所示,在步骤S910,呈现验证码图片的第一状态。其中,该验证码图片可以包括第一部分和第二部分,第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态。
在其中,第二状态可以具有用户可以辨别以区分于其它状态的特征。例如,第二状态对应于完整的图形和/或文字。或者,在第二状态下,第一部分和第二部分之间的边界处的线条连续。或者,在第二状态具有用户可理解的内容。或者,第二状态对应于引导说明的状态。
第一状态可以是在所述第二状态的基础上,使第一部分绕预定中心旋转一角度而得到的不同于所述第二状态的状态。其中,预定中心可以是图片的中心。在一个实施例中,图片可以被绘制在画布中心,因此,预定中心也可以是画布中心。
对于不同的验证码图片,该角度可以是随机的。其中,该旋转角度非零、非2π的整数倍。
在一个优选实施例中,第二状态可以是验证码图片的原始图片的初始状态,或是与初始状态相比有一定的旋转角度差异。第一状态例如可以是在生成验证码图片时,将第一部分随机旋转一定角度,使得第一部分相对于第二部分产生错位时的状态。
在验证码图片的第一状态下,还可以显示验证操作提示和/或验证操作动画演示,以引导用户进行旋转验证的旋转操作。
在用户进行旋转操作的过程中,还可以响应于用户的旋转操作,向用户呈现第一部分的相应旋转动画效果。其中,终端设备或客户端可以以用户按下鼠标或手指时,在屏幕上相应的落点位置落在第一部分上,来启动拖拽或旋转流程。
之后,在步骤S920,响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。当用户对第一部分的旋转操作停止时,第一部分的方位相对于第二状态下第一部分的方位之间的旋转角度差异不大于预定角度阈值的情况下,视为所述验证码图片基本上呈现其第二状态,即验证成功。其中,上述落点离开屏幕时为旋转操作停止。
这里,旋转角度差异为(与原始图片的初始状态相比)第一部分相对于第二部分旋转的角度。预定角度阈值例如可以为±5°。
在判定验证失败的情况下,可以将验证码图片恢复为所述第一状态,也可以将验证码图片变化到不同于所述第一状态和所述第二状态的第三状态,作为更新后的所述第一状态,以便用户重新进行旋转操作。
在这里,还可以监听判定验证失败的次数,在连续判定验证失败的次数超过预定次数阈值的情况下,呈现新验证码图片的第一状态,以使用户针对新验证码图片重新进行验证。
上述验证过程中,在用户执行旋转操作之前,还可以在验证码图片的第一状态下,向用户显示验证操作提示和/或验证操作动画演示。在用户进行旋转验证的过程中,还可以响应于用户的旋转操作,向其呈现第一部分的相应旋转动画效果。当用户对第一部分的旋转操作停止时,还可以向用户显示验证成功和/或失败的提示。
另外,在一个优选实施例中,在步骤S910向用户呈现验证码图片的第一状态之前,客户端可以从服务器接收处于第一状态的验证码图片和图片剪裁规格,以供用户基于验证码图片的第一状态和图片剪裁规格进行验证。
在另一个实施例中,在步骤S910向用户呈现验证码图片的第一状态之前,客户端可以从服务器接收用于生成验证码图片的原始图片和图片剪裁规格,基于该图片剪裁规格对原始图片进行剪裁,并未剪裁得到的第一部分进行旋转,以得到验证码图片的第一状态。
这里,原始图片可以是文字、图形、图像中的任何一种;或者,原始图片可以是基于文字、图形、图像中的至少两种的叠加。第一部分的形状可以为同心圆环,第二部分可以包括圆环内部分和/或圆环外部分。在剪裁的过程中,还可以对同心圆环的内外边缘进行描边,以掩盖圆环边缘裁剪产生的锯齿。
至此,已经结合附图9详细说明了本公开的验证码实现方法,其具体技术细节可以参照本文上述关于验证码实现系统的相关描述,在此不再赘述。
图10示出了根据本发明一个实施例的验证码实现流程的示意图。
如图10所示,在步骤S1010,(在客户端给用户)呈现验证码图片的第一状态。在其中,还可以显示验证操作提示和/或验证操作动画演示,以引导用户进行验证操作。
用户例如可以通过按压、拖动鼠标或手指进行操作(例如拖拽或旋转操作),以旋转验证码的第一部分(如前所述的可旋转的圆环部分)。在其中,响应于用户的旋转操作,还呈现所述第一部分的相应旋转动画效果。
在步骤S1020,判断用户操作停止时验证码图片是否呈现第二状态,当用户通过操作使得可旋转部分停止于验证码图片的预定第二状态时,判定验证通过,进入步骤S1030,验证成功。
否则,判定验证未通过,进入步骤S1040,验证失败。此时,可以返回步骤S1010,将验证码图片恢复为第一状态(或者变化到不同于第一状态和第二状态的第三状态),以便用户重新进行旋转验证。
在每次验证失败的情况下,还可以进入步骤S1050,监听判定验证失败的次数。并判断连续判定验证失败的次数是否超过预定次数阈值。
在连续判定验证失败的次数未超过预定次数阈值的情况下,可以返回步骤S1010,将验证码图片恢复为第一状态(或者变化到不同于第一状态和第二状态的第三状态),以便用户重新进行旋转验证。
在连续判定验证失败的次数超过预定次数阈值的情况下,可以进入步骤S1060,向用户呈现新验证码图片的第一状态,以便于用户根据新的验证码图片重新进行如上所述的旋转验证步骤。
在上述过程中,客户端可以通过监听用户在按下、拖动、松开手指或鼠标时,落点位置、落点位置位移、落点离开屏幕等事件,来监听用户的旋转操作。
至此,已经结合附图10简单介绍了本公开的验证码旋转验证流程,其具体细节可参见上文的相关描述,在此不再赘述。
验证码实现装置
此外,本公开的验证码实现方案还可以由一种验证码实现装置实现。图11是示出了根据本发明一实施例的验证码实现装置的结构框图。其中,验证码实现装置1100的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图11所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
图11所示的验证码实现装置1100可以用来实现图10-11所示的验证码实现方法,下面仅就验证码实现装置1100可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文的描述,这里不再赘述。
如图11所示,本公开的验证码实现装置1100可以包括呈现单元1110 和验证单元1120。
呈现单元1110可以用于呈现验证码图片的第一状态,所述验证码图片包括第一部分和第二部分,所述第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态。
在其中,第二状态可以具有用户可以辨别以区分于其它状态的特征。例如,第二状态对应于完整的图形和/或文字。或者,在第二状态下,第一部分和第二部分之间的边界处的线条连续。或者,在第二状态具有用户可理解的内容。或者,第二状态对应于引导说明的状态。
第一状态可以是在所述第二状态的基础上,使第一部分绕预定中心旋转一角度而得到的不同于所述第二状态的状态。其中,对于不同的验证码图片,该角度可以是随机的。
在一个优选实施例中,呈现单元1110还可以在所述验证码图片的第一状态下,显示验证操作提示和/或验证操作动画演示。
验证单元1120可以用于响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。
在其中,呈现单元1110还可以响应于用户的旋转操作,呈现所述第一部分的相应旋转动画效果。
在一个实施例中,当用户对所述第一部分的旋转操作停止时,所述第一部分的方位相对于第二状态下所述第一部分的方位之间的旋转角度差异不大于预定角度阈值的情况下,视为所述验证码图片基本上呈现其第二状态。
本公开的验证码实现装置1100还可以包括状态恢复单元1130。
在一个实施例中,状态恢复单元1130用于在判定验证失败的情况下,将所述验证码图片恢复为所述第一状态,或者变化到不同于所述第一状态和所述第二状态的第三状态,作为更新后的所述第一状态,以便用户重新进行旋转操作。
在另一实施例中,状态恢复单元1130还可以在连续判定验证失败的次数超过预定次数阈值的情况下,呈现新验证码图片的第一状态。
验证码图片的第一部分和第二部分均可以具有任意的性质。在一个优选实施例中,验证码图片的第一部分的形状可以为同心圆环,第二部分可以包括圆环内部分和/或圆环外部分。
另外,验证码实现装置1100还可以包括接收单元1140和剪裁单元1150。
接收单元1140可以用于从服务器接收用于生成验证码图片的原始图片和图片剪裁规格,所述图片剪裁规格包括同心圆环的内径和外径以及圆心在图片中的坐标。
剪裁单元1150可以用于基于所述图片剪裁规格对所述原始图片进行剪裁,并对剪裁得到的同心圆环进行旋转,以得到所述验证码图片的第一状态。
在其中,原始图片是文字、图形、图像中的任何一种;或者原始图片是基于文字、图形、图像中的至少两种的叠加。同心圆环的内外边缘可以被描边,以掩盖圆环边缘裁剪产生的锯齿。
至此,已经结合附图11详细介绍了本公开的验证码实现装置。
图12示出了根据本发明一实施例可用于实现上述验证码实现方法的数据处理的计算设备的结构示意图。
参见图12,计算设备1200包括存储器1210和处理器1220。
处理器1220可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1220可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP) 等等。在一些实施例中,处理器1220可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器1210可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1220或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1210可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器 1210可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1210上存储有可处理代码,当可处理代码被处理器1220处理时,可以使处理器1220执行上文述及的验证码实现方法。
上文中已经参考附图详细描述了根据本发明的验证码实现方案。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (21)

1.一种验证码实现方法,包括:
呈现验证码图片的第一状态,所述验证码图片包括第一部分和第二部分,所述第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态;
响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。
2.根据权利要求1所述的方法,其中,
所述第二状态具有用户可以辨别以区分于其它状态的特征。
3.根据权利要求2所述的方法,其中,
所述第二状态对应于完整的图形和/或文字;并且/或者
在所述第二状态下,所述第一部分和所述第二部分之间的边界处的线条连续;并且/或者
所述第二状态具有用户可理解的内容;并且/或者
所述第二状态对应于引导说明的状态。
4.根据权利要求2所述的方法,其中,
所述第一状态是在所述第二状态的基础上,使所述第一部分绕预定中心旋转一角度而得到的不同于所述第二状态的状态。
5.根据权利要求4所述的方法,其中,
对于不同的验证码图片,所述角度是随机的。
6.根据权利要求4所述的方法,其中,
当用户对所述第一部分的旋转操作停止时,所述第一部分的方位相对于第二状态下所述第一部分的方位之间的旋转角度差异不大于预定角度阈值的情况下,视为所述验证码图片基本上呈现其第二状态。
7.根据权利要求1所述的方法,还包括:
在判定验证失败的情况下,将所述验证码图片恢复为所述第一状态,或者变化到不同于所述第一状态和所述第二状态的第三状态,作为更新后的所述第一状态,以便用户重新进行旋转操作。
8.根据权利要求7所述的方法,还包括:
在连续判定验证失败的次数超过预定次数阈值的情况下,呈现新验证码图片的第一状态。
9.根据权利要求1所述的方法,其中,
所述第一部分的形状为同心圆环,所述第二部分包括圆环内部分和/或圆环外部分。
10.根据权利要求9所述的方法,还包括:
从服务器接收用于生成验证码图片的原始图片和图片剪裁规格,所述图片剪裁规格包括同心圆环的内径和外径以及圆心在图片中的坐标;
基于所述图片剪裁规格对所述原始图片进行剪裁,并对剪裁得到的同心圆环进行旋转,以得到所述验证码图片的第一状态。
11.根据权利要求10所述的方法,其中,
所述同心圆环的内外边缘被描边,以掩盖圆环边缘裁剪产生的锯齿。
12.根据权利要求10所述的方法,其中,
所述原始图片是文字、图形、图像中的任何一种;或者
所述原始图片是基于文字、图形、图像中的至少两种的叠加。
13.根据权利要求1所述的方法,还包括:
在所述验证码图片的第一状态下,显示验证操作提示和/或验证操作动画演示。
14.根据权利要求1所述的方法,还包括:
响应于用户的旋转操作,呈现所述第一部分的相应旋转动画效果。
15.一种验证码实现装置,包括:
呈现单元,用于呈现验证码图片的第一状态,所述验证码图片包括第一部分和第二部分,所述第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态;
验证单元,用于响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。
16.根据权利要求15所述的装置,还包括:
状态恢复单元,用于在判定验证失败的情况下,将所述验证码图片恢复为所述第一状态,或者变化到不同于所述第一状态和所述第二状态的第三状态,作为更新后的所述第一状态,以便用户重新进行旋转操作。
17.根据权利要求16所述的装置,其中,所述状态恢复单元还用于:
在连续判定验证失败的次数超过预定次数阈值的情况下,呈现新验证码图片的第一状态。
18.根据权利要求15所述的装置,其中,所述第一部分的形状为同心圆环,所述第二部分包括圆环内部分和/或圆环外部分,所述装置还包括:
接收单元,用于从服务器接收用于生成验证码图片的原始图片和图片剪裁规格,所述图片剪裁规格包括同心圆环的内径和外径以及圆心在图片中的坐标;
剪裁单元,用于基于所述图片剪裁规格对所述原始图片进行剪裁,并对剪裁得到的同心圆环进行旋转,以得到所述验证码图片的第一状态。
19.一种验证码实现系统,包括客户端和服务器,其中,
所述客户端从服务器接收用于生成验证码图片的原始图片和图片剪裁规格,并基于所述图片剪裁规格对所述原始图片进行剪裁,以得到验证码图片的第一状态,其中,所述验证码图片包括第一部分和第二部分,所述第一部分能够相对于所述第二部分旋转,所述第一部分与所述第二部分的不同相对方位关系对应于所述验证码图片的不同状态;
所述客户端呈现验证码图片的第一状态;
所述客户端响应于用户对所述第一部分的旋转操作停止时所述验证码图片基本上呈现其第二状态,判定验证成功,否则判定验证失败。
20.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-14中任何一项所述的方法。
21.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至14中任一项所述的方法。
CN201810661424.0A 2018-06-25 2018-06-25 验证码实现方法、装置、系统、计算设备和存储介质 Pending CN109063453A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810661424.0A CN109063453A (zh) 2018-06-25 2018-06-25 验证码实现方法、装置、系统、计算设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810661424.0A CN109063453A (zh) 2018-06-25 2018-06-25 验证码实现方法、装置、系统、计算设备和存储介质

Publications (1)

Publication Number Publication Date
CN109063453A true CN109063453A (zh) 2018-12-21

Family

ID=64821478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810661424.0A Pending CN109063453A (zh) 2018-06-25 2018-06-25 验证码实现方法、装置、系统、计算设备和存储介质

Country Status (1)

Country Link
CN (1) CN109063453A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110084030A (zh) * 2019-03-14 2019-08-02 咪咕文化科技有限公司 基于图片验证码的验证方法、装置及计算机可读存储介质
CN110309643A (zh) * 2019-05-30 2019-10-08 苏宁云计算有限公司 一种基于旋转匹配的图片验证方法及系统
CN110308847A (zh) * 2019-05-31 2019-10-08 北京百度网讯科技有限公司 图片验证方法、装置、电子设备及计算机可读存储介质
CN111079119A (zh) * 2019-12-04 2020-04-28 北京达佳互联信息技术有限公司 验证方法、装置、设备及存储介质
CN111259367A (zh) * 2020-03-11 2020-06-09 北京弘远博学科技有限公司 基于登录古诗词验证码的生成方法
CN111666555A (zh) * 2020-06-03 2020-09-15 广州酷狗计算机科技有限公司 验证码生成方法、装置以及计算机存储介质
CN111859354A (zh) * 2020-07-21 2020-10-30 百度在线网络技术(北京)有限公司 图片验证方法、装置、电子设备和计算机可读存储介质
CN112417418A (zh) * 2020-11-19 2021-02-26 刘一方 一种基于新型的验证码的验证方法
CN113992373A (zh) * 2021-10-20 2022-01-28 平安普惠企业管理有限公司 基于验证码的验证方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105323066A (zh) * 2014-07-21 2016-02-10 腾讯科技(深圳)有限公司 身份验证方法及装置
CN105323218A (zh) * 2014-06-30 2016-02-10 腾讯科技(深圳)有限公司 身份验证方法及装置
CN105376202A (zh) * 2014-08-26 2016-03-02 腾讯科技(深圳)有限公司 验证交互方法和相关装置及通信系统
CN107454049A (zh) * 2016-06-01 2017-12-08 腾讯科技(深圳)有限公司 安全验证方法及相关装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105323218A (zh) * 2014-06-30 2016-02-10 腾讯科技(深圳)有限公司 身份验证方法及装置
CN105323066A (zh) * 2014-07-21 2016-02-10 腾讯科技(深圳)有限公司 身份验证方法及装置
CN105376202A (zh) * 2014-08-26 2016-03-02 腾讯科技(深圳)有限公司 验证交互方法和相关装置及通信系统
CN107454049A (zh) * 2016-06-01 2017-12-08 腾讯科技(深圳)有限公司 安全验证方法及相关装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110084030A (zh) * 2019-03-14 2019-08-02 咪咕文化科技有限公司 基于图片验证码的验证方法、装置及计算机可读存储介质
CN110309643A (zh) * 2019-05-30 2019-10-08 苏宁云计算有限公司 一种基于旋转匹配的图片验证方法及系统
CN110309643B (zh) * 2019-05-30 2021-08-06 南京苏宁加电子商务有限公司 一种基于旋转匹配的图片验证方法及系统
CN110308847A (zh) * 2019-05-31 2019-10-08 北京百度网讯科技有限公司 图片验证方法、装置、电子设备及计算机可读存储介质
CN111079119A (zh) * 2019-12-04 2020-04-28 北京达佳互联信息技术有限公司 验证方法、装置、设备及存储介质
CN111259367A (zh) * 2020-03-11 2020-06-09 北京弘远博学科技有限公司 基于登录古诗词验证码的生成方法
CN111666555A (zh) * 2020-06-03 2020-09-15 广州酷狗计算机科技有限公司 验证码生成方法、装置以及计算机存储介质
KR20210040309A (ko) * 2020-07-21 2021-04-13 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 픽처 검증 방법, 장치, 전자기기, 컴퓨터 판독 가능 기록 매체 및 컴퓨터 프로그램
CN111859354A (zh) * 2020-07-21 2020-10-30 百度在线网络技术(北京)有限公司 图片验证方法、装置、电子设备和计算机可读存储介质
JP2021152915A (ja) * 2020-07-21 2021-09-30 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ピクチャ検証方法、装置、電子設備、コンピュータ可読記憶媒体、及びプログラム
EP3828740A3 (en) * 2020-07-21 2021-10-06 Baidu Online Network Technology (Beijing) Co., Ltd. Captcha based on image rotation
JP7206325B2 (ja) 2020-07-21 2023-01-17 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド ピクチャ検証方法、装置、電子設備、コンピュータ可読記憶媒体、及びプログラム
KR102513334B1 (ko) * 2020-07-21 2023-03-24 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 픽처 검증 방법, 장치, 전자기기, 컴퓨터 판독 가능 기록 매체 및 컴퓨터 프로그램
CN111859354B (zh) * 2020-07-21 2023-09-01 百度在线网络技术(北京)有限公司 图片验证方法、装置、电子设备、存储介质和程序产品
CN112417418A (zh) * 2020-11-19 2021-02-26 刘一方 一种基于新型的验证码的验证方法
CN113992373A (zh) * 2021-10-20 2022-01-28 平安普惠企业管理有限公司 基于验证码的验证方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN109063453A (zh) 验证码实现方法、装置、系统、计算设备和存储介质
Chung et al. Development and evaluation of emerging design patterns for ubiquitous computing
Banga et al. Essential mobile interaction design: Perfecting interface design in mobile apps
US20180095734A1 (en) System and method for creating a universally compatible application development system
CN112639827A (zh) 从计算应用自动地生成对话式服务
CN108628944B (zh) 在线作业录入方法、客户端、服务器、计算机设备及介质
CN110020059A (zh) 用于包容性captcha的系统和方法
US10936815B2 (en) Removable spell checker device
CN108304762A (zh) 一种人体姿态匹配方法及其设备、存储介质、终端
CN110796712A (zh) 素材处理方法、装置以及电子设备、存储介质
CN106250756A (zh) 验证码的生成方法、验证方法及相应装置
Kloss Android apps with app inventor: The fast and easy way to build android apps
US10853029B2 (en) Computerized system including rules for a rendering system accessible to non-literate users via a touch screen
Drobnik Barcodes with iOS: Bringing together the digital and physical worlds
Flueckiger et al. The iPhone Apps. A Digital Culture of Interactivity
CN112396543B (zh) 一种通用题目解题思路可视化及智能引导方法与装置
CN110766997A (zh) 一种临摹展示方法、装置及存储介质
CN115048637A (zh) 一种基于Web端交互图片旋转的人机验证方法及系统
CN105677823B (zh) 一种问答整理的方法及装置
CN106157420A (zh) 一种抽奖轮盘的显示方法
Toyota et al. Easy handheld training: Interactive self-learning app for elderly smartphone novices
US20150350292A1 (en) Site management platform
KR20210023476A (ko) 확률 계산 기반 블록 코딩 교육 서비스 방법 및 그 시스템
Ray Sams Teach Yourself iPhone Application Development in 24 Hours, 2/e
Long et al. Cambridge International AS and A Level IT Coursebook with CD-ROM

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200811

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510665 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping radio square B tower 13 floor 02 unit self

Applicant before: Guangzhou Aijiuyou Information Technology Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20181221

RJ01 Rejection of invention patent application after publication