CN103927465A - 一种基于图形的验证码生成和验证方法 - Google Patents

一种基于图形的验证码生成和验证方法 Download PDF

Info

Publication number
CN103927465A
CN103927465A CN201410002885.9A CN201410002885A CN103927465A CN 103927465 A CN103927465 A CN 103927465A CN 201410002885 A CN201410002885 A CN 201410002885A CN 103927465 A CN103927465 A CN 103927465A
Authority
CN
China
Prior art keywords
graph
target
verification
geometric
targeted graphical
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
CN201410002885.9A
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201410002885.9A priority Critical patent/CN103927465A/zh
Publication of CN103927465A publication Critical patent/CN103927465A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了一种基于图形的验证码生成和验证方法。包括下面几个步骤:系统服务端在一张图片上画出一张由线条组合而成的大几何图作为目标图形,附近再随机生成几张大小一样形状各异的干扰几何图,然后再画出一张和目标图形类似的小几何图作为参照图形。需要验证时,系统客户端显示这些有很多几何图形的图片,再构造一个取景框;用户根据页面提示,用鼠标拖动取景框框住和参照小几何图形状相同的大图;客户端获取取景框的坐标并发给服务端。服务端获取坐标后,判断是否等于目标图形的坐标,如果是,则验证通过,否则验证失败。通过上述这种方式的验证,能有效增加程序自动识别验证码的难度,增强验证系统抗攻击能力。

Description

