CN108874756B - 一种验证码优化方法 - Google Patents

一种验证码优化方法 Download PDF

Info

Publication number
CN108874756B
CN108874756B CN201810697959.3A CN201810697959A CN108874756B CN 108874756 B CN108874756 B CN 108874756B CN 201810697959 A CN201810697959 A CN 201810697959A CN 108874756 B CN108874756 B CN 108874756B
Authority
CN
China
Prior art keywords
character
characters
verification code
easy
value
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
Application number
CN201810697959.3A
Other languages
English (en)
Other versions
CN108874756A (zh
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.)
Guangdong Zhimeiyuntu Tech Corp ltd
Original Assignee
Guangdong Zhimeiyuntu Tech Corp 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 Guangdong Zhimeiyuntu Tech Corp ltd filed Critical Guangdong Zhimeiyuntu Tech Corp ltd
Priority to CN201810697959.3A priority Critical patent/CN108874756B/zh
Publication of CN108874756A publication Critical patent/CN108874756A/zh
Application granted granted Critical
Publication of CN108874756B publication Critical patent/CN108874756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Character Discrimination (AREA)

Abstract

本发明公开了一种验证码优化方法,包括以下步骤:S1,提取每个字符的特征值;S2,根据特征值计算字符的相似度表征值;S3,根据字符相似度表征值将字符区分为易混淆字符组和不易混淆字符组;S4,计算不易混淆字符组中每个字符与其他字符的键盘距离;S5,在不易混淆字符组中随机生成验证码第一字符;S6,根据不易混淆字符组中其他字符与验证码第一字符的键盘距离筛选易操作字符组;S7,在易操作字符组中随机生成验证码的其他字符,与验证码第一字符组成完整的验证码并显示。这种随机验证码在保留了可以进行人机验证功能的前提下,解决了目前验证码存在的难识别,难记忆,难输入的问题。

Description

