发明内容
本发明实施例提出一种图片验证码生成方法,以增强图片验证码被破解的难度,提高网络安全性。
本发明实施例还提出一种图片验证码生成装置,以增强图片验证码被破解的难度,提高网络安全性。
本发明实施例的技术方案如下:
一种图片验证码生成方法,该方法包括:
建立包括N种图片验证码的图片验证码库,其中N为大于或者等于2的自然数;
生成图片验证码类别序号Ni,从所述图片验证码库中选择第Ni种图片验证码并呈现给用户,所述图片验证码库中的图片验证码由背景及背景噪声、前景噪声、前景文字类型和前景文字形变组成;其中对于任意两种图片验证码,背景及背景噪声、前景噪声、前景文字类型和前景文字形变中至少有一项不完全相同,其中在组成图片验证码的每一项中,又分为多个子类型,此多个子类型为互斥关系。
一种图片验证码生成装置,该装置包括图片验证码库建立单元和图片验证码确定单元,其中:
所述图片验证码库建立单元,用于建立包括N种图片验证码的图片验证码库,其中N为大于或者等于2的自然数;
所述图片验证码确定单元,用于生成图片验证码类别序号Ni,从所述图片验证码库中选择第Ni种图片验证码并呈现给用户,所述图片验证码库中的图片验证码由背景及背景噪声、前景噪声、前景文字类型和前景文字形变组成;其中对于任意两种图片验证码,背景及背景噪声、前景噪声、前景文字类型和前景文字形变中至少有一项不完全相同,其中在组成图片验证码的每一项中,又分为多个子类型,此多个子类型为互斥关系。
从上述技术方案可以看出,在本发明实施例中,首先建立包括N种图片验证码的图片验证码库,其中N为大于或者等于2的自然数,然后生成图片验证码类别序号Ni,再从图片验证码库中选择第Ni种图片验证码并呈现给用户。由此可见,应用本发明实施例以后,采用多种验证码融合策略,在验证过程中可以选择不同种类的验证码供用户进行验证,因此可以增强图片验证码被破解的难度,提高网络安全性。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
在本发明实施例中,采用多种验证码融合策略,在验证过程中可以选择不同种类的图片验证码供用户进行验证。
图1为根据本发明实施例的图片验证码生成方法的流程示意图。
如图1所示,该方法包括:
步骤101:建立包括N种图片验证码的图片验证码库,其中N为大于或者等于2的自然数。
步骤102:生成图片验证码类别序号Ni,从所述图片验证码库中选择第Ni种图片验证码并呈现给用户。
其中,可以利用某种规律性算法生成图片验证码类别序号Ni,也可以随机生成图片验证码类别序号Ni。由于随机性强,随机生成图片验证码类别序号Ni可以更好地增强抗破解能力。
具体地,对于随机生成图片验证码类别序号Ni的情形,可以首先生成随机数r,其中r∈[0,1],然后再计算Ni,其中Ni=round(r*N),round(r*N)为对r和N的乘积取整。计算出Ni后,再从图片验证码库中选择第Ni种图片验证码,并呈现给用户。
优选地,图片验证码库中每种图片验证码都包括至少1张图片验证码,在选择第Ni种图片验证码之后,再从第Ni种图片验证码中随机选择1张图片验证码,并且将所选中的图片验证码呈现给用户,从而进一步提高验证码的安全性。
常用图片验证码由背景及背景噪声,前景噪声,前景文字类型和前景文字形变等各项构成。对于图片验证码库中的任意两种图片验证码,背景及背景噪声、前景噪声、前景文字类型和前景文字形变中至少有一项不完全相同。
在组成图片验证码的每一项中,又可分为诸多子类型,此诸多子类型为互斥关系,即对每一个实际的验证码,只能从中选择一个子类型生成。
图2为根据本发明实施例多种类图片验证码组成示意图。
如图2所示,背景及背景噪声包括:单色背景、人生生成简单噪声的背景(比如雪花点)、简单图像纹理(比如水纹)或复杂图像纹理(比如自然图像)。对于任意两个图片验证码,只要单色背景、人生生成简单噪声的背景、简单图像纹理或复杂图像纹理这些子类型中至少有一子类型是不同的,则可以认为这两个图片验证码属于不同的背景及背景噪声,并且属于不同种类的图片验证码。
前景噪声包括对笔画断裂处理或叠加简单几何物体(比如Bezier曲线)。对于任意两个图片验证码,只要笔画断裂处理、叠加简单几何物体中至少有一子类型是不同的,则可以认为这两个图片验证码属于不同前景噪声,并且属于不同种类的图片验证码。
前景文字变形包括刚性变化(比如旋转、平移和尺度)和非线性形变(比如局部膨胀和扭曲)。对于任意两个图片验证码,只要刚性变化、非线性形变中至少有一子类型是不同的,则可以认为这两个图片验证码属于不同前景文字变形,并且属于不同种类的图片验证码。
前景文字类型包括字体和字体颜色。对于任意两个图片验证码,只要字体和字体颜色中至少有一子类型是不同的,则可以认为这两个图片验证码属于不同前景文字类型,并且属于不同种类的图片验证码。
总之,只要构成图片验证码的任一部分发生了变化,便可以认为属于不同种类的图片验证码。
本发明实施例还提出一种图片验证码生成装置。
图3为根据本发明实施例的图片验证码生成装置的结构示意图。
如图3所示,该装置包括图片验证码库建立单元301和图片验证码确定单元302,其中:
图片验证码库建立单元301,用于建立包括N种图片验证码的图片验证码库,其中N为大于或者等于2的自然数;
图片验证码确定单元302,用于生成图片验证码类别序号Ni,从所述图片验证码库中选择第Ni种图片验证码并呈现给用户。
其中,图片验证码确定单元302,用于随机生成图片验证码类别序号Ni,具体地,可以首先生成随机数r,其中r∈[0,1],并计算Ni,其中Ni=round(r*N),round(r*N)为对r和N的乘积取整。
可选地,图片验证码库建立单元301,用于建立包括N种图片验证码的图片验证码库,所述图片验证码库中的图片验证码由背景及背景噪声、前景噪声、前景文字类型和前景文字形变组成;其中
对于任意两种图片验证码,背景及背景噪声、前景噪声、前景文字类型和前景文字形变中至少有一项不完全相同。
优选地,图片验证码库建立单元301可以建立包括N种图片验证码的图片验证码库,其中N为大于或者等于2的自然数,并且每种图片验证码包括至少1张图片验证码;
图片验证码确定单元302,生成图片验证码类别序号Ni,从图片验证码库建立单元301建立的图片验证码库中选择第Ni种图片验证码,并从所述第Ni种图片验证码中再随机选择图片验证码,再将所选中的图片验证码呈现给用户。
由此可见,确定了图片验证码的种类后,优选在确定种类后的图片验证码集合中再随机选取图片验证码,从而可以进一步提高最终选中的图片验证码的安全性。
图4为根据本发明实施例的从多种图片验证码中选择图片验证码的示意图。由图4可见,可以从4种类型的图片验证码选择一种图片验证码呈现给用户。
类似地,背景及背景噪声包括:单色背景、人生生成简单噪声的背景(比如雪花点)、简单图像纹理(比如水纹)或复杂图像纹理(比如自然图像)。对于任意两个图片验证码,只要单色背景、人生生成简单噪声的背景、简单图像纹理或复杂图像纹理这些子类型中至少有一子类型是不同的,则可以认为这两个图片验证码属于不同的背景及背景噪声,并且属于不同种类的图片验证码。
前景噪声包括对笔画断裂处理或叠加简单几何物体(比如Bezier曲线)。对于任意两个图片验证码,只要笔画断裂处理、叠加简单几何物体中至少有一子类型是不同的,则可以认为这两个图片验证码属于不同前景噪声,并且属于不同种类的图片验证码。
前景文字变形包括刚性变化(比如旋转、平移和尺度)和非线性形变(比如局部膨胀和扭曲)。对于任意两个图片验证码,只要刚性变化、非线性形变中至少有一子类型是不同的,则可以认为这两个图片验证码属于不同前景文字变形,并且属于不同种类的图片验证码。
前景文字类型包括字体和字体颜色。对于任意两个图片验证码,只要字体和字体颜色中至少有一子类型是不同的,则可以认为这两个图片验证码属于不同前景文字类型,并且属于不同种类的图片验证码。
综上所述,在本发明实施例中,首先建立包括N种图片验证码的图片验证码库,其中N为大于或者等于2的自然数,然后生成图片验证码类别序号Ni,再从图片验证码库中选择第Ni种图片验证码并呈现给用户。由此可见,应用本发明实施例以后,采用多种验证码融合策略,在验证过程中可以选择不同种类的图片验证码供用户进行验证,因此可以增强图片验证码被破解的难度,提高网络安全性。
更具体地,设验证码Ni被破解概率为pi,由于验证码种类随机出现,无论破解者采用针对任何一种验证码的破解程序,其破解概率均降低为pi/(N+1)。假设破解者能够研制出判断验证码种类的算法(实质上,此类算法比验证码破解程序本身具有更高的难度),表示该验证码种类判断算法的判断准确率为m%。由于验证码种类判断算法和验证码破解算法为级联***,则最终算法对任意一种验证码破解成功率为pi*m%≤pi。
因此,可以看出破解者应用最智能算法的极端情况下,也最多只能持平于原有使用单一验证码的破解概率,所以应用本发明可以显著提高验证码***抗破解的安全性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。