一种基于图形的验证码生成和验证方法
技术领域
本发明属于计算机信息技术领域,涉及到一种图形验证码的生成及其验证的技术。 
背景技术
随着网络技术的发展,各种业务在网络上得到了广泛的应用。这些业务在为网站聚集了大量人气的同时,也带来了很多“网络机器人”等虚假用户,这些由虚假用户带来的访问,消耗了宝贵的网络带宽,占用了大量的网站资源,干扰了正常的网站业务。为了区分访问网站的用户中哪些是真实有效的用户,哪些是由程序产生的,人们使用了验证码技术。所谓验证码,就是在一张图片上显示一些由数字、字母或文字组成的信息,同时使用干扰技术,使得人能识别出这些信息,而程序却很难识别;系统再要求访问者输入识别出来的信息,从而区分出访问者是人还是程序。在目前使用的验证码中,大部分是由数字或字母组成,这类验证码由于受字母、数字的个数限制,即使添加干扰,也已经能被程序识别,如果干扰因素添加太多(如对字母的变形太多),又会造成人眼识别率下降;还有些验证码使用了汉字,虽然增加了程序的识别难度,但也增加了用户输入的难度,特别是对于不会输入汉字的用户,造成了极大的使用不便。 
发明内容
验证流程及原理 
本发明提供了一种验证码的生成和验证的方法。分为服务端和客户端,服务端包括验证码图片生成模块,验证模块;客户端(浏览器)包括图片显示和验证码获取。
当需要对访问页面的用户进行验证时,客户端向服务端请求验证码图片。 
服务端图片生成模块生成一张验证码图片,图片上画出多个几何图形:一个随机生成的几何图(我们称为目标几何图),一个由目标几何图缩小数倍、旋转一定角度而得到的参考几何图, 几个和目标图大小相同形状各异的干扰几何图;在session中记录目标几何图左上角的坐标{X,Y};并将验证码图片返回给客户端。 
客户端从服务端获取验证码图片显示在页面上,并在图片上构造一个可移动的取景框。(如图2所示) 
用户按照页面文字提示,从图片上的多个几何图形中选出和参照几何图类似的目标几何图,并通过鼠标拖动取景框框住选中的目标几何图。
客户端获取取景框的左上角坐标{x,y},并传给服务端。 
服务端验证模块在收到客户端传过来的{x,y}后和session中保存的目标图左上角的坐标{X,Y}进行比较,如果相等,则返回验证通过,否则返回不通过。 
本发明所公开的验证系统相较于其他验证系统的优点在于: 
1、验证码图片为系统随机生成的几何图形,素材来源接近于无限,识别程序不能通过枚举来破解。
2、验证码的识别过程中,需要用户在多个相互交错的几何图形中找到类似于参照图形的目标图像。这个过程需要发挥人脑的联想和模糊处理的能力,程序自动识别的难度较大。 
3、本验证系统采用验证图片中特定图形位置作为验证码,用户不需要输入键盘输入,只需要通过拖动鼠标选择图形即可完成验证,界面友好。 
附图说明
图1为本系统生成验证码的流程图。 
图2为本系统生成的最终验证页面参考图 
具体实施方式
为了更好地描述本发明的设计意图,下面以一个具体的实施例来进行说明。 
(图1)为本系统生成验证码的流程图。 
【S101】:在步骤S101中,生成一张400×400(像素)的图片,用来显示生成的验证码。为描述方便,我们将图片左上角的顶点坐标定义为(0,0),右下角的顶点坐标定义为(400,400)。 
在图片的(0,50)和(400,50)两点之间画一条直线,将图片分成两个区域,上面为提示信息区,下面为验证区。 
【S102】:通过图形构造模块,随机构造一个100*100的几何图形(为描述方便,称其为:目标图),目标图具有以下特点: 
1、它能够被一个100*100的矩形完全框住。
2、当它被矩形框住时,必须有4个点在矩形的4条边上。 
将目标图画在图片的验证区中,位置随机,为保证目标图能完全显示,X坐标取值应该在[0,300],Y坐标取值应该在[50,300]之间。在session中记录随机产生的坐标值【X,Y】 
【S103】:将目标图复制一份(为描述方便,称其为:参考图),然后缩小参考图为50*50,并对参考图进行-30 到 +30度的随机旋转。在图片的提示信息区写上提示语“请拖动下面的选择框,框选和右边小图类似的大图:”,并在提示语后画出参考图。
【S104】:通过图形构造模块,随机构造n个(4<n<10)100×100的几何图形(为描述方便,称其为:干扰图),在图片上的验证区随机位置画出干扰图。 
将图片返回给客户端。  
图形构造模块实施例说明:
在本实施例中,我们通过4条贝兹曲线来构造几何图形(当然,我们也可以选用其他方式来构造几何图形)。
一条贝兹曲线由4个点构成:起始点、控制点1、控制点2、终止点,只要确定了4个点的坐标,也就确定了一条曲线。为了让最终的几何图形能够被100*100的矩形框框住,其中一条贝兹曲线的4各点这样选取: 
第一条横向曲线:
横向曲线1起始点:[x0,y0],x0=0,0<y0<100
横向曲线1控制点1:[x1,y1],0=<x1<50,y1=t*(100-y0)+y0)
横向曲线1控制点2:[x2,y2],50<x2<=100,y2=y3-t*y3
横向曲线1终止点:[x3,y3],x3=100,0<y3<100
(为了使曲线完全被矩形框住并且形态优美,控制点应该在一定范围内变化,根据经验,调整系数t的取值范围:  0.5—2)
起点和终点相同,控制点不同的两条贝兹曲线构成一个闭合的图形。一个横向和一个纵向闭合图形成十字相交,得到最终的几何图形。另外3条贝兹曲线4个点的坐标确定方法类似:
第二条横向曲线:
横向曲线2起始点 = [x0,y0] = 横向曲线1起始点
横向曲线2控制点1:[x1,y1],0=<x1<50,y2=y3-t*y3
横向曲线2控制点2:[x2,y2],50<x2<=100,y1=t*(100-y0)+y0)
横向曲线2终止点 = [x3,y3] = 横向曲线1终止点
第一条纵向曲线:
纵向曲线1起始点 = [x0,y0],0<x0<100,y0=0
纵向曲线1控制点1:[x1,y1],x1=t*(100-x0)+x0),0=<y1<50
纵向曲线1控制点2:[x2,y2],x2=x3-t*x3,50<y2<=100
纵向曲线1终止点 = [x3,y3],0<x3<100,y3=100
第二条纵向曲线:
纵向曲线2起始点 = [x0,y0] = 纵向曲线1起始点
纵向曲线2控制点1:[x1,y1],x2=x0-t*x0,50<y2<=100
纵向曲线2控制点2:[x2,y2],x1=t*(100-x3)+x3),0=<y1<50
纵向曲线2终止点 = [x3,y3] = 纵向曲线1终止点。

Claims (4)

