CN104852889A - 图片验证码生成方法和***、验证方法和客户端及服务器 - Google Patents
图片验证码生成方法和***、验证方法和客户端及服务器 Download PDFInfo
- Publication number
- CN104852889A CN104852889A CN201410055504.3A CN201410055504A CN104852889A CN 104852889 A CN104852889 A CN 104852889A CN 201410055504 A CN201410055504 A CN 201410055504A CN 104852889 A CN104852889 A CN 104852889A
- Authority
- CN
- China
- Prior art keywords
- character
- picture
- validation code
- picture validation
- prospect
- 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
Links
Landscapes
- Character Input (AREA)
Abstract
一种图片验证码生成方法,包括以下步骤:获取背景图片;获取前景字符;将所述前景字符嵌入所述背景图片中,得到图片验证码;在所述图片验证码中生成分割所述前景字符且与所述背景图片颜色相融的干扰元素。上述方法在图片验证码中用可与背景图片颜色相融的干扰元素分割前景字符,使得自动机在图片验证码中只能提取到前景字符碎片,而不能提取到整个前景字符,从而增加了自动机破解图片验证码的难度,而前景字符虽然被分割,但前景字符碎片构成的整体轮廓还是可以使得图片验证码易于被用户识别,因此不会增加用户识别图片验证码的难度。此外,还提供一种图片验证码生成***、基于图片验证码的验证方法和客户端以及服务器。
Description
技术领域
本发明涉及图像处理技术,特别是涉及一种图片验证码生成方法和***。
背景技术
验证码技术是一种全自动区分计算机和人类的图灵测试(CompletelyAutomated Public Turing test to tell Computers and Humans Apart,CAPTCHA),是一种区分用户是计算机还是人的公共全自动程序。验证码技术就是将一串随机产生的数字或符号生成一幅图片,图片中加入一些干扰元素,该图片即称为图片验证码,并由用户肉眼识别图片验证码中的字符,将字符提交至网站,由网站进行验证,验证成功后用户才能使用某项功能。
为了防止计算机批量注册、恶意破解、论坛灌水等,一般的网站都采用验证码技术。而自动机是专门用于破解图片验证码的一种计算机程序,其通过使用各种图像识别技术,自动从图片验证码中识别出对应的字符并输出结果,以实现对图片验证码的自动破解。
自动机破解图片验证码的一般流程为:分割图片验证码中的背景与字符,从粘连的字符串中切分出单个字符,并逐一识别单个字符。随着OCR(OpticalCharacter Recognition,光学字符识别)技术的发展,图片验证码越来越无法抵御自动机的破解。为了增加自动机破解难度,需要在图片验证码中增加更多更复杂的干扰元素,然而这些干扰元素又会使正常用户对图片验证码的辨识率也大幅下降。
发明内容
基于此,有必要提供一种图片验证码生成方法和***,使得所生成的图片验证码能增加自动机的破解难度并且不会增加用户识别难度。
一种图片验证码生成方法,包括以下步骤:
获取背景图片;
获取前景字符;
将所述前景字符嵌入所述图片前景中,得到图片验证码;
在所述图片验证码中生成分割所述前景字符且与所述背景图片颜色相融的干扰元素。
一种图片验证码生成***,包括:
前景获取模块,用于获取背景图片;
字符获取模块,用于获取前景字符;
合成模块,用于将所述前景字符嵌入所述背景图片中,得到图片验证码;
干扰元素生成模块,用于在所述图片验证码中生成分割所述前景字符且与所述背景图片颜色相融的干扰元素。
此外,还有必要提供一种可增加自动机破解图片验证码的难度且不会增加用户识别图片验证码的难度的基于图片验证码的验证方法和客户端以及服务器。
一种基于图片验证码的验证方法,包括以下步骤:
接收并展示服务器发送的图片验证码,所述图片验证码中包含干扰元素,所述干扰元素分割所述图片验证码中的前景字符且与所述图片验证码中的背景图片颜色相融;
获取通过与所述图片验证码对应的验证码输入接口输入的字符;
将输入的字符发送至所述服务器,使得所述服务器根据输入的字符与所述图片验证码获得匹配结果;
接收并展示所述服务器返回的与所述匹配结果对应的网页内容。
一种基于图片验证码的验证方法,包括以下步骤:
生成图片验证码,所述图片验证码按照上述的图片验证码生成方法生成;
保存图片验证码与图片验证码所表达的字符的对应关系;
将所述图片验证码下发给客户端,使得所述客户端展示所述图片验证码;
接收所述客户端提交的通过与所述图片验证码对应的验证码输入接口输入的字符;
将所述输入的字符与所述图片验证码所表达的字符相匹配,得到匹配结果;
根据所述匹配结果向所述客户端下发对应的网页内容。
一种基于图片验证码的验证客户端,包括:
验证码接收模块,用于接收服务器发送的图片验证码,所述图片验证码中包含干扰元素,所述干扰元素分割所述图片验证码中的前景字符且与所述图片验证码中的背景图片颜色相融;
验证码展示模块,用于展示所述图片验证码;
字符获取模块,用于获取通过与所述图片验证码对应的验证码输入接口输入的字符;
字符发送模块,用于将输入的字符发送至所述服务器,使得所述服务器根据输入的字符与所述图片验证码获得匹配结果;
网页接收模块,用于接收所述服务器返回的与所述匹配结果对应的网页内容;
网页展示模块,用于展示所述网页内容。
一种基于图片验证码的验证服务器,包括:
上述的图片验证码生成***;
存储模块,用于保存图片验证码与图片验证码所表达的字符的对应关系;
验证码下发模块,用于将所述图片验证码下发给客户端,使得所述客户端展示所述图片验证码;
字符接收模块,用于接收所述客户端提交的通过与所述图片验证码对应的验证码输入接口输入的字符;
匹配模块,用于将所述输入的字符与所述图片验证码所表达的字符相匹配,得到匹配结果;
网页下发模块,用于根据所述匹配结果向所述客户端下发对应的网页内容。
上述图片验证码生成方法和***、基于图片验证码的验证方法和客户端及服务器,在图片验证码中用与背景图片颜色相融的干扰元素分割前景字符,可以认为干扰元素也成了背景图片的一部分,使得自动机在图片验证码中只能提取到前景字符碎片,而不能提取到整个前景字符,从而增加了自动机破解图片验证码的难度,有效地防止自动机批量注册、恶意破解、论坛灌水等,而前景字符虽然被分割,但前景字符碎片构成的整体轮廓还是可以使得图片验证码易于被用户识别,因此不会增加用户识别图片验证码的难度。
附图说明
图1为一个实施例中的图片验证码生成方法的流程示意图;
图2A为一个实施例中的图片验证码的示意图;
图2B为一个实施例中的图片验证码生成方法生成的图片验证码示意图;
图2C为一个实施例中的图片验证码生成方法生成的图片验证码示意图;
图3为一个实施例中的基于图片验证码的验证方法的流程示意图;
图4为一个实施例中的基于图片验证码的验证方法的流程示意图;
图5为一个实施例中的图片验证码生成***的结构示意图;
图6为一个实施例中的基于图片验证码的验证客户端的结构示意图;
图7为一个实施例中的基于图片验证码的验证服务器的结构示意图;
图8为能实现本发明实施例的一个计算机***1000的模块图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
如图1所示,在一个实施例中,一种图片验证码生成方法,包括以下步骤:
步骤S102,获取背景图片。
在一个实施例中,可预先收集背景图片并保存至背景图片库中,步骤S102可从背景图片库中随机抽取背景图片。在另一个实施例中,步骤S102可随机选取背景图片的颜色,并根据选取的颜色生成背景图片。
步骤S104,获取前景字符。
在一个实施例中,可预先收集字符样本并保存至字符样本库中,步骤S104可从字符样本库中随机选取字符样本作为图片验证码的前景字符。在另一个实施例中,步骤S104可随机选取预设范围内的字符(例如A~Z内的大写英文字符)以及字符颜色和字符字体,根据选取的字符、字符颜色和字符字体生成前景字符。
进一步的,步骤S104可将前景字符进行扭曲变形,例如钢性变形或非线性变形等等。
步骤S106,将前景字符嵌入背景图片中,得到图片验证码。
在一个实施例中,可将前景字符进行旋转后嵌入背景图片中,旋转的角度可以随机选取,并使得前景字符之间相互粘连,以提高自动机从图片验证码中提取单个字符的难度。
步骤S108,在图片验证码中生成分割前景字符且与背景图片颜色相融的干扰元素。
对于具有单一颜色的背景图片,干扰元素与背景图片的颜色相融即指的是干扰元素与背景图片颜色相同。对于具有复杂颜色的背景图片,干扰元素与背景图片颜色相融指的是干扰元素的颜色符合背景图片中像素的颜色规律,即将干扰元素置于背景图片中后干扰元素与背景图片可融为一体。例如,图2A所示的图片验证码20a中的背景图片201为具有复杂颜色的自然图片,其中的干扰元素202将前景字符203分割成多个部分,且干扰元素202与背景图片201颜色相融。
在一个实施例中,步骤S108包括以下步骤:在前景字符上选取像素点,在图片验证码中绘制经过选取的像素点的干扰线,将干扰线进行着色,使得干扰线与背景图片颜色相融。
可在前景字符上随机选取像素点,像素点的位置是随机确定的,且像素点的数量也在预设范围内随机确定。进一步的,在图片验证码中绘制经过选取的像素点的几何线,绘制的几何线可以是一条或多条。进一步的,可获取背景图片中几何线覆盖区域的像素颜色,并按照背景图片中几何线覆盖区域的像素颜色将几何线上对应位置的像素进行着色,使得几何线覆盖区域恢复背景图片本身的颜色。本实施例使得干扰线不仅可与颜色单一的背景图片颜色相融,也可与颜色复杂的背景图片颜色相融。
上述干扰线可以是任意形状的几何线。
在一个实施例中,绘制经过选取的像素点的几何线的步骤包括:按照像素点在图片验证码中的排列顺序依次连接像素点形成几何线;和/或,经过选取的像素点中的三个不在同一直线上的像素点绘制圆、弧线、抛物线或双曲线等;和/或,经过选取的像素点中的两个像素点绘制线段;和/或,经过选取的像素点绘制贝塞尔曲线。
图2B为一个实施例中上述图片验证码生成方法生成的图片验证码示意图。如图2B所示,上述图片验证码生成方法在图片验证码20b中生成干扰线204,干扰线204分割前景字符205且与背景图片206颜色相融,使得自动机在图片验证码20b中只能提取到前景字符碎片,而不能提取到整个前景字符,从而增加了自动机破解图片验证码的难度。
在另一个实施例中,步骤S108包括以下步骤:沿前景字符的轮廓生成分割前景字符的字符笔画的分割线,使前景字符形成虚线字符,将分割线进行着色,使得分割线与背景图片颜色相融。所谓虚线字符指的是字符笔画为虚线。
可沿前景字符的轮廓按照预设的间隔生成分割前景字符的字符笔画的分割线,即两分割线之间的距离固定,或沿前景字符的轮廓按照随机的间隔生成分割前景字符的字符笔画的分割线,即两分割线之间的距离随机。其中分割线的宽度可预先设置,也可在一定范围内随机选取。进一步的,可获取背景图片中分割线覆盖区域的像素颜色,并按照背景图片中分割线覆盖区域的像素颜色将分割线上对应位置的像素进行着色,使得分割线覆盖区域恢复背景图片本身的颜色。本实施例使得分割线不仅可与颜色单一的背景图片颜色相融,也可与颜色复杂的背景图片颜色相融。
图2C为一个实施例中上述图片验证码生成方法生成的图片验证码示意图。如图2C所示,上述图片验证码生成方法在图片验证码20c中沿前景字符207的轮廓生成分割前景字符207的字符笔画的分割线208,使前景字符207形成虚线字符,并将分割线208进行着色,使得分割线208与背景图片209颜色相融。
在一个实施例中,上述图片验证码生成方法还包括以下步骤:在图片验证码中生成噪音。噪音可以为随机生成的斑点等。噪音可包括背景噪音和前景噪音。前景噪音和前景噪音可以相同或不同。其中背景噪音的覆盖范围包括图片验证码中前景字符以外的所有区域,前景噪音的覆盖范围为前景字符所在区域。
本实施例中,在图片验证码中生成噪音,可提高自动机破解图片验证码的难度。
在一个实施例中,上述图片验证码生成方法还包括以下步骤:在图片验证码中生成与前景字符颜色相融的干扰线。干扰线与前景字符颜色相融的含义与上述的干扰线与背景图片的颜色相融的含义一致。本实施例中,与前景字符颜色相融的干扰线可增加前景字符的粘连度,从而提高自动机从图片验证码中提取单个字符的难度。
如图3所示,在一个实施例中,一种基于图片验证码的验证方法,包括以下步骤:
步骤S302,接收并展示服务器发送的图片验证码,图片验证码中包含干扰元素,干扰元素分割图片验证码中的前景字符且与图片验证码中的背景图片颜色相融。
在一个实施例中,在步骤S302之前,可获取用户触发的网页访问指令,例如,用户在浏览器地址栏中输入网址并进行访问操作所触发的网页访问指令;生成网页访问请求,将网页访问请求发送到服务器。进一步的,步骤S302可接收服务器发送的网页内容,解析并展示网页内容,该网页内容中包含图片验证码以及与图片验证码对应的验证码输入接口。
在另一个实施例中,在步骤S302之前,可获取用户触发的生成新的图片验证码的指令,例如,用户点击“看不清,换一张”控件触发的生成新的图片验证码的指令;生成产生新的图片验证码的请求,将该请求发送到服务器。步骤S302可接收服务器新生成的图片验证码,并在网页内容中将原有的图片验证码替换为新接收的图片验证码。
在一个实施例中,上述干扰元素为经过图片验证码中的前景字符上的像素点的干扰线。
上述干扰线可以是任意的几何线。在一个实施例中,干扰线可包括:线段、圆、弧线、抛物线、双曲线和/或贝塞尔曲线等。
在另一个实施例中,上述干扰元素为沿图片验证码中的前景字符的轮廓生成的分割线,该分割线分割图片验证码中的前景字符的字符笔画,使前景字符形成虚线字符。
步骤S304,获取通过与图片验证码对应的验证码输入接口输入的字符。
步骤S306,将输入的字符发送至服务器,使得服务器根据输入的字符与图片验证码获得匹配结果。
步骤S308,接收并展示服务器返回的与匹配结果对应的网页内容。
上述基于图片验证码的验证方法还包括步骤:向服务器提交服务请求。例如向服务器提交包含用户账号信息的登录请求或注册请求等。若输入的字符与图片验证码所表达的字符相匹配,则匹配结果对应的网页内容可为提交的服务请求对应的网页内容。若输入的字符与图片验证码所表达的字符不匹配,则匹配结果对应的网页内容可包含用于提示验证码输入错误的信息。
如图4所示,在一个实施例中,一种基于图片验证码的验证方法,包括以下步骤:
步骤S402,生成图片验证码。
在一个实施例中,在步骤S402之前,可接收客户端(浏览器)发送的对包含图片验证码的网页的网页访问请求,或接收客户端(浏览器)发送的产生新的图片验证码的请求。
步骤S402可按照上述任一实施例中的图片验证码生成方法生成图片验证码,在此不再赘述。
步骤S404,保存图片验证码与图片验证码所表达的字符的对应关系。
图片验证码所表达的字符即图片验证码的前景字符图像所代表的字符。
步骤S406,将图片验证码下发给客户端,使得客户端展示图片验证码。
步骤S408,接收客户端提交的通过与图片验证码对应的验证码输入接口输入的字符。
步骤S410,将输入的字符与图片验证码所表达的字符相匹配,得到匹配结果。
步骤S412,根据匹配结果向客户端下发对应的网页内容。
上述基于图片验证码的验证方法还包括步骤:接收客户端提交的服务请求。例如接收客户端提交的包含用户账号信息的登录请求或注册请求等。若输入的字符与图片验证码所表达的字符相匹配,则匹配结果对应的网页内容可为提交的服务请求对应的网页内容。若输入的字符与图片验证码所表达的字符不匹配,则匹配结果对应的网页内容可包含用于提示验证码输入错误的信息。
如图5所示,在一个实施例中,一种图片验证码生成***,包括前景获取模块502、字符获取模块504、合成模块506和干扰元素生成模块508,其中:
前景获取模块502用于获取背景图片。
在一个实施例中,上述图片验证码生成***还包括背景收集保存模块(图中未示出),用于收集背景图片并保存至背景图片库中。前景获取模块502可从背景图片库中随机抽取背景图片。在另一个实施例中,前景获取模块502可随机选取背景图片的颜色,并根据选取的颜色生成背景图片。
字符获取模块504用于获取前景字符。
在一个实施例中,上述图片验证码生成***还包括字符收集保存模块(图中未示出),用于收集字符样本并保存至字符样本库中,字符获取模块504可从字符样本库中随机选取字符样本作为图片验证码的前景字符。在另一个实施例中,字符获取模块504可随机选取预设范围内的字符(例如A~Z内的大写英文字符)以及字符颜色和字符字体,根据选取的字符、字符颜色和字符字体生成前景字符。
在一个实施例中,字符获取模块504还用于将前景字符进行扭曲变形,例如钢性变形或非线性变形等等。
合成模块506用于将前景字符嵌入背景图片中,得到图片验证码。
在一个实施例中,合成模块506可将前景字符进行旋转后嵌入背景图片中,旋转的角度可以随机选取,并使得前景字符之间相互粘连,以提高自动机从图片验证码中提取单个字符的难度。
干扰元素生成模块508用于在图片验证码中生成分割前景字符且与背景图片颜色相融的干扰元素。
对于具有单一颜色的背景图片,干扰元素与背景图片的颜色相融即指的是干扰元素与背景图片颜色相同。对于具有复杂颜色的背景图片,干扰元素与背景图片颜色相融指的是干扰元素的颜色符合背景图片中像素的颜色规律,即将干扰元素置于背景图片中后干扰元素与背景图片可融为一体。
在一个实施例中,干扰元素生成模块508用于在前景字符上选取像素点,在图片验证码中绘制经过选取的像素点的干扰线,将干扰线进行着色,使得干扰线与背景图片颜色相融。
干扰元素生成模块508可在前景字符上随机选取像素点,像素点的位置是随机确定的,且像素点的数量也在预设范围内随机确定。进一步的,干扰元素生成模块508可在图片验证码中绘制经过选取的像素点的几何线,绘制的几何线可以是一条或多条。进一步的,干扰元素生成模块508可获取背景图片中几何线覆盖区域的像素颜色,并按照背景图片中几何线覆盖区域的像素颜色将几何线上对应位置的像素进行着色,使得几何线覆盖区域恢复背景图片本身的颜色。本实施例使得干扰线不仅可与颜色单一的背景图片颜色相融,也可与颜色复杂的背景图片颜色相融。
上述干扰线可以是任意形状的几何线。
在一个实施例中,干扰元素生成模块508绘制经过选取的像素点的几何线的过程包括:按照像素点在图片验证码中的排列顺序依次连接像素点形成几何线;和/或,经过选取的像素点中的三个不在同一直线上的像素点绘制圆、弧线、抛物线或双曲线等;和/或,经过选取的像素点中的两个像素点绘制线段;和/或,经过选取的像素点绘制贝塞尔曲线。
在另一个实施例中,干扰元素生成模块508用于沿前景字符的轮廓生成分割前景字符的字符笔画的分割线,使前景字符形成虚线字符,将分割线进行着色,使得分割线与背景图片颜色相融。所谓虚线字符指的是字符笔画为虚线。
干扰元素生成模块508可沿前景字符的轮廓按照预设的间隔生成分割前景字符的字符笔画的分割线,即两分割线之间的距离固定,或沿前景字符的轮廓按照随机的间隔生成分割前景字符的字符笔画的分割线,即两分割线之间的距离随机。其中分割线的宽度可预先设置,也可在一定范围内随机选取。进一步的,干扰元素生成模块508可获取背景图片中分割线覆盖区域的像素颜色,并按照背景图片中分割线覆盖区域的像素颜色将分割线上对应位置的像素进行着色,使得分割线覆盖区域恢复背景图片本身的颜色。本实施例使得分割线不仅可与颜色单一的背景图片颜色相融,也可与颜色复杂的背景图片颜色相融。
在一个实施例中,上述图片验证码生成***还包括噪音生成模块(图中未示出),用于在图片验证码中生成噪音。噪音可以为随机生成的斑点等。噪音可包括背景噪音和前景噪音。前景噪音和前景噪音可以相同或不同。其中背景噪音的覆盖范围包括图片验证码中前景字符以外的所有区域,前景噪音的覆盖范围为前景字符所在区域。
本实施例中,在图片验证码中生成噪音,可提高自动机破解图片验证码的难度。
在一个实施例中,上述图片验证码生成***还包括前景干扰线生成模块(图中未示出),用于在图片验证码中生成与前景字符颜色相融的干扰线。干扰线与前景字符颜色相融的含义与上述的干扰线与背景图片的颜色相融的含义一致。本实施例中,与前景字符颜色相融的干扰线可增加前景字符的粘连度,从而提高自动机从图片验证码中提取单个字符的难度。
如图6所示,在一个实施例中,一种基于图片验证码的验证客户端,该验证客户端可为浏览器,包括验证码接收模块602、验证码展示模块604、字符获取模块606、字符发送模块608、网页接收模块610和网页展示模块612,其中:
验证码接收模块602用于接收服务器发送的图片验证码,图片验证码中包含干扰元素,干扰元素分割图片验证码中的前景字符且与图片验证码中的背景图片颜色相融。
验证码展示模块604用于展示图片验证码。
在一个实施例中,上述基于图片验证码的验证客户端还包括网页访问请求获取模块和网页访问请求发送模块(图中未示出),网页访问请求获取模块用于获取用户触发的网页访问指令,例如,用户在浏览器地址栏中输入网址并进行访问操作所触发的网页访问指令;以及生成网页访问请求;网页访问请求发送模块用于将网页访问请求发送到服务器。验证码接收模块602可接收服务器发送的网页内容,该网页内容中包含图片验证码以及与图片验证码对应的验证码输入接口。上述基于图片验证码的验证客户端还包括网页解析模块(图中未示出),用于解析接收的网页内容。验证码展示模块604用于展示解析后的网页内容。
在另一个实施例中,上述基于图片验证码的验证客户端还包括验证码请求获取模块和验证码请求发送模块(图中未示出),验证码请求获取模块用于获取用户触发的生成新的图片验证码的指令,例如,用户点击“看不清,换一张”控件(或链接)触发的生成新的图片验证码的指令;以及生成产生新的图片验证码的请求;验证码请求发送模块用于将产生新的图片验证码的请求发送到服务器。验证码接收模块602可接收服务器新生成的图片验证码。验证码展示模块604用于在网页内容中将原有的图片验证码替换为新接收的图片验证码。
在一个实施例中,上述干扰元素为经过图片验证码中的前景字符上的像素点的干扰线。
上述干扰线可以是任意形状的几何线。在一个实施例中,干扰线可包括:线段、圆、弧线、抛物线、双曲线或/和贝塞尔曲线等。
在另一个实施例中,上述干扰元素为沿图片验证码中的前景字符的轮廓生成的分割线,该分割线分割图片验证码中的前景字符的字符笔画,使前景字符形成虚线字符。
字符获取模块606用于获取通过与图片验证码对应的验证码输入接口输入的字符。
字符发送模块608用于将输入的字符发送至服务器,使得服务器根据输入的字符与图片验证码获得匹配结果。
网页接收模块610用于接收服务器返回的与匹配结果对应的网页内容。
网页展示模块612用于展示网页内容。
上述基于图片验证码的验证客户端还包括服务请求提交模块(图中未示出),用于向服务器提交服务请求,例如向服务器提交包含用户账号信息的登录请求或注册请求等。若输入的字符与图片验证码所表达的字符相匹配,则匹配结果对应的网页内容可为提交的服务请求对应的网页内容。若输入的字符与图片验证码所表达的字符不匹配,则匹配结果对应的网页内容可包含用于提示验证码输入错误的信息。
如图7所示,在一个实施例中,一种基于图片验证码的验证服务器,包括图片验证码生成***702、存储模块704、验证码下发模块706、字符接收模块708、匹配模块710和网页下发模块712,其中:
图片验证码生成***702用于生成图片验证码。图片验证码生成***可与上文所述的任一实施例中的图片验证码相同,在此不再赘述。
在一个实施例中,上述基于图片验证码的验证服务器还包括请求接收模块(图中未示出),用于接收客户端(浏览器)发送的对包含图片验证码的网页的网页访问请求,或接收客户端(浏览器)发送的产生新的图片验证码的请求,从而触发图片验证码生成***生成图片验证码。
存储模块704用于保存图片验证码与图片验证码所表达的字符的对应关系。
图片验证码所表达的字符即图片验证码的前景字符图像所代表的字符。
验证码下发模块706用于将图片验证码下发给客户端,使得客户端展示图片验证码。
字符接收模块708用于接收客户端提交的通过与图片验证码对应的验证码输入接口输入的字符。
匹配模块710用于将输入的字符与图片验证码所表达的字符相匹配,得到匹配结果。
网页下发模块712用于根据匹配结果向客户端下发对应的网页内容。
上述基于图片验证码的验证服务器还包括服务请求接收模块(图中未示出),用于接收客户端提交的服务请求,例如接收客户端提交的包含用户账号信息的登录请求或注册请求等。若输入的字符与图片验证码所表达的字符相匹配,则匹配结果对应的网页内容可为提交的服务请求对应的网页内容。若输入的字符与图片验证码所表达的字符不匹配,则匹配结果对应的网页内容可包含用于提示验证码输入错误的信息。
上述图片验证码生成方法和***、基于图片验证码的验证方法和客户端及服务器,在图片验证码中用与背景图片颜色相融的干扰元素分割前景字符,可以认为干扰元素也成了背景图片的一部分,使得自动机在图片验证码中只能提取到前景字符碎片,而不能提取到整个前景字符,从而增加了自动机破解图片验证码的难度,有效地防止自动机批量注册、恶意破解、论坛灌水等,而前景字符虽然被分割,但前景字符碎片构成的整体轮廓还是可以使得图片验证码易于被用户识别,因此不会增加用户识别图片验证码的难度。
图8为能实现本发明实施例的一个计算机***1000的模块图。该计算机***1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机***1000也不能解释为需要依赖于或具有图示的示例性的计算机***1000中的一个或多个部件的组合。
图8中示出的计算机***1000是一个适合用于本发明的计算机***的例子。具有不同子***配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本、平板电脑等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图8所示,计算机***1000包括处理器1010、存储器1020和***总线1022。包括存储器1020和处理器1010在内的各种***组件连接到***总线1022上。处理器1010是一个用来通过计算机***中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。***总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过***总线1022进行数据通信。其中存储器1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作***和应用程序的主存储器。
计算机***1000还包括显示接口1030(例如,图形处理单元)、显示设备1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060(例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备。
计算机***1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机***1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机***1000访问的任何其它介质。
计算机***1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机***1000中。输入装置1080通常是通过输入接口1090连接到***总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机***1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机***1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机***1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G或4G蜂窝通信***中进行互联网访问。
应当指出的是,其它包括比计算机***1000更多或更少的子***的计算机***也能适用于发明。例如,计算机***1000可以包括能在短距离内交换数据的蓝牙单元,用于照相的图像传感器,以及用于测量加速度的加速计。
如上面详细描述的,适用于本发明的计算机***1000能执行图片验证码生成方法的指定操作。计算机***1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的图片验证码生成方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种图片验证码生成方法,包括以下步骤:
获取背景图片;
获取前景字符;
将所述前景字符嵌入所述背景图片中,得到图片验证码;
在所述图片验证码中生成分割所述前景字符且与所述背景图片颜色相融的干扰元素。
2.根据权利要求1所述的图片验证码生成方法,其特征在于,所述在所述图片验证码中生成分割所述前景字符且与所述背景图片颜色相融的干扰元素的步骤包括:
在所述前景字符上选取像素点,在所述图片验证码中绘制经过所述像素点的干扰线,将所述干扰线进行着色,使得所述干扰线与所述背景图片颜色相融。
3.根据权利要求1所述的图片验证码生成方法,其特征在于,所述在所述图片验证码中生成分割所述前景字符且与所述背景图片颜色相融的干扰元素的步骤包括:
沿所述前景字符的轮廓生成分割所述前景字符的字符笔画的分割线,使所述前景字符形成虚线字符,将所述分割线进行着色,使得所述分割线与所述背景图片颜色相融。
4.一种基于图片验证码的验证方法,包括以下步骤:
接收并展示服务器发送的图片验证码,所述图片验证码中包含干扰元素,所述干扰元素分割所述图片验证码中的前景字符且与所述图片验证码中的背景图片颜色相融;
获取通过与所述图片验证码对应的验证码输入接口输入的字符;
将输入的字符发送至所述服务器,使得所述服务器根据输入的字符与所述图片验证码获得匹配结果;
接收并展示所述服务器返回的与所述匹配结果对应的网页内容。
5.根据权利要求4所述的基于图片验证码的验证方法,其特征在于,所述干扰元素为经过所述前景字符上的像素点的干扰线。
6.根据权利要求4所述的基于图片验证码的验证方法,所述干扰元素为沿所述前景字符的轮廓生成的分割线,所述分割线分割所述前景字符的字符笔画,使所述前景字符形成虚线字符。
7.一种基于图片验证码的验证方法,包括以下步骤:
生成图片验证码,所述图片验证码按照权利要求1至3任一所述的图片验证码生成方法生成;
保存图片验证码与图片验证码所表达的字符的对应关系;
将所述图片验证码下发给客户端,使得所述客户端展示所述图片验证码;
接收所述客户端提交的通过与所述图片验证码对应的验证码输入接口输入的字符;
将所述输入的字符与所述图片验证码所表达的字符相匹配,得到匹配结果;
根据所述匹配结果向所述客户端下发对应的网页内容。
8.一种图片验证码生成***,其特征在于,包括:
前景获取模块,用于获取背景图片;
字符获取模块,用于获取前景字符;
合成模块,用于将所述前景字符嵌入所述背景图片中,得到图片验证码;
干扰元素生成模块,用于在所述图片验证码中生成分割所述前景字符且与所述背景图片颜色相融的干扰元素。
9.根据权利要求8所述的图片验证码生成***,其特征在于,所述干扰元素生成模块用于在所述前景字符上选取像素点,在所述图片验证码中绘制经过所述像素点的干扰线,将所述干扰线进行着色,使得所述干扰线与所述背景图片颜色相融。
10.根据权利要求8所述的图片验证码生成***,其特征在于,所述干扰元素生成模块用于沿所述前景字符的轮廓生成分割所述前景字符的字符笔画的分割线,使所述前景字符形成虚线字符,将所述分割线进行着色,使得所述分割线与所述背景图片颜色相融。
11.一种基于图片验证码的验证客户端,其特征在于,包括:
验证码接收模块,用于接收服务器发送的图片验证码,所述图片验证码中包含干扰元素,所述干扰元素分割所述图片验证码中的前景字符且与所述图片验证码中的背景图片颜色相融;
验证码展示模块,用于展示所述图片验证码;
字符获取模块,用于获取通过与所述图片验证码对应的验证码输入接口输入的字符;
字符发送模块,用于将输入的字符发送至所述服务器,使得所述服务器根据输入的字符与所述图片验证码获得匹配结果;
网页接收模块,用于接收所述服务器返回的与所述匹配结果对应的网页内容;
网页展示模块,用于展示所述网页内容。
12.根据权利要求11所述的基于图片验证码的验证客户端,其特征在于,所述干扰元素为经过所述前景字符上的像素点的干扰线。
13.根据权利要求11所述的基于图片验证码的验证客户端,所述干扰元素为沿所述前景字符的轮廓生成的分割线,所述分割线分割所述前景字符的字符笔画,使所述前景字符形成虚线字符。
14.一种基于图片验证码的验证服务器,其特征在于,包括:
权利要求8至10任一所述的图片验证码生成***;
存储模块,用于保存图片验证码与图片验证码所表达的字符的对应关系;
验证码下发模块,用于将所述图片验证码下发给客户端,使得所述客户端展示所述图片验证码;
字符接收模块,用于接收所述客户端提交的通过与所述图片验证码对应的验证码输入接口输入的字符;
匹配模块,用于将所述输入的字符与所述图片验证码所表达的字符相匹配,得到匹配结果;
网页下发模块,用于根据所述匹配结果向所述客户端下发对应的网页内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410055504.3A CN104852889A (zh) | 2014-02-18 | 2014-02-18 | 图片验证码生成方法和***、验证方法和客户端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410055504.3A CN104852889A (zh) | 2014-02-18 | 2014-02-18 | 图片验证码生成方法和***、验证方法和客户端及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104852889A true CN104852889A (zh) | 2015-08-19 |
Family
ID=53852249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410055504.3A Pending CN104852889A (zh) | 2014-02-18 | 2014-02-18 | 图片验证码生成方法和***、验证方法和客户端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104852889A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016169437A1 (zh) * | 2015-04-23 | 2016-10-27 | 腾讯科技(深圳)有限公司 | 验证图片的生成方法、装置以及服务器 |
CN106096963A (zh) * | 2016-06-29 | 2016-11-09 | 深圳信息职业技术学院 | 一种验证码的生成方法和装置以及验证方法和装置 |
CN106127836A (zh) * | 2016-06-30 | 2016-11-16 | 北京奇艺世纪科技有限公司 | 验证码图片生成方法及装置 |
CN106203058A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇艺世纪科技有限公司 | 验证码生成方法及装置 |
WO2017148315A1 (zh) * | 2016-03-04 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 基于验证码的验证处理方法及装置 |
CN108200043A (zh) * | 2017-12-28 | 2018-06-22 | 中国联合网络通信集团有限公司 | 图片验证码验证方法和图片验证码验证装置 |
CN108804713A (zh) * | 2018-06-29 | 2018-11-13 | 上海掌门科技有限公司 | 图像输出方法、电子设备和计算机可读介质 |
CN109257168A (zh) * | 2018-09-21 | 2019-01-22 | 深圳市元征科技股份有限公司 | 一种图片验证码的生成方法、装置、设备及介质 |
CN109495275A (zh) * | 2018-12-27 | 2019-03-19 | 北京航天福道高技术股份有限公司 | 生成随机验证码的设置方法 |
CN109933969A (zh) * | 2017-12-15 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 验证码识别方法、装置、电子设备及可读存储介质 |
CN109977649A (zh) * | 2019-02-13 | 2019-07-05 | 平安科技(深圳)有限公司 | 图片验证码生成方法、装置、存储介质和计算机设备 |
CN110730152A (zh) * | 2018-07-16 | 2020-01-24 | 杭州海康威视数字技术股份有限公司 | 一种登录验证方法、装置及电子设备 |
WO2020155772A1 (zh) * | 2019-01-28 | 2020-08-06 | 平安科技(深圳)有限公司 | 验证图片发送方法、合成方法及装置、存储介质和终端 |
CN112839026A (zh) * | 2020-11-30 | 2021-05-25 | 中冶华天南京工程技术有限公司 | 基于随机网格与随机水印轮廓的行为验证码生成及验证方法 |
CN112966252A (zh) * | 2021-04-26 | 2021-06-15 | 平安国际智慧城市科技股份有限公司 | 一种基于密码技术的客户端验证方法、装置、电子设备及介质 |
CN113449281A (zh) * | 2021-07-14 | 2021-09-28 | 上海少侠网络科技有限公司 | 基于人类视觉错觉的无法破解的Captcha技术 |
CN114494474A (zh) * | 2022-01-17 | 2022-05-13 | 广东石油化工学院 | 人与合法设备通用验证码的生成方法、验证方法及装置 |
CN116383798A (zh) * | 2023-06-05 | 2023-07-04 | 深圳依时货拉拉科技有限公司 | 图片验证码生成方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100046790A1 (en) * | 2008-08-22 | 2010-02-25 | Koziol Anthony R | Method and system for generating a symbol identification challenge |
CN102298763A (zh) * | 2010-06-28 | 2011-12-28 | 腾讯科技(北京)有限公司 | 一种图片验证码的生成方法及*** |
-
2014
- 2014-02-18 CN CN201410055504.3A patent/CN104852889A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100046790A1 (en) * | 2008-08-22 | 2010-02-25 | Koziol Anthony R | Method and system for generating a symbol identification challenge |
CN102298763A (zh) * | 2010-06-28 | 2011-12-28 | 腾讯科技(北京)有限公司 | 一种图片验证码的生成方法及*** |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016169437A1 (zh) * | 2015-04-23 | 2016-10-27 | 腾讯科技(深圳)有限公司 | 验证图片的生成方法、装置以及服务器 |
US10439818B2 (en) | 2015-04-23 | 2019-10-08 | Tencent Technology (Shenzhen) Company Limited | Captcha image generation method and apparatus, and server |
WO2017148315A1 (zh) * | 2016-03-04 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 基于验证码的验证处理方法及装置 |
CN106096963A (zh) * | 2016-06-29 | 2016-11-09 | 深圳信息职业技术学院 | 一种验证码的生成方法和装置以及验证方法和装置 |
CN106203058B (zh) * | 2016-06-30 | 2019-07-09 | 北京奇艺世纪科技有限公司 | 验证码生成方法及装置 |
CN106127836A (zh) * | 2016-06-30 | 2016-11-16 | 北京奇艺世纪科技有限公司 | 验证码图片生成方法及装置 |
CN106203058A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇艺世纪科技有限公司 | 验证码生成方法及装置 |
CN106127836B (zh) * | 2016-06-30 | 2019-11-19 | 北京奇艺世纪科技有限公司 | 验证码图片生成方法及装置 |
CN109933969B (zh) * | 2017-12-15 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 验证码识别方法、装置、电子设备及可读存储介质 |
CN109933969A (zh) * | 2017-12-15 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 验证码识别方法、装置、电子设备及可读存储介质 |
CN108200043A (zh) * | 2017-12-28 | 2018-06-22 | 中国联合网络通信集团有限公司 | 图片验证码验证方法和图片验证码验证装置 |
CN108804713A (zh) * | 2018-06-29 | 2018-11-13 | 上海掌门科技有限公司 | 图像输出方法、电子设备和计算机可读介质 |
CN108804713B (zh) * | 2018-06-29 | 2022-03-04 | 上海掌门科技有限公司 | 图像输出方法、电子设备和计算机可读介质 |
CN110730152B (zh) * | 2018-07-16 | 2021-11-26 | 杭州海康威视数字技术股份有限公司 | 一种登录验证方法、装置及电子设备 |
CN110730152A (zh) * | 2018-07-16 | 2020-01-24 | 杭州海康威视数字技术股份有限公司 | 一种登录验证方法、装置及电子设备 |
CN109257168A (zh) * | 2018-09-21 | 2019-01-22 | 深圳市元征科技股份有限公司 | 一种图片验证码的生成方法、装置、设备及介质 |
CN109495275A (zh) * | 2018-12-27 | 2019-03-19 | 北京航天福道高技术股份有限公司 | 生成随机验证码的设置方法 |
WO2020155772A1 (zh) * | 2019-01-28 | 2020-08-06 | 平安科技(深圳)有限公司 | 验证图片发送方法、合成方法及装置、存储介质和终端 |
CN109977649A (zh) * | 2019-02-13 | 2019-07-05 | 平安科技(深圳)有限公司 | 图片验证码生成方法、装置、存储介质和计算机设备 |
CN112839026A (zh) * | 2020-11-30 | 2021-05-25 | 中冶华天南京工程技术有限公司 | 基于随机网格与随机水印轮廓的行为验证码生成及验证方法 |
CN112839026B (zh) * | 2020-11-30 | 2022-07-26 | 中冶华天南京工程技术有限公司 | 基于随机网格与随机水印轮廓的行为验证码生成及验证方法 |
CN112966252A (zh) * | 2021-04-26 | 2021-06-15 | 平安国际智慧城市科技股份有限公司 | 一种基于密码技术的客户端验证方法、装置、电子设备及介质 |
CN112966252B (zh) * | 2021-04-26 | 2023-11-24 | 平安国际智慧城市科技股份有限公司 | 一种基于密码技术的客户端验证方法、装置、电子设备及介质 |
CN113449281A (zh) * | 2021-07-14 | 2021-09-28 | 上海少侠网络科技有限公司 | 基于人类视觉错觉的无法破解的Captcha技术 |
CN114494474A (zh) * | 2022-01-17 | 2022-05-13 | 广东石油化工学院 | 人与合法设备通用验证码的生成方法、验证方法及装置 |
CN114494474B (zh) * | 2022-01-17 | 2022-09-20 | 广东石油化工学院 | 人与合法设备通用验证码的生成方法、验证方法及装置 |
CN116383798A (zh) * | 2023-06-05 | 2023-07-04 | 深圳依时货拉拉科技有限公司 | 图片验证码生成方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104852889A (zh) | 图片验证码生成方法和***、验证方法和客户端及服务器 | |
US10305889B2 (en) | Identity authentication method and device and storage medium | |
CN104468531B (zh) | 敏感数据的授权方法、装置和*** | |
US20160241589A1 (en) | Method and apparatus for identifying malicious website | |
US9027837B2 (en) | Method of recognizing QR code in image data and apparatus and method for converting QR code in content data into touchable object | |
US20090285444A1 (en) | Web-Based Content Detection in Images, Extraction and Recognition | |
CN107609122B (zh) | 广告屏蔽规则的更新方法、装置、服务器和存储介质 | |
CN103425736A (zh) | 一种网页信息识别方法、装置及*** | |
WO2016188029A1 (zh) | 解析二维码的方法及装置、计算机可读存储介质、计算机程序产品与终端设备 | |
CN104036160A (zh) | 一种网页浏览方法、装置及浏览器 | |
WO2014176895A1 (en) | Method, terminal, server and system for page jump | |
CN108574721B (zh) | 一种登录方法、装置和服务器、用户终端、可读存储介质 | |
US11164052B2 (en) | Image processing of webpages | |
CN104683963A (zh) | 一种信息处理方法及电子设备 | |
CN106357835B (zh) | 一种用于确定目标ip地址所属地域的方法与设备 | |
CN103544150A (zh) | 为移动终端浏览器提供推荐信息的方法及*** | |
CN110677506B (zh) | 网络访问方法、装置、计算机设备及存储介质 | |
CN112511459A (zh) | 一种流量识别方法、装置、电子设备及存储介质 | |
CN111651749A (zh) | 基于密码找回账号的方法、装置、计算机设备及存储介质 | |
CN104021124A (zh) | 用于处理网页数据的方法、装置和*** | |
CN109902269A (zh) | 一种文档显示方法、装置、电子设备和可读存储介质 | |
CN104573486A (zh) | 漏洞检测方法和装置 | |
CN111953647B (zh) | 安全校验方法、装置、电子设备和存储介质 | |
CN115344315A (zh) | 小程序页面的皮肤切换方法、装置和电子设备 | |
CN103246501A (zh) | 一种分享应用的方法以及客户端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150819 |