一种验证码优化方法
技术领域
本发明涉及安全验证领域,尤其涉及一种验证码的生成方法。
背景技术
信息时代的今天,为了信息访问的安全,出现了人机验证技术,通常的人机验证技术是指验证码。验证码可以防止恶意破解密码,有效阻止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上使用验证码是现在很多网站通行的方式。目前常用的验证码虽然有多种类型,但总体而言验证码均为纯数字、纯字母、或者数字和字母混合的随机字符。
目前常用的随机字符组成的验证码可以有效的防止恶意破解密码,却依然存在一些缺点。具体而言,字母或数字随机组成的验证码中存在难以辨认的字符,辨识难度大的字符如:“0”(数字0)、“O”(大写o)、“o”(小写o)、“D”“Q”,“1”、“i”、“I”(大写i)、“l”(小写L),“5”、“S”、“s”,“6”、“b”,“8”、“B”。等。这些字符随机组成验证码会使用户难以识别,如果用户也无法识别验证码,那么验证码的便无法完成人机验证,这样设置的验证码也就失去了设置的意义。其次,因为目前的验证码都是随机生成的,随机验证码不便于阅读记忆,由于验证码是在数字和字母中随机出现的几个字符,并不利于人阅读,阅读不方便,输入时也成了门槛。再则,随机验证码的输入不方便,由于每个数字、字母距离不同,且随机出现,用户输入时比较麻烦。在手机上输入更为明显。可能会出现数字和字母键盘来回切换的问题。对此,实际生活中需要一种可以提高用户输入验证码效率,优化验证码阅读体验,并且还能达到人机验证效果的验证码生成方法,以解决目前验证码存在难识别,难记忆,难输入的问题。
发明内容
本发明提供了一种验证码优化方法,旨在解决目前的验证码存在难识别,难记忆,难输入的问题。
为实现上述目的,本发明提供了一种验证码优化方法,包括以下步骤:
S1,提取每个字符的特征值;
S2,根据特征值计算字符的相似度表征值;
S3,根据字符相似度表征值将字符区分为易混淆字符组和不易混淆字符组;
S4,计算不易混淆字符组中每个字符与其他字符的键盘距离;
S5,在不易混淆字符组中随机生成验证码第一字符;
S6,根据不易混淆字符组中其他字符与验证码第一字符的键盘距离筛选易操作字符组;
S7,在易操作字符组中随机生成验证码的其他字符,与验证码第一字符组成完整的验证码并显示。
与现有技术相比,本发明公开的一种验证码优化方法,通过计算任意两个字符件的相似度表征值确定字符的相似程度,将相似程度高,容易混淆的字符作为易混淆字符,将相似程度较低,不易混淆的字符作为不易混淆字符。所生成的验证码在不易混淆字符中随机生成,不存在难识别的易混淆字符,从而解决了目前验证码存在的难识别的问题。并且,该种验证码优化还计算不易混淆字符组中每个字符与其他字符的键盘距离,通过键盘距离选择位置较为靠近的字符作为易操作字符,在易操作字符中选择生成验证码,保证了验证码中的字符都是集中分布在某一区域的,使用输入验证码时简单方便,解决了目前验证存在的难输入的问题。同时,本发明中的字符间键盘距离不是针对预设的输入框进行计算,而是截取用户的输入框进行计算,这样的计算方式一方面保证了计算得到的键盘距离真实准确,适用于任何输入框类型,另一方面,也因为输入框为日常用户使用的输入框,用户熟悉字符位置,而生成的验证码的字符又相对靠近,这样便于用户记忆验证码内容,解决了目前验证码存在的难记忆的问题。本发明提供的一种验证码优化方法,通过计算字符的相似度表征值区分易混淆字符和不易混淆字符,在不易混淆字符中审查验证码的第一个字符,又根据第一个字符在不易混淆字符组中筛选易操作字符组,剩余的验证码字符在易操作字符组中随机生成,构成了随机验证码。这种随机验证码在保留了可以进行人机验证功能的前提下,解决了目前验证码存在的难识别,难记忆,难输入的问题。提供了一种可以提高用户输入验证码效率,优化验证码阅读体验,并且还能达到人机验证效果的验证码生成方法。
进一步,一种验证码优化方法,包括以下步骤:
S1,提取每个字符的特征值;
S2,根据特征值计算字符的相似度表征值;
S3,根据字符相似度表征值将字符区分为易混淆字符组和不易混淆字符组;
S4,在易混淆字符组中随机生成验证码。
本发明还提供一种验证码优化方法,通过计算任意两个字符件的相似度表征值确定字符的相似程度,将相似程度高,容易混淆的字符作为易混淆字符,将相似程度较低,不易混淆的字符作为不易混淆字符。所生成的验证码在易混淆字符中随机生成,所生成的验证码难以识别,难以记忆,难以输入,在安全度要求高的场合,使用这种难度非常高的验证码可以提高账户的安全性。
附图说明
图1是本发明一种验证码优化方法的流程图;
图2是本发明一种验证码优化方法的步骤S1的流程图;
图3是本发明一种验证码优化方法的步骤S2的流程图;
图4是本发明一种验证码优化方法的步骤S4的流程图;
图5是本发明一种验证码优化方法的另一个实施例的流程图。
具体实施方式
如图1所示,本发明所述的一种验证码优化方法,包括以下步骤:S1,提取每个字符的特征值;S2,根据特征值计算字符的相似度表征值;S3,根据字符相似度表征值将字符区分为易混淆字符组和不易混淆字符组;S4,计算不易混淆字符组中每个字符与其他字符的键盘距离;S5,在不易混淆字符组中随机生成验证码第一字符;S6,根据不易混淆字符组中其他字符与验证码第一字符的键盘距离筛选易操作字符组;S7,在易操作字符组中随机生成验证码的其他字符,与验证码第一字符组成完整的验证码并显示。
与现有技术相比,本发明公开的一种验证码优化方法,通过计算任意两个字符件的相似度表征值确定字符的相似程度,将相似程度高,容易混淆的字符作为易混淆字符,将相似程度较低,不易混淆的字符作为不易混淆字符。所生成的验证码在不易混淆字符中随机生成,不存在难识别的易混淆字符,从而解决了目前验证码存在的难识别的问题。并且,该种验证码优化还计算不易混淆字符组中每个字符与其他字符的键盘距离,通过键盘距离选择位置较为靠近的字符作为易操作字符,在易操作字符中选择生成验证码,保证了验证码中的字符都是集中分布在某一区域的,使用输入验证码时简单方便,解决了目前验证存在的难输入的问题。同时,本发明中的字符间键盘距离不是针对预设的输入框进行计算,而是截取用户的输入框进行计算,这样的计算方式一方面保证了计算得到的键盘距离真实准确,适用于任何输入框类型,另一方面,也因为输入框为日常用户使用的输入框,用户熟悉字符位置,而生成的验证码的字符又相对靠近,这样便于用户记忆验证码内容,解决了目前验证码存在的难记忆的问题。本发明提供的一种验证码优化方法,通过计算字符的相似度表征值区分易混淆字符和不易混淆字符,在不易混淆字符中审查验证码的第一个字符,又根据第一个字符在不易混淆字符组中筛选易操作字符组,剩余的验证码字符在易操作字符组中随机生成,构成了随机验证码。这种随机验证码在保留了可以进行人机验证功能的前提下,解决了目前验证码存在的难识别,难记忆,难输入的问题。提供了一种可以提高用户输入验证码效率,优化验证码阅读体验,并且还能达到人机验证效果的验证码生成方法。
如图2所示,所述步骤S1包括以下步骤:S11,收集验证码需要使用的字符,获取每个字符的图像;S12,对字符图像进行划分,使字符图像形成N*N个小块;S13,统计每个小块上的黑色像素点的个数;S14,记录每个小块上的黑色像素点个数即得到一个字符的特征值;S15,重复步骤S12到S14,获得每个字符的特征值。本发明的一个实施例中,收集数字“8”的黑白图像,将图像首先划分为5*5=25个小块,假设每个小块有100*100的像素组成。然后计算每个小块上有多少个黑色像素。如第一行:第1个小块中,有0个黑色像素,标记为0。第2个小块中,有10个黑色像素,标记为10。第3个小块中,有30个黑色像素,标记为30。第4个小块中,有10个黑色像素,标记为10。第5个小块中,有0个黑色像素,标记为0。以此类推,计算每一行的每个小块的数字是多少,并记录好,这样就提取出数字特征,为了方便计算可以把特征排成数组。按照方法,可以把字符的特征计算出来。此特征是每个字符独一无二的特征。
所述步骤S2中的相似度表征值通过计算字符间欧氏距离得到。如图3所示,所述步骤S2包括以下步骤:S21,选取任意两个字符,获取字符的特征值;S22,将特征值中每一个小块的黑色像素点个数对应写入欧氏距离公式;S23,通过欧氏距离公式计算得到的数值即为两个字符间的相似度表征值;S24,重复步骤S21到S23,直至获得任意两个字符件的相似度表征值。本发明的一个实施例中,数据库中存有每个数字的特征数组,然后通过欧式距离计算相似度。距离越近,相似度越高。
欧式距离公式:
Figure BDA0001714076370000051
假设:
8,B,7的特征分别为
8:3,7,8,13;
B:3,6,9,12;
7:8,1,2,98;
8与B对比
Figure BDA0001714076370000061
8与7对比
Figure BDA0001714076370000062
这样计算8与B的距离为根号3和8与7的距离为根号7322。距离小的为相似度高,所以8与B,相似。
所述步骤S3中所述的易混淆字符组和不易混淆字符组由以下方法得到;将相似度表征值小于阈值的字符作为易混淆字符,易混淆字符构成易混淆字符组;将相似度表征值大于阈值的字符作为不易混淆字符,不易混淆字符构成不易混淆字符组。该步骤中的阈值可设定,如果需要易于识别,可以将阈值设定得较高,那么有一定程度相似的字符都可以被识别为易混淆字符,留下相互差异极大的字符作为不易混淆字符以生成验证码。反之,也可以将阈值设定较低,增加识别难度,从而增加验证码的验证安全性。
如图4所示,所述步骤S4包括以下步骤:S41,截取输入框图像;S42,通过图像识别获取每个字符在图片上的X,Y坐标;S43,通过计算欧氏距离得到任意两个字符的键盘距离。本发明中的字符间键盘距离不是针对预设的输入框进行计算,而是截取用户的输入框进行计算,这样的计算方式一方面保证了计算得到的键盘距离真实准确,避免了由于操作***不同,或者项目需求不同,每个键盘的输入位置均有差别,导致的键盘距离存在误差,该种计算方法适用于任何输入框类型,另一方面,也因为输入框为日常用户使用的输入框,用户熟悉字符位置,而生成的验证码的字符又相对靠近,这样便于用户记忆验证码内容,解决了目前验证码存在的难记忆的问题。
所述步骤S6中所述的易操作字符组由以下方法得到;获取根据不易混淆字符组中其他字符与验证码第一字符的键盘距离,键盘距离不大于阈值的字符作为易操作字符构成易操作字符组。该步骤中的阈值可设定,为了便于输入可以将阈值设置的较小,验证码的字符分布更为集中,输入更方便,反之,也可以将阈值设定较高,验证码的字符分布更为分散,输入难度增加,从而增加验证码的验证安全性。
如图5所示,一种验证码优化方法,包括以下步骤:S1,提取每个字符的特征值;S2,根据特征值计算字符的相似度表征值;S3,根据字符相似度表征值将字符区分为易混淆字符组和不易混淆字符组;S4,在易混淆字符组中随机生成验证码。本发明还提供一种验证码优化方法,通过计算任意两个字符件的相似度表征值确定字符的相似程度,将相似程度高,容易混淆的字符作为易混淆字符,将相似程度较低,不易混淆的字符作为不易混淆字符。所生成的验证码在易混淆字符中随机生成,所生成的验证码难以识别,难以记忆,难以输入,在安全度要求高的场合,使用这种难度非常高的验证码可以提高账户的安全性。
所述步骤S1包括以下步骤:S11,收集验证码需要使用的字符,获取每个字符的图像;S12,对字符图像进行划分,使字符图像形成N*N个小块;S13,统计每个小块上的黑色像素点的个数;S14,记录每个小块上的黑色像素点个数即得到一个字符的特征值;S15,重复步骤S12到S14,获得每个字符的特征值;所述步骤S2中的相似度表征值通过计算字符间欧氏距离得到。该种方法不仅适用于数字和字母,由于字符的特征值是通过图像提取的,所以汉字字符同样适用于该种方法。举例而言,汉字“我”和汉字“找”可以使用同样的特征值提取方法。所示步骤S1和步骤S2的具体内容与前述内容相同,故在此不再赘述。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (5)

1.一种验证码优化方法,其特征在于,包括以下步骤:
S1,提取每个字符的特征值;其中,所述步骤S1包括:
S11,收集验证码需要使用的字符,获取每个字符的图像;
S12,对字符图像进行划分,使字符图像形成N*N个小块;
S13,统计每个小块上的黑色像素点的个数;
S14,记录每个小块上的黑色像素点个数即得到一个字符的特征值;
S15,重复步骤S12到S14,获得每个字符的特征值;
S2,根据特征值计算字符的相似度表征值;
S3,根据字符相似度表征值将字符区分为易混淆字符组和不易混淆字符组;
S4,计算不易混淆字符组中每个字符与其他字符的键盘距离;其中,所述步骤S4包括:
S41,截取输入框图像;
S42,通过图像识别获取每个字符在图片上的X,Y坐标;
S43,通过计算欧氏距离得到任意两个字符的键盘距离;
S5,在不易混淆字符组中随机生成验证码第一字符;
S6,根据不易混淆字符组中其他字符与验证码第一字符的键盘距离筛选易操作字符组;
S7,在易操作字符组中随机生成验证码的其他字符,与验证码第一字符组成完整的验证码并显示。
2.根据权利要求1所述的一种验证码优化方法,其特征在于,所述步骤S2中的相似度表征值通过计算字符间欧氏距离得到。
3.根据权利要求2所述的一种验证码优化方法,其特征在于,所述步骤S2包括以下步骤:
S21,选取任意两个字符,获取字符的特征值;
S22,将特征值中每一个小块的黑色像素点个数对应写入欧氏距离公式;
S23,通过欧氏距离公式计算得到的数值即为两个字符间的相似度表征值;
S24,重复步骤S21到S23,直至获得任意两个字符件的相似度表征值。
4.根据权利要求1或2任一项所述的一种验证码优化方法,其特征在于,所述步骤S3中所述的易混淆字符组和不易混淆字符组由以下方法得到;将相似度表征值小于阈值的字符作为易混淆字符,易混淆字符构成易混淆字符组;将相似度表征值大于阈值的字符作为不易混淆字符,不易混淆字符构成不易混淆字符组。
5.根据权利要求1或2任一项所述的一种验证码优化方法,其特征在于,所述步骤S6中所述的易操作字符组由以下方法得到;获取根据不易混淆字符组中其他字符与验证码第一字符的键盘距离,键盘距离不大于阈值的字符作为易操作字符构成易操作字符组。
CN201810697959.3A 2018-06-29 2018-06-29 一种验证码优化方法 Active CN108874756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810697959.3A CN108874756B (zh) 2018-06-29 2018-06-29 一种验证码优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810697959.3A CN108874756B (zh) 2018-06-29 2018-06-29 一种验证码优化方法

Publications (2)

Publication Number Publication Date
CN108874756A CN108874756A (zh) 2018-11-23
CN108874756B true CN108874756B (zh) 2022-05-20

Family

ID=64297402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810697959.3A Active CN108874756B (zh) 2018-06-29 2018-06-29 一种验证码优化方法

Country Status (1)

Country Link
CN (1) CN108874756B (zh)

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101237324B (zh) * 2007-01-31 2010-12-08 ***通信集团公司 图片验证码的生成方法及生成装置
KR100864749B1 (ko) * 2007-11-22 2008-10-22 김연수 문자입력방법
CN101430632A (zh) * 2008-12-19 2009-05-13 深圳华为通信技术有限公司 触摸屏输入方法、装置和通信终端
CN101930725A (zh) * 2009-12-09 2010-12-29 杭州华三通信技术有限公司 一种字符显示方法和装置
CN102122298B (zh) * 2011-03-07 2013-02-20 清华大学 一种中文相似性匹配方法
CN102957682A (zh) * 2011-08-30 2013-03-06 北京百度网讯科技有限公司 一种用于基于验证安全等级提供图片验证码的方法与设备
CN102663454B (zh) * 2012-04-18 2014-08-20 安徽科大讯飞信息科技股份有限公司 一种字符书写规范度评测的方法和装置
CN102663672B (zh) * 2012-05-03 2013-12-04 杭州朗和科技有限公司 一种图片验证码生成方法和装置
CN102768754B (zh) * 2012-08-03 2014-07-09 网易(杭州)网络有限公司 一种图片验证码的实现方法和装置
CN102831568B (zh) * 2012-08-03 2014-07-09 网易(杭州)网络有限公司 一种生成验证码图片的方法和装置
CN103914680B (zh) * 2013-01-07 2018-03-23 上海宝信软件股份有限公司 一种喷印字符图像识别与校验***及方法
CN104021376B (zh) * 2014-06-05 2017-11-21 北京乐动卓越科技有限公司 验证码识别方法和装置
CN104572627B (zh) * 2015-01-30 2018-01-23 深圳市华傲数据技术有限公司 基于信息熵的对象名称编辑距离计算方法及匹配方法
CN107784219B (zh) * 2016-08-25 2019-04-30 腾讯科技(深圳)有限公司 一种字符验证码实现方法、装置及终端
CN106713618A (zh) * 2016-11-25 2017-05-24 维沃移动通信有限公司 一种验证码的处理方法及移动终端
CN106778568B (zh) * 2016-12-05 2020-08-21 上海携程商务有限公司 基于web页面的验证码的处理方法
CN106648141A (zh) * 2016-12-26 2017-05-10 北京小米移动软件有限公司 显示候选词的方法及装置
CN106951832B (zh) * 2017-02-28 2022-02-18 广东数相智能科技有限公司 一种基于手写字符识别的验证方法及装置
CN107329687B (zh) * 2017-06-28 2019-11-19 维沃移动通信有限公司 一种虚拟输入键盘的显示方法及移动终端
CN107292311A (zh) * 2017-08-10 2017-10-24 河南科技大学 一种基于神经网络的字符粘连验证码的识别方法

Also Published As

Publication number Publication date
CN108874756A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108229130B (zh) 一种验证方法及装置
Van Oorschot et al. Purely automated attacks on passpoints-style graphical passwords
Shahzad et al. Behavior based human authentication on touch screen devices using gestures and signatures
JP4547447B2 (ja) パスワード認証装置およびパスワード認証方法
US9117068B1 (en) Password protection using pattern
CN103092500B (zh) 屏幕解锁方法、触摸屏和电子设备
US20080016369A1 (en) Click Passwords
US20050193208A1 (en) User authentication
Schmid et al. Performance analysis of iris-based identification system at the matching score level
CN105718783B (zh) 验证码交互方法、装置、客户端和服务器
WO2017193165A1 (en) Authenticating a user
CN105335643A (zh) 文件的处理方法及处理***
US20170249450A1 (en) Device and Method for Authenticating a User
CN108874756B (zh) 一种验证码优化方法
US8036433B1 (en) Grid-based data input and authentication
Liu et al. An enhanced drawing reproduction graphical password strategy
JP4541995B2 (ja) 図形認識方法
Oka et al. Scribble-a-secret: Similarity-based password authentication using sketches
KR102394614B1 (ko) 키패드 입력 장치 및 방법
CN115497097A (zh) 一种倾斜汉字点选验证码识别方法
JPS60153574A (ja) 文字読取方法
JP4698308B2 (ja) 文字入力装置、文字入力プログラム、および文字入力プログラムを記録する記録媒体
Verma et al. Biometric based user authentication in smart phones
JP5774461B2 (ja) 入力情報認証装置、サーバ装置、入力情報認証システムおよび装置のプログラム
CN108961531B (zh) 纸币冠字号识别的方法、装置、设备及存储介质

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
GR01 Patent grant
GR01 Patent grant