1.一种基于图形的验证码生成和验证方法
其特征在于:
系统在一张图片上生成一个目标图,再通过将目标图进行组合、旋转、缩放后生成一个参考图,同时生成一些干扰图形,用户需要根据参考图找出在干扰图中的目标图;用户在识别出目标图形后,通过拖动系统提供的选择框框选住目标图形,系统获取选择框的坐标和预先保存的目标图形坐标比较,据此判断用户是否正确识别并框选中了目标图形(比较结果相同则表示通过了验证)。
2.根据权利要求1的说明,其特征在于给出了一种特别的验证码生成方式:通过将参考图形进行组合、旋转、缩放后生成一个目标图作为验证码。
3.根据权利要求1的说明,其特征在于给出了一种特别的验证码输入方式: 提供了一个可以拖动的选择框供用户框选自己识别出来的目标图形。
4.根据权利要求1的说明,其特征在于给出了一种特别的验证方式:通过比较选择框的坐标和目标图形的坐标来判断用户是否正确识别并框选中了目标图形。
CN201410002885.9A 2014-01-05 2014-01-05 一种基于图形的验证码生成和验证方法 Pending CN103927465A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410002885.9A CN103927465A (zh) 2014-01-05 2014-01-05 一种基于图形的验证码生成和验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410002885.9A CN103927465A (zh) 2014-01-05 2014-01-05 一种基于图形的验证码生成和验证方法

Publications (1)

Publication Number Publication Date
CN103927465A true CN103927465A (zh) 2014-07-16

Family

ID=51145683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410002885.9A Pending CN103927465A (zh) 2014-01-05 2014-01-05 一种基于图形的验证码生成和验证方法

Country Status (1)

Country Link
CN (1) CN103927465A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794385A (zh) * 2015-03-03 2015-07-22 新浪网技术(中国)有限公司 一种信息验证方法及装置
WO2016011744A1 (zh) * 2014-07-25 2016-01-28 小米科技有限责任公司 使用验证码进行验证的方法及装置
CN105450604A (zh) * 2014-08-25 2016-03-30 苏宁云商集团股份有限公司 基于图形特征的安全验证方法和装置
CN105912923A (zh) * 2016-06-30 2016-08-31 北京奇虎科技有限公司 移动终端验证方法和装置
CN107066189A (zh) * 2017-05-15 2017-08-18 惠州Tcl移动通信有限公司 一种基于移动终端的拼图解锁方法及系统
CN107301337A (zh) * 2016-04-14 2017-10-27 腾讯科技(深圳)有限公司 信息验证方法和装置
CN107704752A (zh) * 2017-10-31 2018-02-16 湖北文理学院 通信建立方法、装置及通信系统
CN108121906A (zh) * 2016-11-28 2018-06-05 阿里巴巴集团控股有限公司 一种验证方法、装置以及计算设备
CN109241724A (zh) * 2018-08-10 2019-01-18 北京金山云网络技术有限公司 一种校验方法及装置
CN109933971A (zh) * 2019-02-27 2019-06-25 珠海格力电器股份有限公司 一种基于验证码的验证方法、装置、电子设备及存储介质
CN110213205A (zh) * 2018-03-27 2019-09-06 腾讯科技(深圳)有限公司 验证方法、装置及设备
US10866947B2 (en) 2017-03-10 2020-12-15 Sap Se Context based chart validations
CN112839026A (zh) * 2020-11-30 2021-05-25 中冶华天南京工程技术有限公司 基于随机网格与随机水印轮廓的行为验证码生成及验证方法
CN114465724A (zh) * 2022-02-24 2022-05-10 深圳软牛科技有限公司 一种验证码的生成及验证方法、客户端、服务端及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980126A (zh) * 2005-12-08 2007-06-13 上海盛大网络发展有限公司 图片验证码的实现方法
US20100228804A1 (en) * 2009-03-04 2010-09-09 Yahoo! Inc. Constructing image captchas utilizing private information of the images
CN103310139A (zh) * 2013-05-10 2013-09-18 百度在线网络技术(北京)有限公司 一种输入验证方法和输入验证装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980126A (zh) * 2005-12-08 2007-06-13 上海盛大网络发展有限公司 图片验证码的实现方法
US20100228804A1 (en) * 2009-03-04 2010-09-09 Yahoo! Inc. Constructing image captchas utilizing private information of the images
CN103310139A (zh) * 2013-05-10 2013-09-18 百度在线网络技术(北京)有限公司 一种输入验证方法和输入验证装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016011744A1 (zh) * 2014-07-25 2016-01-28 小米科技有限责任公司 使用验证码进行验证的方法及装置
CN105450604A (zh) * 2014-08-25 2016-03-30 苏宁云商集团股份有限公司 基于图形特征的安全验证方法和装置
CN104794385A (zh) * 2015-03-03 2015-07-22 新浪网技术(中国)有限公司 一种信息验证方法及装置
CN107301337A (zh) * 2016-04-14 2017-10-27 腾讯科技(深圳)有限公司 信息验证方法和装置
CN105912923A (zh) * 2016-06-30 2016-08-31 北京奇虎科技有限公司 移动终端验证方法和装置
CN108121906A (zh) * 2016-11-28 2018-06-05 阿里巴巴集团控股有限公司 一种验证方法、装置以及计算设备
US10866947B2 (en) 2017-03-10 2020-12-15 Sap Se Context based chart validations
CN107066189A (zh) * 2017-05-15 2017-08-18 惠州Tcl移动通信有限公司 一种基于移动终端的拼图解锁方法及系统
CN107704752A (zh) * 2017-10-31 2018-02-16 湖北文理学院 通信建立方法、装置及通信系统
CN110213205B (zh) * 2018-03-27 2021-08-24 腾讯科技(深圳)有限公司 验证方法、装置及设备
CN110213205A (zh) * 2018-03-27 2019-09-06 腾讯科技(深圳)有限公司 验证方法、装置及设备
CN109241724A (zh) * 2018-08-10 2019-01-18 北京金山云网络技术有限公司 一种校验方法及装置
CN109933971A (zh) * 2019-02-27 2019-06-25 珠海格力电器股份有限公司 一种基于验证码的验证方法、装置、电子设备及存储介质
CN112839026A (zh) * 2020-11-30 2021-05-25 中冶华天南京工程技术有限公司 基于随机网格与随机水印轮廓的行为验证码生成及验证方法
CN112839026B (zh) * 2020-11-30 2022-07-26 中冶华天南京工程技术有限公司 基于随机网格与随机水印轮廓的行为验证码生成及验证方法
CN114465724A (zh) * 2022-02-24 2022-05-10 深圳软牛科技有限公司 一种验证码的生成及验证方法、客户端、服务端及系统
CN114465724B (zh) * 2022-02-24 2023-11-03 深圳软牛科技有限公司 一种验证码的生成及验证方法、客户端、服务端及系统

