具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
图1为可以由本发明实施例使用的典型数据处理系统的示例。本领域技术人员可以理解,图1阐释了数据处理系统的多个组件,并不意味着代表组件连接的任何特定架构和方式。还应当知道具有较少组件或者可能具有较多组件的网络计算机和其它数据处理系统也可以用于本发明。
如图1所示,数据处理系统10可以包括总线11。处理器12、易失性存储器13以及非易失性存储器14和/或海量存储器15均连接到总线11,通过总线11进行数据交换和通信。微处理器12可以是独立的处理器,也可以是一个或者多个处理器集合。总线11将上述多个组件连接在一起,同时将上述组件连接到显示控制器16和显示装置以及输入/输出(I/0)装置17。输入/输出(I/0)装置17至少包括以无线/有线方式收发网络数据网络接口,其还可以包括鼠标、键盘、调制解调器、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置17通过输入/输出控制器18与系统相连。
计算机系统10中的易失性存储器13在本发明实施例中也称为内存,其具有数据读写速度快的特点,具体地,易失性存储器13可由动态随机读写存储器(DRAM)实现,动态随机读写存储器需要持续供电以更新或者维持存储器中的数据。在本发明实施例中,在内存13中设置有存储区域作为缓存区域对数据进行缓存。
通常而言,非易失性存储器14是指当电流关掉后,所存储的数据不会消失的存储器,其可以包括例如只读存储器(ROM)和闪存(Flash Memory)。非易失性存储器典型地用于存储系统启动的必要程序或其他程序。
通常而言,海量存储器15可以是磁性硬盘驱动器或者磁性光学驱动器或者可以存储大量数据的存储器系统的其他类型,在某些情况下,海量存储器15也可以利用具有较大数据容量的闪存替代,海量存储器15可以在系统切断电源之后还保持大量数据。尽管图1所示的海量存储器15是与数据处理系统的其它组件直接连接的本地设备,本领域技术人员应当知道本发明可以使用远程海量存储器,例如与数据处理系统通过网络接口相连的网络存储装置,该网络接口例如为调制解调器或者以太网接口。总线11可以包括通过多个本领域公知的桥连接器、控制器和/或适配器,相互连接的一条或者多条总线。在实施例中I/0控制器18包括用于控制USB外围设备的USB(通用串行总线)适配器、用于IEEE1394外围设备的IEEE1394控制器或者用于控制蓝牙外围设备的蓝牙控制器,以及适用于其它外围设备接口标准的外围设备控制器。
以上描述了可以由本发明实施例使用的典型数据处理系统的示例,本领域技术人员可以理解,上述数据处理系统可以以上述架构形成为移动电话、平板电脑、便携计算机、超级本计算机、台式计算机、MP3(动态影像专家压缩标准音频层面3,Moving PictureExperts Group Audio Layer III)播放器或MP4(动态影像专家压缩标准音频层面4,Moving Picture Experts Group Layer III)播放器等不同的形式。
本领域技术人员可以理解,本发明的一些实施例可以全部或至少部分计算机程序实现。也就是说,本发明的实施例可以在计算机系统10或者其他数据处理系统中以例如微处理器的处理器执行包含在存储器中的指令序列实现,所述存储器可以是易失性存储器或者远程存储装置。在多个实施例中,硬连线电路可以与软件指令结合应用,以实现本发明实施例。如此,该技术并不局限于硬件电路和软件的任何特定结合,也不局限于数据处理系统执行的任何特定指令源。另外,在具体实施方式部分,各种功能和操作被描述为由计算机代码执行或者由计算机代码引发以简化该描述。然而,本领域技术人员可以认识到该表达意味着该功能可以由处理器执行代码实现。
第一实施例
图2是本发明第一实施例的动态验证码图片的生成方法的流程图。如图2所示,所述方法包括:
步骤210、获取验证码字符串。
具体地,验证码字符串包括至少两个字符。在本发明实施例中,字符是指人类语言最小的表义符号,其包括数字、字母、汉字和符号,其中,字母可以包括英文字母、拉丁字母、希腊字母等等。同时,字符串是指由至少两个字符组成的字符序列。举例来说,验证字符串“GUCC”为由4个大写英文字母组成的字符串。
在本步骤,可以通过随机函数或伪随机函数生成验证码字符串。例如,通过随机函数产生若干个随机数,然后根据预先设定的数字与字符之间的对应关系将随机数转换为对应的字符,从而得到随机的验证码字符串。
步骤220、根据所述验证码字符串获取字符图像组,所述字符图像组包括所述验证码字符串中每个字符对应的字符图像。
在本步骤,需要将文本格式的验证码字符串转换为对应的图像数据以供后续步骤进行模糊和刚体转换处理。具体地,可以预先为系统可识别的所有字符设置对应的一个或一组字符图像,根据验证码字符串中包括的字符,选取对应的字符图像供后续处理。例如,验证字符串“GUCC”在本步骤可以被分别转换为四个独立的字符图像,如图3所示。
可替代地,也可以根据图像生成算法直接根据字符文本数据生成对应的字符图像。
步骤230、按预定方式对字符图像组进行至少两组图像处理,分别获取对应的至少两个待合并字符图像组,所述图像处理包括模糊处理和刚体变换处理。
其中,每个所述待合并字符图像组包括所述验证码字符串中每个字符对应的待合并字符图像,不同待合并字符图像组中对应于相同字符的待合并字符图像具有不同的刚体变换状态。
在本实施例中,对步骤220获得的字符图像组分别进行多组图像处理,从而分别获得与最终动态验证码图片中的每一帧静态验证码图片对应的多组待合并字符图像组,其中,每组图像处理包括模糊处理和刚体变换处理。
在图像处理领域,通常可以通过镜头虚化算法或羽化算法的使得图像变得模糊。图4是通过羽化方式获得的字符“G”经模糊处理后字符图像。
同时,也可以通过像素重分布的方式使得图像变得模糊。具体而言,通过获取字符图像的像素,并使得像素在预定的半径内以随机的方式重分布从而可以获得以散点形式呈现的模糊处理后的字符图像。由于像素在较小的预定半径内随机分布因此人眼从整体上仍然可以识别图像所表示的字符。例如,图5是字符“G”经像素重分布处理后的图像,可以看出,根据图5人眼仍然能够识别出该图像代表字符“G”。本领域技术人员可以理解,所述随机分布的半径设定的越大,模糊处理后的图像与原有图像的差别越大,越难以识别,其模糊程度也相应的更大。
当然,本领域技术人员可以理解,还可以采用其它未提及的数字图像处理方法来进行所述的模糊处理。
在本实施例的一个优选实施方式中,经模糊处理后,不同待合并字符图像组中对应于相同字符的待合并字符图像具有不同的模糊程度。也即,在为了获取最终动态验证码图片中的每一帧静态验证码图片所对应的待合并字符图像组而进行的多组图像处理中,每组图像处理中的模糊处理采取不同的模糊程度。以验证字符串为“GUCC”为例,可以将不同帧的静态验证码图片所对应的待合并字符图像的模糊程度设定得不同,如图5a和图5b所示,图5a和图5b分别为以像素重分布为模糊处理手段前提下,两个不同的待合并字符图像组中字符“G”对应的待合并字符图像的示意图。通过使得不同帧对应的图像具有不同的模糊程度,可以降低自动识别的识别率。
在本实施例的另一个优选实施方式中,经模糊处理后,待合并字符图像组中可以至少存在两个具有不同的模糊程度的待合并字符图像。也即,在同一帧静态验证码图片对应的待合并字符图像中,不同位置字符对应的待合并字符图像可能具有不同的模糊程度。仍然以验证字符串为“GUCC”为例,图6是以像素重分布为模糊处理手段前提下,同一个待合并字符图像组中,字符“G”和字符“U”对应的待合并字符图像的示意图,可以看出字符“G”和字符“U”对应的待合并字符图像具有不同模糊程度。通过使得同一帧静态验证码图片中不同字符对应的字符图像具有不同的模糊程度,可以进一步降低自动识别的识别率。
在本实施例的另一个优选实施方式中,经模糊处理后,不同待合并字符图像组中对应于相同字符的待合并字符图像具有不同的模糊方式。也即,在为了获取最终动态验证码图片中的每一帧静态验证码图片所对应的待合并字符图像组而进行的多组图像处理中,每组图像处理中的模糊处理采取不同的模糊方式。例如,在不同的待合并字符图像组中,字符“G”对应的字符图像分别采用羽化模糊方式处理和像素重分布模糊方式处理。通过使得不同帧对应的图像具有不同的模糊程度,可以进一步降低自动识别的识别率。
在本实施例的另一个优选实施方式中,经模糊处理后,每个待合并字符图像组中至少存在两个具有不同的模糊方式的待合并字符图像。也即,在同一帧静态验证码图片对应的待合并字符图像中,不同位置字符对应的待合并字符图像可能具有不同的模糊方式。仍然以验证字符串为“GUCC”为例,图7是字符“G”和字符“U”对应的待合并字符图像的示意图,可以看出字符“G”和字符“U”对应的待合并字符图像具有不同模糊方式。通过使得同一帧静态验证码图片中不同字符对应的字符图像具有不同的模糊方式,可以进一步降低自动识别的识别率。
同时,在本步骤中,除进行模糊处理外,还对模糊处理前或模糊处理后的字符图像进行刚体变换处理。刚体变换是指在二维或三维空间内将对象进行旋转和/或平移的运动。对模糊处理前或模糊处理后的字符图像进行刚体变换处理,可以使得最终动态验证码图片中的每一帧静态验证码图片中相同位置的字符具有不同的刚体变换状态,也即,不同的旋转角度和/或平移位置,由此,可以使得最终的动态验证码图片中的字符呈现出运动的状态。
当然,本领域技术人员可以理解,在本实施例中,对于模糊处理和刚体变换处理的顺序并不限制,例如,在一个优选实施方式中,可以先执行刚体变换处理再执行模糊处理,在此前提下,步骤230可以包括如下步骤:
步骤231、对字符图像组分别进行至少两组刚体变换处理,分别获得至少两个经刚体变换处理的字符图像组,所述经刚体变换处理的字符图像组包括与验证字符串的每个字符相对应的经刚体变换处理的字符图像,其中,不同经刚体变换处理的字符图像组中对应于相同位置字符的经刚体变换处理的字符图像具有不同的刚体变换状态;
步骤232、按预定方式对每个所述经刚体变换处理的字符图像组进行模糊处理获得对应的待合并字符图像组。
当然,在另一个优选实施方式中,也可以先执行模糊处理,再执行刚体变换处理,在此前提下,步骤230可以包括如下步骤:
步骤231’、按预定方式对字符图像组进行至少两组模糊处理,分别获得对应的至少两个经模糊处理的字符图像组,所述经模糊处理的字符图像组包括与验证字符串的每个字符相对应的经模糊处理的字符图像;
步骤232’、对每个所述经模糊处理的字符图像组分别进行刚体变换获得对应的待合并字符图像组。
步骤240、分别合并所述至少两个待合并字符图像组的待合并字符图像获取对应的至少两个不同的静态验证码图片。
在本步骤,对于每个待合并字符图像组,将组中的所有字符图像按照验证字符串的字符排列顺序进行合并获得该待合并字符图像组对应的静态验证码图片,静态验证码图片后续被作为动态验证码图片的一帧。仍然以验证字符串为“GUCC”为例,图8a-8d是合并后获得静态验证码图片的示意图,如图8所示,统一静态验证码图片中的字符具有不同的刚体状态,各静态验证码图片之间进行横向比较还可看到,相同字符对应的字符图像也均具有不同的刚体状态,部分字符对应的字符图像还具有不同的模糊程度。
步骤250、合并所述静态验证码图片获取动态验证码图片,所述动态验证码图片逐帧呈现所述至少两个不同的静态验证码图片。
本步骤将静态验证码图片合并获得以逐帧呈现方式进行动态呈现的动态验证码图片,参考图8的示例可知,在其所示的具体实施方式中,最终的动态验证码图片中,各字符不停地摆动,并且在不同的帧字符的模糊程度发生变化。
本发明实施例通过将模糊处理与刚体变换处理相结合,可以自动生成同时具有运动特征以及模糊特征的动态验证码图片,增加了机器识别验证码的难度,降低了自动识别率,提高了网络安全性。
第二实施例
图9是本发明第二实施例的动态验证码图片的生成方法中进行模糊处理的流程图。本发明第二实施例的整体步骤与第一实施例相同,但在按预定方式对字符图像组进行至少两组模糊处理和刚体变换处理,分别获取对应的至少两个待合并字符图像组的步骤中,进行模糊处理采用不同的方式,进行模糊处理的流程如图9所示,包括:
步骤910、选取所述验证码字符串中特定字符作为锚点字符。
选取锚点字符是为后续步骤对不同位置的字符设定不同模糊程度提供一个参考位置。对于不同组的模糊处理,锚点字符的选取可以相同也可以不同。
当对于不同组的模糊处理选取不同的锚点字符时,可以通过随机的方式来选取,也可以按照预定的规则来进行选取,例如,按照字符排列顺序来选取锚点字符,例如,对于验证字符串“GUCC”,第一帧静态验证码图片对应的锚点字符选取“G”,第二帧静态验证码图片对应的锚点字符选取“U”,依次类推。
步骤920、根据非锚点字符在验证码字符串中与所述锚点字符的距离确定各非锚点字符对应的模糊程度。
优选地,非锚点字符对应的模糊程度随所述距离的增大而增大,也即,锚点字符附近的非锚点字符对应的字符图像相对清晰,而远离锚点字符的非锚点字符的字符图像更加模糊。由此,本步骤可以使得在同一个静态验证码图片中,不同位置的字符所对应的字符图像具有不同的模糊程度,而且,该模糊程度具有一定变化规律,由此,在增加自动识别难度的同时,提高了人眼对于验证码的可识别率。
优选地,非锚点字符对应的模糊程度也可以随所述距离的增大而减小。
步骤930、按所述模糊程度对非锚点字符对应的字符图像或经刚体变换处理的字符图像进行模糊处理。
本实施例通过设定不同位置字符的模糊程度规律变化,在增加自动识别难度的同时,提高了人眼对于验证码的可识别率。
可以看到,图9所示的模糊处理流程中,对于锚点字符对应的字符图像未进行模糊处理,由此,使得该字符对应的图像,人眼可识别率较高,在动态选取锚点字符的前提下,这样的处理方式可以保证最终的动态验证码图片的不同帧可以分别清晰地呈现各个验证码字符,进一步提高人眼对于验证码的识别率。
当然,本领域技术人员可以理解,也可以对锚点字符对应的字符图像进行模糊处理。在本实施例的一个优选实施方式中,模糊处理流程还可以包括步骤910A,即,按预定模糊程度对锚点字符对应的字符图像或经刚体变换处理的字符图像进行模糊处理,所述预定模糊程度与非锚点字符对应的模糊程度不同。该步骤可以设置在步骤910后面的任意位置,对锚点字符对应的字符图像进行模糊处理,可以进一步增加自动识别的难度。
第三实施例
图10是本发明第三实施例的动态验证码图片的生成方法中进行模糊处理的流程图。本发明第三实施例的整体步骤与第一实施例相同,但在按预定方式对字符图像组进行至少两组模糊处理和刚体变换处理,分别获取对应的至少两个待合并字符图像组的步骤中,进行模糊处理采用了不同的方式,进行模糊处理的流程如图10所示,包括:
步骤1010、选取所述验证码字符串中特定字符作为锚点字符。
选取锚点字符是为后续步骤对不同位置的字符设定不同模糊方式提供一个参考位置。对于不同组的模糊处理,锚点字符的选取可以相同也可以不同。
当对于不同组的模糊处理选取不同的锚点字符时,可以通过随机的方式来选取,也可以按照预定的规则来进行选取,例如,按照字符排列顺序来选取锚点字符,例如,对于验证字符串“GUCC”,第一帧静态验证码图片对应的锚点字符选取“G”,第二帧静态验证码图片对应的锚点字符选取“U”,依次类推。
步骤1020、根据非锚点字符在验证码字符串中与所述锚点字符的距离确定各非锚点字符对应的模糊方式。
例如,锚点字符附近的非锚点字符对应的字符图像采用相对清晰的模糊方式,例如羽化,而远离锚点字符的非锚点字符的字符图像采用更加模糊的模糊方式,例如像素重分布。由此,本步骤可以使得在同一个静态验证码图片中,不同位置的字符所对应的字符图像具有不同的模糊方式,而且,该模糊方式具有一定变化规律,由此,在增加自动识别难度的同时,提高了人眼对于验证码的可识别率。
步骤1030、按所述模糊方式对非锚点字符对应的字符图像或经刚体变换处理的字符图像进行模糊处理。
本实施例通过设定不同位置字符的模糊方式规律变化,在增加自动识别难度的同时,提高了人眼对于验证码的可识别率。
可以看到,图10所示的模糊处理流程中,对于锚点字符对应的字符图像未进行模糊处理,由此,使得该字符对应的图像人眼可识别率较高,在动态选取锚点字符的前提下,这样的处理方式可以保证最终的动态验证码图片的不同帧可以分别清晰的呈现各个验证码字符,进一步提高人眼对于验证码的识别率。
当然,本领域技术人员可以理解,也可以对锚点字符对应的字符图像进行模糊处理。在本实施例的一个优选实施方式中,模糊处理流程还可以包括步骤1010A,按预定模糊方式对锚点字符对应的字符图像或经刚体变换处理的字符图像进行模糊处理。该步骤可以设置在步骤1010后面的任意位置,对锚点字符对应的字符图像进行模糊处理,可以进一步增加自动识别的难度。
第四实施例
图11是本发明第四实施例的动态验证码图片的生成装置的示意图。所述装置A0包括验证码获取单元A1、图像获取单元A2、处理单元A3、静态合并单元A4和动态合并单元A5。
其中,验证码获取单元A1用于获取验证码字符串,所述验证码字符串包括至少两个字符。
具体地,验证码字符串包括至少两个字符。在本发明实施例中,是指人类语言最小的表义符号,其包括数字、字母、汉字和符号,其中,字母可以包括英文字母、拉丁字母、希腊字母等等。同时,字符串是指由至少两个字符组成的字符序列。举例来说,验证字符串“GUCC”为由4个大写英文字母组成的字符串。
优选地,验证码获取单元A1可以通过随机函数或伪随机函数生成验证码字符串。
图像获取单元A2用于根据所述验证码字符串获取字符图像组,所述字符图像组包括所述验证码字符串中每个字符对应的字符图像。
处理单元A3用于按预定方式对字符图像组进行至少两组模糊处理和刚体变换处理,分别获取对应的至少两个待合并字符图像组,其中,每个所述待合并字符图像组包括所述验证码字符串中每个字符对应的待合并字符图像,不同待合并字符图像组中对应于相同字符的待合并字符图像具有不同的刚体变换状态。
在本实施例中,对图像获取单元A2获得的字符图像组分别进行多组图像处理,从而分别获得与最终动态验证码图片中的每一帧静态验证码图片对应的多组待合并字符图像组,其中,每组图像处理包括模糊处理和刚体变换处理。
在图像处理领域,通常可以通过镜头虚化算法或羽化算法的使得图像变得模糊。图4是通过羽化方式获得的字符“G”经模糊处理后字符图像。
同时,也可以通过像素重分布的方式使得图像变得模糊。具体而言,通过获取字符图像的像素,并使得像素在预定的半径内以随机的方式重分布从而可以获得以散点形式呈现的模糊处理后的字符图像。由于像素在较小的预定半径内随机分布因此人眼从整体上仍然可以识别图像所表示的字符。例如,图5a是字符“G”经像素重分布处理后的图像,可以看出,根据图5a人眼仍然能够识别出该图像代表字符“G”。本领域技术人员可以理解,所述随机分布的半径设定的越大,模糊处理后的图像与原有图像的差别越大,越难以识别,其模糊程度也相应的更大。
当然,本领域技术人员可以理解,还可以采用其它未提及的数字图像处理方法来进行所述的模糊处理。
在本实施例的一个优选实施方式中,经模糊处理后,不同待合并字符图像组中对应于相同字符的待合并字符图像具有不同的模糊程度。也即,在为了获取最终动态验证码图片中的每一帧静态验证码图片所对应的待合并字符图像而进行的多组图像处理中,每组图像处理中的模糊处理采取不同的模糊程度。以验证字符串为“GUCC”为例,可以将不同帧的静态验证码图片所对应的待合并字符图像的模糊程度设定得不同,如图5a和图5b所示,图5a和图5b分别为以像素重分布为模糊处理手段前提下,两个不同的待合并字符图像组中字符“G”对应的待合并字符图像的示意图。通过使得不同帧对应的图像具有不同的模糊程度,可以降低自动识别的识别率。
在本实施例的另一个优选实施方式中,经模糊处理后,待合并字符图像组中可以至少存在两个具有不同的模糊程度的待合并字符图像。也即,在同一帧静态验证码图片对应的待合并字符图像中,不同位置字符对应的待合并字符图像可能具有不同的模糊程度。仍然以验证字符串为“GUCC”为例,图6为以像素重分布为模糊处理手段前提下,字符“G”和字符“U”对应的待合并字符图像的示意图,可以看出字符“G”和字符“U”对应的待合并字符图像具有不同模糊程度。通过使得同一帧静态验证码图片中不同字符对应的字符图像具有不同的模糊程度,可以进一步降低自动识别的识别率。
在本实施例的另一个优选实施方式中,经模糊处理后,不同待合并字符图像组中对应于相同字符的待合并字符图像具有不同的模糊方式。也即,在为了获取最终动态验证码图片中的每一帧静态验证码图片所对应的待合并字符图像而进行的多组图像处理中,每组图像处理中的模糊处理采取不同的模糊方式。例如,在不同的待合并字符图像组中,字符“G”对应的字符图像分别采用羽化模糊方式处理和像素重分布模糊方式处理。通过使得不同帧对应的图像具有不同的模糊程度,可以进一步降低自动识别的识别率。
在本实施例的另一个优选实施方式中,经模糊处理后,每个待合并字符图像组中至少存在两个具有不同的模糊方式的待合并字符图像。也即,在同一帧静态验证码图片对应的待合并字符图像中,不同位置字符对应的待合并字符图像可能具有不同的模糊方式。仍然以验证字符串为“GUCC”为例,图7是字符“G”和字符“U”对应的待合并字符图像的示意图,可以看出字符“G”和字符“U”对应的待合并字符图像具有不同模糊方式。通过使得同一帧静态验证码图片中不同字符对应的字符图像具有不同的模糊方式,可以进一步降低自动识别的识别率。
在实施例中,可以先进行刚体转换处理再进行模糊处理,也可以先进行模糊处理再进行刚体转换处理。
在一个优选实施方式中,处理单元A3进一步包括第一刚体变换处理子单元A31和第一模糊处理子单元A32。
其中,第一刚体变换处理子单元A31用于对字符图像组分别进行至少两组刚体变换处理,分别获得至少两个经刚体变换处理的字符图像组,所述经刚体变换处理的字符图像组包括与验证字符串的每个字符相对应的经刚体变换处理的字符图像,其中,不同经刚体变换处理的字符图像组中对应于相同位置字符的经刚体变换处理的字符图像具有不同的刚体变换状态。
而第一模糊处理子单元A32用于按预定方式对每个所述经刚体变换处理的字符图像组进行模糊处理获得对应的待合并字符图像组。
在另一个优选实施方式中,处理单元A3进一步包括第二模糊处理子单元A33和第二刚体变换处理子单元A34
第二模糊处理子单元A33用于按预定方式对字符图像组进行至少两组模糊处理,分别获得对应的至少两个经模糊处理的字符图像组,所述经模糊处理的字符图像组包括与验证字符串的每个字符相对应的经模糊处理的字符图像。
而第二刚体变换处理子单元A34用于对每个所述经模糊处理的字符图像组分别进行刚体变换获得对应的待合并字符图像组。
同时,从另一个角度,对于模糊处理可以采用不同的方式,处理单元A3可以包括一个专门进行模糊处理的模糊处理子单元A35,其结构如图12所示,在一个优选实施方式中,其可以包括第一锚点选取模块A351、模糊程度确定模块A352和第一非锚点处理模块A353。
其中,第一锚点选取模块A351用于选取所述验证码字符串中特定字符作为锚点字符。
于不同组的模糊处理,锚点字符的选取可以相同也可以不同。
当对于不同组的模糊处理选取不同的锚点字符时,可以通过随机的方式来选取,也可以按照预定的规则来进行选取,例如,按照字符排列顺序来选取锚点字符,例如,对于验证字符串“GUCC”,第一帧静态验证码图片对应的锚点字符选取“G”,第二帧静态验证码图片对应的锚点字符选取“U”,依次类推。
模糊程度确定模块A352用于根据非锚点字符在验证码字符串中与所述锚点字符的距离确定各非锚点字符对应的模糊程度。
优选地,非锚点字符对应的模糊程度随所述距离的增大而增大,或者,非锚点字符对应的模糊程度也可以随所述距离的增大而减小。
第一非锚点处理模块A353用于按所述模糊程度对非锚点字符对应的字符图像或经刚体变换处理的字符图像进行模糊处理。
进一步优选地,所述模糊处理子单元A35还可以包括第一锚点处理模块A354,其用于按预定模糊程度对锚点字符对应的字符图像或经刚体变换处理的字符图像进行模糊处理,所述预定模糊程度与非锚点字符对应的模糊程度不同。对锚点字符对应的字符图像进行模糊处理,可以进一步增加自动识别的难度。
上述实施方式通过设定不同位置字符的模糊程度规律变化,在增加自动识别难度的同时,提高了人眼对于验证码的可识别率。
在另一个优选实施方式中,处理单元A3可以包括一个专门进行模糊处理的模糊处理子单元A35,可选地,其可以包括第二锚点选取模块A355、模糊方式确定模块A356和第二非锚点处理模块A357。
其中,第二锚点选取模块A355用于选取所述验证码字符串中特定字符作为锚点字符。
与第一锚点选取模块351类似,于不同组的模糊处理,锚点字符的选取可以相同也可以不同。
模糊方式确定模块A356用于根据非锚点字符在验证码字符串中与所述锚点字符的距离确定各非锚点字符对应的模糊方式;
第二非锚点处理模块A357按所述模糊方式对非锚点字符对应的字符图像或经刚体变换处理的字符图像进行模糊处理。
进一步优选地,所述模糊处理子单元A35还可以包括第二锚点处理模块358,其用于按预定模糊方式对锚点字符对应的字符图像或经刚体变换处理的字符图像进行模糊处理。对锚点字符对应的字符图像进行模糊处理,可以进一步增加自动识别的难度。
上述实施方式通过设定不同位置字符的模糊方式规律变化,在增加自动识别难度的同时,提高了人眼对于验证码的可识别率。
静态合并单元A4用于分别合并所述至少两个待合并字符图像组的待合并字符图像获取对应的至少两个不同的静态验证码图片
动态合并单元A5用于合并所述静态验证码图片获取动态验证码图片,所述动态验证码图片逐帧呈现所述至少两个不同的静态验证码图片。
本发明实施例通过将模糊处理与刚体变换处理相结合,可以自动生成同时具有运动特征以及模糊特征的动态验证码图片,增加了机器识别验证码的难度,降低了自动识别率,提高了网络安全性。
第五实施例
图13是本发明第五实施例的动态验证码图片的验证方法的示意图。如图13所示,所述方法包括:
步骤1310、显示动态验证码图片,所述动态验证码图片包括至少两帧静态验证码图片,所述静态验证码图片显示有与验证码字符串对应的字符图像。
步骤1320、接收用户输入。
步骤1330、根据所述验证码字符串对用户输入进行验证。
其中,所述静态验证码图片的字符图像为经过模糊处理的字符图像,同时,不同的静态验证码图片中对应于相同字符的字符图像具有不同的刚体变换状态。
具体地,在图像处理领域,通常可以通过镜头虚化算法或羽化算法的使得图像变得模糊。图4是通过羽化方式获得的字符“G”经模糊处理后字符图像。
同时,也可以通过像素重分布的方式使得图像变得模糊。具体而言,通过获取字符图像的像素,并使得像素在预定的半径内以随机的方式重分布从而可以获得以散点形式呈现的模糊处理后的字符图像。由于像素在较小的预定半径内随机分布因此人眼从整体上仍然可以识别图像所表示的字符。例如,图5是字符“G”经像素重分布处理后的图像,可以看出,根据图5人眼仍然能够识别出该图像代表字符“G”。本领域技术人员可以理解,所述随机分布的半径设定的越大,模糊处理后的图像与原有图像的差别越大,越难以识别,其模糊程度也相应的更大。
当然,本领域技术人员可以理解,还可以采用其它未提及的数字图像处理方法来进行所述的模糊处理。
在本实施例的一个优选实施方式中,不同静态验证码图片中对应于相同字符的字符图像具有不同的模糊程度。也即,在不同的静态验证码图片中,对应于相同字符的字符图像所经过的模糊处理采取不同的模糊程度。通过使得不同帧对应的图像具有不同的模糊程度,可以降低自动识别的识别率。
在本实施例的另一个优选实施方式中,不同静态验证码图片中对应于相同字符的字符图像具有不同的模糊方式。也即,在不同的静态验证码图片中,对应于相同字符的字符图像所经过的模糊处理采取不同的模糊方式。通过使得同一帧静态验证码图片中不同字符对应的字符图像具有不同的模糊程度,可以进一步降低自动识别的识别率。
在本实施例的另一个优选实施方式中,静态验证码图片中至少存在两个具有不同的模糊程度的待合并字符图像,也即,在同一帧静态验证码图片的字符图像中,不同位置字符对应的字符图像可能具有不同的模糊程度。通过使得不同帧对应的图像具有不同的模糊程度,可以进一步降低自动识别的识别率。
在本实施例的另一个优选实施方式中,静态验证码图片中至少存在两个具有不同的模糊方式的待合并字符图像。也即,在动态验证码图片中的每一帧静态验证码图片中,不同的字符图像所经过的模糊处理采取不同的模糊方式。由此,可以进一步降低自动识别的识别率。
在本发明的一个优选实施方式中,静态验证码图片中包括锚点字符对应的字符图像和非锚点字符对应的字符图像,其中,非锚点字符对应的字符图像的模糊程度根据非锚点字符在验证码字符串中与所述锚点字符的距离的不同而不同。如图8a所示,在图8a所示的静态验证码图片中,字符“G”为锚点字符,非锚点字符为“U”、“C”、“C”,它们按照与“G”在验证字符串中距离的不同而具有不同的模糊程度。
优选地,非锚点字符对应的字符图像的模糊程度随所述距离的增大而增大,或者,非锚点字符对应的字符图像的模糊程度随所述距离的增大而减小。
在另一个优选实施方式中,静态验证码图片中包括锚点字符对应的字符图像和非锚点字符对应的字符图像,其中,非锚点字符对应的字符图像的模糊方式根据非锚点字符在验证码字符串中与所述锚点字符的距离的不同而不同,其表现形式如图7所示。
优选地,不同的静态验证码图片具有不同的锚点字符。
本发明实施例通过同时具有运动特征以及模糊特征的动态验证码图片进行验证,增加了机器识别验证码的难度,降低了自动识别率,提高了网络安全性。
第六实施例
图14是本发明第六实施例的动态验证码图片的验证装置的结构示意图。如图14所示,所述装置B0包括显示单元B1、交互单元B2和验证单元B3。
其中,显示单元B1用于显示动态验证码图片,所述动态验证码图片包括至少两帧静态验证码图片,所述静态验证码图片显示有与验证码字符串对应的字符图像;交互单元B2用于接收用户输入;验证单元B3用于根据所述验证码字符串对用户输入进行验证。
其中,所述静态验证码图片的字符图像为经过模糊处理的字符图像,同时,不同的静态验证码图片中对应于相同字符的字符图像具有不同的刚体变换状态。
在本实施例的一个优选实施方式中,不同静态验证码图片中对应于相同字符的字符图像具有不同的模糊程度;和/或,不同静态验证码图片中对应于相同字符的字符图像具有不同的模糊方式。
在本实施例的一个优选实施方式中,所述静态验证码图片中至少存在两个具有不同的模糊程度的待合并字符图像;和/或,所述静态验证码图片中至少存在两个具有不同的模糊方式的待合并字符图像。
在本实施例的一个优选实施方式中,静态验证码图片中包括锚点字符对应的字符图像和非锚点字符对应的字符图像,其中,非锚点字符对应的字符图像的模糊程度根据非锚点字符在验证码字符串中与所述锚点字符的距离的不同而不同。
优选地,非锚点字符对应的字符图像的模糊程度可以随所述距离的增大而增大。
相应地,非锚点字符对应的字符图像的模糊程度也可以随所述距离的增大而减小。
在本实施例的另一个优选实施方式中,静态验证码图片中包括锚点字符对应的字符图像和非锚点字符对应的字符图像,其中,非锚点字符对应的字符图像的模糊方式根据非锚点字符在验证码字符串中与所述锚点字符的距离的不同而不同。
优选地,不同的静态验证码图片具有不同的锚点字符。
本发明实施例通过同时具有运动特征以及模糊特征的动态验证码图片进行验证,增加了机器识别验证码的难度,降低了自动识别率,提高了网络安全性。
显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。