CN104657654B - 一种利用人眼视觉补偿原理的图片验证码生成方法 - Google Patents
一种利用人眼视觉补偿原理的图片验证码生成方法 Download PDFInfo
- Publication number
- CN104657654B CN104657654B CN201410805928.7A CN201410805928A CN104657654B CN 104657654 B CN104657654 B CN 104657654B CN 201410805928 A CN201410805928 A CN 201410805928A CN 104657654 B CN104657654 B CN 104657654B
- Authority
- CN
- China
- Prior art keywords
- picture
- human eye
- character
- random
- identifying code
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
Abstract
本发明公开了一种利用人眼视觉补偿原理的图片验证码生成方法,包括以下步骤:1)生成一个随机长度的随机字符串,其长度控制在某一设定范围之内;2)选用一种不等宽字体,将所述随机字符串以非背景色写入图片画布;3)以背景色再次将所述随机字符串写入图片画布,各个字符的字体形态与步骤2)中的字体形态完全相同,在图片画布中的位置向左上角移动一个像素;4)对步骤3)所生成的验证码图片进行笔划随机擦除处理,擦除比例为设定值。本发明生成的图片验证码,人类可以利用人眼视觉补偿原理将其还原成立体文字,从而轻松识别;验证码文字或字符的笔划非常纤细且不连续,残缺不全,从而导致机器的识别困难。
Description
技术领域
本发明公布了一种利用人眼视觉补偿原理的图片验证码生成方法, 人类可以利用人眼视觉补偿原理轻松识别, 而机器则难以还原,属于计算机信息技术领域。
背景技术
随着互联网的迅猛发展, 互联网上的垃圾信息也泛滥成灾, 特别是机器人制造的垃圾信息最为严重, 所以CAPTCHA技术应运而生。 CAPTCHA是全自动区分计算机和人类的图灵测试的英文缩写, 其简称为验证码, 其中图片验证码应用最为广泛。 图片验证码是利用计算机难以有效识别某些图片文字而人类可以识别的技术, 来区分机器和人类。但是最近几年, 图片验证码识别技术的发展也非常快速, 绝大多数的简单验证码识别率都非常高, 甚至很多都达到100%的识别率, 从而导致这些验证码成了摆设, 除了给真正的人类带来麻烦以外, 没产生任何阻止机器人滥发垃圾信息的步伐。另一方面, 以Google为代表, 通过扭曲变形技术产生的验证码,虽然达到了机器识别率很低的效果, 但是人类也非常难以识别, 给图片验证码的应用带来不利影响。
发明内容
本发明所要解决的技术问题是提供一种图片验证码,使人眼可以轻松识别,机器识别率低,从而实现有效对机器和人类进行甄别。
本发明就是为解决这一矛盾而产生的。本发明认为, 可以利用人类的某些优势而机器不具备这类优势, 如人眼视觉补偿原理(俗称脑补), 来生成这样的一类图片验证码。
为解决上述技术问题,本发明提供一种利用人眼视觉补偿原理的图片验证码生成方法,其特征在于,包括以下步骤:
1)生成一个随机长度的随机字符串, 其长度控制在某一设定范围之内;
在所述步骤1)中,字符不限于英文和数字,如果是英文数字, 要排除人类难以识别的字符,如Iil1 Oo0 Jj r等;
2)选用一种不等宽字体, 将所述随机字符串以非背景色写入图片画布;
在所述步骤2)中,优先选用所述字体的粗体斜体, 字体大小控制在某一随机范围内,各个字符的大小相同或是不同;
3)以背景色再次将所述随机字符串写入图片画布, 各个字符的字体形态与步骤2)中的字体形态完全相同,所述随机字符串在图片画布中的位置向左上角移动一个像素;
本步骤的目的是擦除验证码文字或字符的绝大部分笔划, 留下的笔划很少, 但是人类可以利用人眼视觉补偿原理将其还原成立体文字;
4)对步骤3)所生成的验证码图片进行笔划随机擦除处理, 擦除比例为经验值,擦除比例大致是1/5, 以白背景黑字来说, 就是剩下的立体文字中, 去掉大约1/5的黑点.根据统计, 未擦除之前, 黑点占文字所占空间(注意不是全部画布)大约5%以下, 擦除之后一般在4%以下,擦除后的笔划变少, 连续性变差, 散点变多, 但是人类利用人眼视觉补偿原理仍然能够识别;
5)对验证码图片增加随机干扰噪点, 增加的密度为设定值(增加比例为1%至3%),增加的噪点与原验证码文字中的散点笔划难以被机器有效区分, 但是对人眼可以识别;
6)对验证码图片增加随机干扰线条, 随机线为直线、曲线、连续线条或断点线条,增加的线条个数以不完全覆盖验证码内容为限,目的是使机器难以区分干扰线条和验证码文字笔划, 但是又不致对人类构成识别困难;
7)对验证码图片增加干扰文字。干扰文字可以为广告语, 从而产生商业收益, 也可以是有意义的干扰问题, 其干扰问题构成对验证码内容的不同处理, 如要求使用者只输入验证码内容的一部分等;干扰文字一方面造成机器对图片的识别困难, 另一方面造成机器对图片的理解困难, 而不构成人类的理解和识别困难。
本发明所达到的有益效果:
本发明公开了一种利用人眼视觉补偿原理的图片验证码的生成方法,本发明生成的图片验证码,人类可以利用人眼视觉补偿原理将其还原成立体文字,从而轻松识别。上述验证码文字或字符的笔划非常纤细且不连续,残缺不全,从而导致机器的识别困难。本发明更进一步的对验证码图片增加干扰因素,如增加随机噪点,增加随机干扰直线和/或曲线,增加随机干扰文字如广告语,增加随机干扰问题如要求使用者输入验证码内容的一部分等。上述干扰问题可以以某种格式随机组合生成,可以有效对机器和人类进行甄别。
附图说明
图1是本发明的图片验证码示例图;
图2是能利用人类人眼视觉补偿原理还原的立体文字图片验证码示例图;
图3是图2的验证码经过随机笔划擦除后的图片示例图;
图4是图3的验证码增加了随机噪点后的图片示例图;
图5是图4的验证码增加了随机干扰线条后的图片示例图;
图6是图片验证码的生成过程流程图。
具体实施方式
下面结合附图对本发明的图片验证码生成过程进一步详细说明。
本发明的利用人眼视觉补偿原理的图片验证码生成方法,包括以下步骤:
步骤一: 生成一个随机长度的随机字符串, 其长度控制在某一设定范围之内,其中字符不限于英文数字; 如果是英文数字, 要排除人类难以识别的字符;
步骤二: 选用一种不等宽字体,将所述随机字符串以非背景色写入图片画布; 优先选用该字体的粗体斜体,字体大小控制在某一随机范围内;各个字符的大小可以相同或不同;
步骤三: 以背景色再次将上述随机字符串写入图片画布, 各个字符的字体形态必须与步骤二的完全相同, 其在图片画布中的位置必须向左上角移动一个像素;本步骤的目的是擦除验证码文字或字符的绝大部分笔划, 留下的笔划很少(通常占文字所占空间的5%左右), 但是人类可以利用人眼视觉补偿原理将其还原成立体文字, 如附图2所示;
步骤四: 对步骤三所生成的验证码图片进行笔划随机擦除处理, 其擦除比例为经验值, 通常为1/5左右, 将剩下的笔划控制在文字所占空间的4%以下,擦除后的笔划更少, 连续性更差, 散点更多, 但是人类利用人眼视觉补偿原理仍然可以识别, 如附图3所示;
步骤五: 对验证码图片增加随机干扰噪点, 增加的密度为经验值, 因为经过处理的验证码文字,其笔划连续性不强,存在很多散点,从而与噪点之间的界限模糊, 增加的噪点与原先验证码文字中的散点笔划难以被机器有效区分, 但是对人类识别不构成困难,如附图4所示;
步骤六: 对验证码图片增加随机干扰线条, 随机线条可以是直线, 也可以是曲线, 可以是连续线条, 也可以是断点线条, 要求其特征尽量向验证码文字或字符的剩余笔划靠拢, 从而给机器识别增加更多的干扰因素,增加的线条个数为经验值, 目的是让机器难以区分干扰线条和验证码文字笔划, 但是又不致对人类构成识别困难(目前认为几条穿过验证码文字的直线和贝塞尔曲线的效果就很好了), 如附图5所示;
步骤七: 对验证码图片增加干扰文字, 对于上述干扰文字, 其生成方式多种多样, 可以在系统后台进行定制。将干扰文字分为二类, 第一类为纯粹的干扰文字, 可以是广告语,可以增加商业收益, 也可以是其他干扰文字;第二类为有意义的干扰问题, 比如要求使用者只输入验证码文字中的一部分。对上述干扰问题增加前置条件, 还可以给机器识别设置陷阱(捕获机器人), 如”如果你是人类, 请输入第几到第几个字符”和”如果你是机器, 请忽略前2个字符”等等, 其问题可以自由组合, 人类可以轻松理解并回答, 而机器则非常难以理解. 可以建立一个问题模型, 用软件随机组合出问题, 从而将机器识别的难度提高到类似或近似人工智能的难度。
干扰问题生成过程包括以下步骤:
步骤一: 建立干扰问题各个部件的模型, 如干扰问题包括前置条件, 对验证码内容的取舍动作(包括从第几个到第几个字符,或者从第几个开始要多少长度的字符,或者忽略或舍去某个位置某个长度的字符等),对动作施加的限制等;
步骤二: 建立各个部件的词库, 如限制条件前置词汇可以包括“如果”, “假如”等, 动作限制词汇可以有“要”和“不要”等, 动作动词有“忽略”或者“舍去”等各种同义近义词或者反义词;动作中如果含有涉及字符串位置和长度的地方,需要以变量代替,这些变量在实际生成干扰问题时再代入实际所需要的数字;
步骤三: 将以上各部件进行随机组合(其中涉及字符串位置和长度的变量, 需要在生成时在某个范围内取随机值), 即可生成各种干扰问题, 举例如下:
请输入第2到第8个字符, 谢谢!
如果你是人类,请忽略前2个字符, 谢谢!
如果你是机器人,请舍去第2个字符, 谢谢!
如果你不是机器人,请不要舍去最后2个字符, 谢谢!
如果你是纯人类,请不要忽略最后3个字符, 谢谢!
如果你是真正的人类,请输入第3到第8个字符, 谢谢!
验证码文字或字符可以是中文或其他文字, 并不仅限于英文字符。发明者在设计验证码时, 根据其经验, 在英文数字字符中排除了一些人类难以准确识别的字符, 如Iil1 Oo0 Jj r等. 这些排除的字符量很少, 不致会导致字符空间太小。本发明对英文字符的生成时刻意区分大小写,从而增加字符空间的大小, 但验证时会忽略大小写。本发明选用英文数字字符的字体时, 会优先选用不等宽字体, 并优先选择粗体斜体,增加变化。
本发明生成验证码文字或字符时, 会采用限定字符长度范围的随机长度, 然后根据干扰问题中的随机掐头去尾或忽略中间某些随机长度的字符, 进一步增加验证码文字或字符的长度的随机性, 从而给机器暴力破解增加难度。
以上已以较佳实施例公开了本发明,然其并非用以限制本发明,凡采用等同替换或者等效变换方式所获得的技术方案,均落在本发明的保护范围之内。
Claims (4)
1.一种利用人眼视觉补偿原理的图片验证码生成方法,其特征在于,包括以下步骤:
1)生成一个随机长度的随机字符串,其长度控制在某一设定范围之内;
2)选用一种不等宽字体,将所述随机字符串以非背景色写入图片画布;
3)以背景色再次将所述随机字符串写入图片画布,各个字符的字体形态与步骤2)中的字体形态完全相同,在图片画布中的位置向左上角移动一个像素;
4)对步骤3)所生成的验证码图片进行笔划随机擦除处理,擦除比例为设定值,擦除后的笔划变少,连续性变差,散点变多,但是人类利用人眼视觉补偿原理仍然能够识别;
5)对验证码图片增加随机干扰噪点,增加的密度为设定值,增加的噪点与原验证码文字中的散点笔划难以被机器有效区分,但是对人眼可以识别;
6)对验证码图片增加随机干扰线条,目的是使机器难以区分干扰线条和验证码文字笔划,但是又不致对人类构成识别困难;
7)对验证码图片增加干扰文字,干扰文字一方面造成机器对图片的识别困难,另一方面造成机器对图片的理解困难,而不构成人类的理解和识别困难,所述干扰文字包括广告语和干扰问题,干扰问题生成过程包括以下步骤:
71)建立干扰问题各个部件的模型;
72)建立各个部件的词库,包括限制条件前置词汇、动作限制词汇和动作动词;动作动词中如果含有字符串位置和长度,则以变量代替,所述变量在实际生成干扰问题时再代入实际所需要的数字;
73)将以上各部件进行随机组合,即生成各种干扰问题。
2.根据权利要求1所述的利用人眼视觉补偿原理的图片验证码生成方法,其特征在于:在所述步骤2)中,优先选用所述字体的粗体斜体,字体大小控制在人眼能看见的范围内,各个字符的大小相同或不同。
3.根据权利要求1所述的利用人眼视觉补偿原理的图片验证码生成方法,其特征在于:在所述步骤6)中,所述随机线为直线、曲线、连续线条或断点线条,增加的线条个数以不完全覆盖验证码内容为限。
4.根据权利要求1所述的利用人眼视觉补偿原理的图片验证码生成方法,其特征在于:在所述步骤71)中,所述模型包括干扰问题的前置条件,前置条件包括对验证码内容的取舍动作和对动作施加的限制,所述取舍动作包括从第几个到第几个字符,或者从第几个开始要多少长度的字符,或者忽略、舍去某个位置某个长度的字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410805928.7A CN104657654B (zh) | 2014-12-22 | 2014-12-22 | 一种利用人眼视觉补偿原理的图片验证码生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410805928.7A CN104657654B (zh) | 2014-12-22 | 2014-12-22 | 一种利用人眼视觉补偿原理的图片验证码生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657654A CN104657654A (zh) | 2015-05-27 |
CN104657654B true CN104657654B (zh) | 2017-05-31 |
Family
ID=53248765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410805928.7A Active CN104657654B (zh) | 2014-12-22 | 2014-12-22 | 一种利用人眼视觉补偿原理的图片验证码生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657654B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107154924B (zh) * | 2016-03-04 | 2021-01-05 | 阿里巴巴集团控股有限公司 | 基于验证码的验证处理方法及装置 |
CN105787340B (zh) * | 2016-03-18 | 2018-09-18 | 厦门大学嘉庚学院 | 基于文本粘连与视觉补偿的图片验证码实现方法 |
CN106295306B (zh) * | 2016-08-15 | 2019-02-01 | 长春工程学院 | 一种图片验证码的生成方法 |
CN110348450A (zh) * | 2019-07-15 | 2019-10-18 | 中国工商银行股份有限公司 | 用于图像验证码的安全评估方法、装置和计算机系统 |
CN110443028A (zh) * | 2019-08-14 | 2019-11-12 | 陶从丰 | 验证码的生成验证方法及装置、电子产品 |
CN110443027A (zh) * | 2019-08-14 | 2019-11-12 | 陶从丰 | 验证码的生成验证方法及装置、电子产品 |
CN110443026A (zh) * | 2019-08-14 | 2019-11-12 | 陶从丰 | 验证码的生成验证方法及装置、电子产品 |
CN111223438B (zh) * | 2020-03-11 | 2022-11-04 | Tcl华星光电技术有限公司 | 像素补偿表的压缩方法及装置 |
CN111953647B (zh) * | 2020-06-22 | 2022-09-27 | 北京百度网讯科技有限公司 | 安全校验方法、装置、电子设备和存储介质 |
CN113449281A (zh) * | 2021-07-14 | 2021-09-28 | 上海少侠网络科技有限公司 | 基于人类视觉错觉的无法破解的Captcha技术 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923702A (zh) * | 2010-08-25 | 2010-12-22 | 郝红卫 | 一种图片验证码的生成方法 |
CN102298763A (zh) * | 2010-06-28 | 2011-12-28 | 腾讯科技(北京)有限公司 | 一种图片验证码的生成方法及系统 |
CN102750485A (zh) * | 2012-06-29 | 2012-10-24 | 宋超 | 一种验证码图片加密算法 |
CN103106361A (zh) * | 2011-11-15 | 2013-05-15 | 北京新媒传信科技有限公司 | 一种增强图片验证码安全性的方法和装置 |
EP2674888A1 (en) * | 2012-06-13 | 2013-12-18 | Gemalto SA | System and method for validating a user of an account using a token |
CN103870740A (zh) * | 2012-12-14 | 2014-06-18 | 深圳市腾讯计算机系统有限公司 | 图像验证码的实现方法和系统 |
CN103942486A (zh) * | 2013-01-17 | 2014-07-23 | 上海博路信息技术有限公司 | 一种图像阵列的验证码 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101416537B1 (ko) * | 2012-04-18 | 2014-07-09 | 주식회사 로웸 | 입력 패턴이 결합된 아이콘을 이용한 사용자 인증 방법 및 패스워드 입력 장치 |
-
2014
- 2014-12-22 CN CN201410805928.7A patent/CN104657654B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298763A (zh) * | 2010-06-28 | 2011-12-28 | 腾讯科技(北京)有限公司 | 一种图片验证码的生成方法及系统 |
CN101923702A (zh) * | 2010-08-25 | 2010-12-22 | 郝红卫 | 一种图片验证码的生成方法 |
CN103106361A (zh) * | 2011-11-15 | 2013-05-15 | 北京新媒传信科技有限公司 | 一种增强图片验证码安全性的方法和装置 |
EP2674888A1 (en) * | 2012-06-13 | 2013-12-18 | Gemalto SA | System and method for validating a user of an account using a token |
CN102750485A (zh) * | 2012-06-29 | 2012-10-24 | 宋超 | 一种验证码图片加密算法 |
CN103870740A (zh) * | 2012-12-14 | 2014-06-18 | 深圳市腾讯计算机系统有限公司 | 图像验证码的实现方法和系统 |
CN103942486A (zh) * | 2013-01-17 | 2014-07-23 | 上海博路信息技术有限公司 | 一种图像阵列的验证码 |
Also Published As
Publication number | Publication date |
---|---|
CN104657654A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657654B (zh) | 一种利用人眼视觉补偿原理的图片验证码生成方法 | |
US10664695B2 (en) | System and method for managing digital ink typesetting | |
Liwicki et al. | HMM-based on-line recognition of handwritten whiteboard notes | |
KR102473543B1 (ko) | 디지털 잉크 상호작용을 위한 시스템 및 방법 | |
CN105488544A (zh) | 一种描红临摹笔迹识别的方法及系统 | |
CN101308578A (zh) | 一种手写汉字美化方法 | |
US7702145B2 (en) | Adapting a neural network for individual style | |
KR102073388B1 (ko) | 이미지에 작가의 화풍을 적용하여 제공하는 방법, 서버 및 프로그램 | |
Elarian et al. | Handwriting synthesis: classifications and techniques | |
US20200005086A1 (en) | Deep learning-based automatic gesture recognition method and system | |
US20230008529A1 (en) | Gesture stroke recognition in touch-based user interface input | |
KR20220024146A (ko) | 자유 핸드라이팅 모드에서 텍스트 핸드라이팅 입력의 처리 | |
CN109857322B (zh) | 一种基于安卓的画笔宽度控制方法和装置 | |
CN107665186B (zh) | 一种特有字体生成方法 | |
CN112463912A (zh) | 一种基于树莓派和循环神经网络的简笔画识别与生成方法 | |
CN113239967A (zh) | 文字识别模型训练方法、识别方法、相关设备及存储介质 | |
US11393231B2 (en) | System and method for text line extraction | |
CN106250035B (zh) | 动态生成个人化手写字型的系统和方法 | |
KR20060096208A (ko) | 문자인식 시스템의 필기체 표시방법 | |
CN114511853B (zh) | 一种文字图像书写轨迹恢复效果判别方法 | |
US7929768B2 (en) | Cursive handwriting recognition with hierarchical prototype search | |
KR102212994B1 (ko) | 폰트 자동 생성 장치 및 방법 | |
CN104850819A (zh) | 信息处理方法及电子设备 | |
KR102151780B1 (ko) | 컴퓨팅 장치의 하나 이상의 프로세서에서 수행되는, 필체를 통해 생성한 폰트를 이용하는 드로잉 방법, 상기 방법을 실행하기 위해 컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램 및 필체를 통해 생성한 폰트를 이용하는 드로잉 시스템 | |
KR101989960B1 (ko) | 복수 개의 기계학습 모델을 사용한 실시간 필기 인식 방법, 이를 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 실시간 필기 인식 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |