首页 / 专利库 / 人工智能 / 图灵测试 / 基于图片的验证码方法、服务器和验证码系统

基于图片的验证码方法、服务器和验证码系统

阅读:636发布:2020-05-08

专利汇可以提供基于图片的验证码方法、服务器和验证码系统专利检索,专利查询,专利分析的服务。并且一种验证使用者非 机器人 的方法,应用于 服务器 中。服务器生成验证码图片,并针对该验证码图片进行前置处理。该验证码图片先经半 色调 处理后,再基于 像素 区 块 的操作,依照像素稀疏度映射到预先计算好的级别。该服务器接着将已前置处理的验证码图片,加密成2张子图片,并将其传送到用户装置。用户装置经由用户 接口 在显示设备上呈现2张子图片,以便用户可以迭加该2张子图片,经由视觉解密出该已前置处理的验证码图片,并根据该图片中包含的验证码输入验证码进行验证。本 发明 还提供一种基于图片验证码的服务器以及基于图片的验证码系统。本发明可以解决验证码图片的安全性问题。,下面是基于图片的验证码方法、服务器和验证码系统专利的具体信息内容。

1.一种基于图片的验证码方法,应用于服务器中,其特征在于,该方法包含以下步骤:
生成包含全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computers and Human Apart,CAPTCHA)验证码的CAPTCHA图片;
对该CAPTCHA图片进行前置处理;
加密已前置处理CAPTCHA图片为第一子图片和第二子图片;
传送上述第一子图片和上述第二子图片到用户装置;
从该用户装置接收验证码;以及
当该验证码与该CAPTCHA验证码相匹配时,授权该用户装置的用户。
2.如权利要求1所述的方法,其特征在于,所述对该CAPTCHA图片进行前置处理的步骤还包括:
转换该CAPTCHA图片为半色调图片;
将该半色调图片划分为多个基本区,每一个基本区块具有n×n个像素,其中,n为随机数;
计算级别数量L,其中,L=[(n×n)/2]+1;
针对L个级别,定义每一个级别的表征区块;
依据上述每一个基本区块包含的黑色像素数量,将各个基本区块映射至其中上述L个级别的其中之一;以及
替换各个基本区块为各个基本区块所映射的级别之表征区块。
3.如权利要求1所述的方法,其特征在于,在所述加密已前置处理CAPTCHA图片为第一子图片和第二子图片的步骤之后,还包括步骤:随机填充像素以扩展第二子图片。
4.如权利要求2所述的方法,其特征在于,所述加密已前置处理CAPTCHA图片为第一子图片和第二子图片的步骤还包括:
将该已前置处理的CAPTCHA图片划分为多个基本区块;以及
将该多个基本区块中的每一个基本区块加密成第一子区块和第二子区块,其中,所述第一子区块和第二子区块皆包含(n×n)/2个白色像素和(n×n)/2个黑色像素。
5.一种基于图片验证码的服务器,其特征在于,该服务器包含:
处理器单元;以及
计算机可读存储介质,用于存储至少一个计算机程序,其中,所述计算机程序包括由所述处理器单元执行的指令,并执行以下步骤:
生成包含全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computersand Human Apart,CAPTCHA)验证码的CAPTCHA图片;
对该CAPTCHA图片进行前置处理;
加密已前置处理CAPTCHA图片为第一子图片和第二子图片;
传送上述第一子图片和上述第二子图片到用户装置;
从该用户装置接收验证码;以及
当该验证码与该CAPTCHA验证码相匹配时,授权该用户装置的用户。
6.如权利要求5所述的服务器,其特征在于,所述对该CAPTCHA图片进行前置处理的步骤还包括:
转换该CAPTCHA图片为半色调图片;
将该半色调图片划分为多个基本区块,每一个基本区块具有n×n个像素,其中,n为随机数;
计算级别数量L,其中,L=[(n×n)/2]+1;
针对L个级别,定义每一个级别的表征区块;
依据上述每一个基本区块包含的黑色像素数量,将各个基本区块映射至其中上述L个级别的其中之一;以及
替换各个基本区块为各个基本区块所映射的级别之表征区块。
7.如权利要求5所述的服务器,其特征在于,在所述加密已前置处理CAPTCHA图片为第一子图片和第二子图片的步骤之后,还包括步骤:随机填充像素以扩展第二子图片。
8.如权利要求6所述的服务器,其特征在于,所述加密已前置处理CAPTCHA图片为第一子图片和第二子图片的步骤还包括:
将该已前置处理的CAPTCHA图片划分为多个基本区块;以及
将该多个基本区块中的每一个基本区块加密成第一子区块和第二子区块,其中,所述第一子区块和第二子区块皆包含(n×n)/2个白色像素和(n×n)/2个黑色像素。
9.一种基于图片的验证码系统,其特征在于,该系统包含:
服务器,用于验证使用者的身分;以及
用户装置,用于向上述服务器传送访问请求,其中,上述服务器执行以下步骤:
生成包含全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computersand Human Apart,CAPTCHA)验证码的CAPTCHA图片;
对该CAPTCHA图片进行前置处理;
加密已前置处理CAPTCHA图片为第一子图片和第二子图片;
传送上述第一子图片和上述第二子图片到一用户装置;
从该用户装置接收验证码;以及
当该验证码与该CAPTCHA验证码相匹配时,授权该用户装置的该用户。
10.如权利要求9所述的验证码系统,其特征在于,在上述用户装置接受到上述第一子图片和上述第二子图片之后,上述用户装置经由一用户接口向该用户呈现上述第一子图片和上述第二子图片。