Similar Documents

Publication Publication Date Title
CN103927465A (zh) 一种基于图形的验证码生成和验证方法
US10657243B2 (en) Variation analysis-based public turing test to tell computers and humans apart
Suo et al. Graphical passwords: A survey
US8510814B2 (en) Method and apparatus for network authentication of human interaction and user identity
WO2019095993A1 (zh) 安全验证方法及相关装置
CN102957682A (zh) 一种用于基于验证安全等级提供图片验证码的方法与设备
US20120272302A1 (en) Human User Verification
CN108989269B (zh) 获取验证码的方法、装置和系统
von Zezschwitz et al. On quantifying the effective password space of grid-based unlock gestures
WO2016124066A1 (zh) 一种图片验证码生成方法及系统
US8935767B2 (en) Overlay human interactive proof system and techniques
JP6532523B2 (ja) 手書きを使用するユーザ識別登録の管理
Conti et al. CAPTCHaStar! A novel CAPTCHA based on interactive shape discovery
CN110246198B (zh) 选字验证码生成方法、装置、电子设备及存储介质
CN106250756A (zh) 验证码的生成方法、验证方法及相应装置
Shaw et al. Analyzing the articulation features of children's touchscreen gestures
Suo A design and analysis of graphical password
CN107844696B (zh) 一种验证码干扰方法及服务器
Rao et al. A study of various graphical passwords authentication schemes using ai hans peter wickelgren approach
US20120023549A1 (en) CAPTCHA AND reCAPTCHA WITH SINOGRAPHS
US11888841B2 (en) Multi-factor authentication using symbols
CN104679538B (zh) 一种利用笔迹来执行操作的方法和客户端
JP6168645B2 (ja) 反転チューリングテスト方法およびアクセス認証方法
Rusu et al. Securing the web using human perception and visual object interpretation
Chen et al. Data‐driven Handwriting Synthesis in a Conjoined Manner

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140716

WD01 Invention patent application deemed withdrawn after publication