说明书全文

基于图片的验证码方法、服务器和验证码系统

技术领域

[0001] 本发明涉及通讯领域,尤其涉及一种验证使用者身份为人类的验证码。

背景技术

[0002] 在现有的后台系统,包含账号登入(例如,网络行)、远程文件共享、订票系统,甚至是匿名留言版,经常会使用全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computers and Human Apart,CAPTCHA)验证码来区分使用者是人类还是机器人
[0003] 为了防止机器人自动登入和下载数据,导致系统资源消耗问题,基于单词的CAPTCHA验证码通常以扭曲变形的图片呈现。为了通过测试,使用者必须人眼辨识出图片上的字符,这通常是机器人所无法完成的。然而,有许多技术开发欲破解CAPTCHA图片,例如,使用光学字符识别之类的计算机自动程序来分析CAPTCHA图片内容。

发明内容

[0004] 有鉴于此,需提供一种基于图片的验证码方法、服务器和验证码系统,以解决CAPTCHA图片的安全性问题。
[0005] 本发明提供一种基于图片的验证码方法,应用于服务器中,该方法包含以下步骤:生成包含全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computers and Human Apart,CAPTCHA)验证码的CAPTCHA图片;对该CAPTCHA图片进行前置处理;加密已前置处理CAPTCHA图片为第一子图片和第二子图片;
传送上述第一子图片和上述第二子图片到一用户装置;从该用户装置接收一验证码;以及当该验证码与该CAPTCHA验证码相匹配时,授权该用户装置的用户。。
[0006] 本发明还提供一种基于图片验证码的服务器,该服务器包含:处理器单元;以及计算机可读存储介质,用于存储至少一个计算机程序,其中,所述计算机程序包括由所述处理器单元执行的指令,并执行以下步骤:生成包含全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computers and Human Apart,CAPTCHA)验证码的CAPTCHA图片;对该CAPTCHA图片进行前置处理;加密已前置处理CAPTCHA图片为第一子图片和第二子图片;传送上述第一子图片和上述第二子图片到一用户装置;从该用户装置接收一验证码;以及当该验证码与该CAPTCHA验证码相匹配时,授权该用户装置的用户。
[0007] 本发明还提供一种基于图片的验证码系统,该系统包含:服务器,用于验证使用者的身分;以及用户装置,用于向上述服务器传送访问请求,其中,上述服务器执行以下步骤:生成包含全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computers and Human Apart,CAPTCHA)验证码的CAPTCHA图片;对该CAPTCHA图片进行前置处理;加密已前置处理CAPTCHA图片为第一子图片和第二子图片;
传送上述第一子图片和上述第二子图片到一用户装置;从该用户装置接收一验证码;以及当该验证码与该CAPTCHA验证码相匹配时,授权该用户装置的该用户。
[0008] 相较于现有技术,利用上述基于图片的验证码方法、服务器和验证码系统,将视觉密码应用于CAPTCHA验证码。由于扩展其中一张子图片的图片尺寸,大量增加了迭合的困难度,使得机器人或计算机自动程序实际上不可能确定正确的组合,降低CAPTCHA验证的破解险。附图说明
[0009] 图1为基于图片的验证码系统的运行环境一实施例的示意图。
[0010] 图2为服务器实现基于图片的验证码方法一实施例的流程图
[0011] 图3为CAPTCHA图片前置处理一实施例的流程图。
[0012] 图4为每一个级别定义其表征区一实施例的示意图。
[0013] 图5为将区块映射到一级别及其对应的代表块一实施例的示意图。
[0014] 图6为2×2区块操作视觉密码一实施例的示意图。
[0015] 图7为扩展第一子图片一实施例的示意图。
[0016] 图8为在扩展的第一子图片迭加第二子图片一实施例的示意图。
[0017] 主要元件符号说明
[0018]验证码系统 100
服务器 110
处理器单元 112
计算机可读存储介质 114
用户装置 120
网络 130
流程 200,300

具体实施方式

[0019] 图1所示为本发明一实施例中基于图片的验证码系统100的运行环境。上述验证码系统100包含服务器110和用户装置120。上述服务器110和上述用户装置120可以通过有线或无线网络130进行双向通信。上述服务器110可以包括处理器单元112和计算机可读存储介质114。上述处理器单元112可以是上述服务器110的中央处理单元,包含一个或多个集成电路,例如,单核或多核微处理器或微控制器,以控制上述服务器110的运作。上述计算机可读存储介质114可以是任何形式的计算机可读存储介质,例如,闪存,或任何其它非易失性存储介质。上述计算机可读存储介质114可以存储用于上述服务器110的一个或多个计算机程序,并且由上述处理器单元1112执行。上述用户装置120可以是智能手机、平板计算机、笔记本电脑、桌面计算机或是OTT电视盒等计算机装置。
[0020] 上述服务器110可以存储公共和受保护资源,其可以是:网页、存储在数据库中的数据、文件以及用于提供使用者经由上述用户装置120访问的其它服务。图2所示为一实施例中,上述服务器110执行基于图片的验证码流程200。步骤210,上述用户装置120将用于访问资源的使用者请求传送到上述服务器110。步骤220,上述服务器110确认所请求的资源是否受到保护。如果所请求的资源未受到保护,则授予访问权限并结束该流程200。如果所请求的资源受到保护,则该流程200继续执行至步骤230以进一步进行验证。
[0021] 步骤230,上述服务器110使用CAPTCHA图片生成算法来产生包括CAPTCHA验证码的CAPTCHA图片。在一实施例中,上述使用者设备120的全局唯一标识符(Global Unique Identifier,GUID)连同该CAPTCHA验证码存储在上述服务器的数据库中。
[0022] 步骤240,上述服务器110进行该CAPTCHA图片的前置处理。
[0023] 请同时参阅图3,所示为上述服务器110对该CAPTCHA图片进行前置处理一实施例的流程300。
[0024] 步骤310,使用半色调(Halftoning)算法将该CAPTCHA图片转换为半色调图片。
[0025] 步骤320,将该半色调图片划分成若干区块,每一个区块具有n×n个像素,其中,n是随机数。假设该半色调图片包括M×N个像素,其中M、N皆大于n,则该半色调图片可以被划分成(M×N)/(n×n)个不重迭的区块。
[0026] 步骤330,通过方程式L=[(n×n)/2]+1计算级别的数量L,针对每一个级别分别定义其表征区块。在一实施例中,对各个级别从0至(n×n)/2进行编号,并且将表征区块的黑色像素的数量设置在(n×n)/2至(n×n)之间。针对该半色调图片,以具有较高密度的黑色像素的表征区块代表较大编号的级别。例如,n由随机数决定为2,经由上述方程式计算可得到级别的数量为3,并将3个级别从0至2进行编号。请同时参阅图4,所示为一实施例中,针对每一个级别分别定义其表征区块的示意图,其中,具有2个黑色像素的表征区块用于代表级别0,具有3个黑色像素的表征区块用于代表级别1,以及具有4个黑色像素的表征区块用于代表级别2。
[0027] 步骤340,基于每一个区块包含的黑色像素数量进行统计,并基于该统计结果定义区块与级别之间的映射,使得每一个级别分配到的区块数量尽可能地一致。根据各个区块所映射的级别,将该区块替换为该级别对应的表征区块。请同时参阅图5,所示为执行步骤340时,将区块映射到级别及其对应的表征区块的示意图。501与502显示基于每一个区块所包含的黑色像素数量进行统计,并根据统计结果,将每一个区块映射到L个级别,以L=3为例。根据502所示的级别划分,每一个区块依据所包含的黑色像素数量被映射到特定的级别。例如,如503所示,以区块为单位进行操作,若区块包含的黑色像素的数量小于2,则将区块映射到级别0,并以具有2个黑色像素的表征区块替换该半色调图片中的该区块;若区块包含的黑色像素的数量等于2,则将该区块映射到级别1,并以具有3个黑色像素的表征区块替换该半色调图片中的该区块;以及若区块包含的黑色像素的数量大于2,则将该区块映射到级别2,并以具有4个黑色像素的表征区块替换该半色调图片中的该区块。
[0028] 现在返回到图3,在步骤340之后,完成前置处理的CAPTCHA图片接着使用视觉密码(Visual Cryptography,VC)方法加密。
[0029] 现在返回到图2,步骤250,上述服务器110执行VC方法,将已前置处理的CAPTCHA图片加密成2张子图片。在一实施例中,使用VC方法,首先将已前置处理的CAPTCHA图片重新划分成若干区块,每一个区块包含n×n个像素。其次,每一个区块被加密成2个子区块,每个子区块包含(n×n)/2个白色像素和(n×n)/2个黑色像素。例如,同时参考图6,当n=2时,在两个子区块迭加之后,形成包含2、3或4个黑色像素的区块,如601所示。通过该VC方法对已前置处理的CAPTCHA图片进行区块式操作,使得已前置处理的CAPTCHA图片、加密后的每1张子图片、2张子图片迭合后的图片都具有相同的像素数量,该VC方法可以避免传统的像素扩张的问题。
[0030] 图7所示为一实施例中,CAPTCHA验证码701以及2张子图片702、703。该2张子图片702以及703是将VC方法应用于已前置处理的包含该CAPTCHA验证码701的CAPTCHA图片而获得。为了增加验证方法的破解难度,在一实施例中,上述服务器110可以通过随机填空白区域中的剩余像素,将上述子图片703扩展到预定图片大小704,以形成扩展后的子图片705。
该子图片702以及703的图片尺寸均为W1×H1,而该扩展后的子图片705的图片尺寸为W2×H2,其中,W2大于W1且H2大于H1。由于图片尺寸的变化,因此总共存在(W2-W1+1)×(H2-H1+
1)种迭加排列组合,这增加了机器人或其它计算机自动程序识别的困难度。
[0031] 在扩展上述子图片703形成上述子图片705之后,现在返回到图2,在步骤260,上述子图片702连同上述子图片705由上述服务器110传送到上述用户装置120。
[0032] 上述用户装置120从上述服务器110接收到上述子图片702以及上述子图片705,并在显示设备上显示一用户接口,呈现上述子图片702以及上述子图片705。用户可以经由该用户接口将上述子图片702拖曳到上述子图片705上,以将上述子图片702迭加到上述子图片705上,并对迭加后的图片进行视觉解密,如图8所示。在一实施例中,在步骤205,上述服务器110还可以以任何方式调整上述子图片705的形状。用户根据迭加后视觉解密出的该CAPTCHA验证码701在该用户接口的输入框输入一验证码,由上述用户装置120将该验证码传送到上述服务器110。步骤270,上述服务器110接收到该验证码,在一实施例中,上述服务器还接受到上述用户装置120的GUID。步骤280,当该验证码与该CAPTCHA验证码701相匹配时,上述服务器110根据该验证码以及该GUID授权该使用者,接受该使用者的访问请求或由于其它原因拒绝其访问请求,并回复上述用户装置120一验证通知。
[0033] 总结来说,基于图片的验证码方法将视觉密码应用于CAPTCHA验证码。由于扩展其中一张子图片的图片尺寸,大量增加了迭合的困难度,使得机器人或计算机自动程序实际上不可能确定正确的组合,降低CAPTCHA验证的破解风险。
[0034] 值得注意的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