一种验证码生成系统及方法

文档序号:7984162阅读:204来源:国知局
一种验证码生成系统及方法
【专利摘要】本发明公开了一种用于网络安全的验证码生成系统及方法,通过将验证码生成系统中的图片、干扰元素与字符内容组件化,并且在每个组件中添加上下文信息,解决了现有验证码图片亦遭破解的缺陷。验证码生成系统及方法根据一渲染风格配置信息建立多个上下文,各个上下文对应一种验证码图片风格配置,根据预设演算规则设定上下文执行顺序,并根据所述上下文执行顺序绘制图片验证码。应用本发明提出验证码生成系统及方法增强图片验证码被破解的难度,提高网络安全。
【专利说明】一种验证码生成系统及方法
【技术领域】
[0001]本申请属于网络应用领域,具体地说,涉及一种用于网络安全的验证码生成系统及方法。
【背景技术】
[0002]随着计算器与网络的日益普及,互联网已经深入至人们生活的各个角落,网络发展除了带来广大的便利性同时也带来各种挑战。一些恶意的使用者会利用机器人程序大量不当使用网络资源,例如群发垃圾邮件或以”饱和攻击”不断发出服务请求等手段,来降低服务器的效能。因此,为了避免上述恶意行为,服务器往往会搭配自动分辨善意或恶意使用者的程序工具,试图降低被恶意使用的风险。
[0003]图片验证码便是一种用于分便网络服务使用者是善意使用或恶意使用的一种程序工具。图片验证码是一幅含有字符的图片,会要求使用者回答图片上所显示的字符,只要正确回答辩会认为是善意使用,以供服务使用者执行相对应的后续操作。
[0004]现有的验证码生成系统,一般预先生成包含大量验证码图片的验证库,每一次的提交验证请求,系统将随机自验证库选取一张验证码图片。然而,常见验证码图片模式单一,仅是单一字符和单调的素色背景,即便存有相关防破解措施,例如背景的添加,干扰线的添加,但过多且设计不当的干扰造成了用户体验的下降。
[0005]此外,验证码的组成形式不可调整或调整不灵活,导致在遭到恶意行为后不能及时采取及时和有效的措施,随着上线时间的增加,仍很容易遭到破解,这就给网络安全带来了危机与缺陷。

【发明内容】

[0006]有鉴于此,本申请所要解决的技术问题是提供了用于网络安全的验证码生成系统及方法,通过将验证码生成系统中的图片、干扰元素与字符内容组件化,并且在每个组件中添加上下文信息,解决了现有验证码图片亦遭破解的缺陷。
[0007]为了解决上述技术问题,本申请公开了一种验证码生成系统,以增强图片验证码被破解的难度,提高网络安全。验证码生成系统包括上下文生成组件(Sharp contextgenerating module)、随机字符生成组件(Ramdon wordgenerating module)、背景生成组件(Background generating module)、字体注册组件(Font registing module)、字符建立组件(Letter paint module)、背景标志生成组件(logo paint module)与干扰生成组件(noise paint module)。上下文生成组件根据渲染风格配置文件建立多个对应所述各组件的上下文。随机字符生成组件根据所述上下文自一字符库随机建立字符,所述字符库包括以下一个或多个的组合:至少一英文字母、至少一阿拉伯数字与至少一符号。背景生成组件根据所述上下文建立背景图式,并根据所述渲染风格配置文件指定背景图式的大小。字体注册组件根据所述上下文定义所数字符的字体。字符建立组件通过所述字体注册组件所定义的字体,根据所述上下文将所述字符依所述字体绘制。背景标志生成组件根据所述渲染风格配置文件选取标志,并根据所述上下文将所述标志绘制。干扰生成组件根据所述渲染风格配置文件选取干扰,并根据所述上下文将干扰绘制。
[0008]本申请还公开了一种验证码生成方法,以增强图片验证码被破解的难度,提高网络安全。验证码生成方法应用于网络服务器中的验证码生成系统,该方法包括:根据渲染风格配置信息建立多个上下文,各个上下文对应一种验证码图片风格配置,其中所述渲染风格配置信息系由用户设定或网络服务器预设;根据预设演算规则设定上下文执行顺序,并根据所述上下文执行顺序执行所述上下文绘制图片验证码。
[0009]本申请又公开了一种验证码生成方法,对一张已经存在的图片验证码,进行再加工以增强图片验证码被破解的难度。验证码生成方法包括步骤:取得图片验证码与渲染风格配置信息,其中所述渲染风格配置信息系由用户设定或网络服务器预设;根据所述图片验证码生成原生上下文(original sharpcontext);根据所述渲染风格配置信息分析所述原生上下文建立需要的上下文;根据所述上下文与所述原生上下文重绘新的图片验证码。
[0010]与现有的方案相比,本申请所获得的技术效果:
[0011]I)验证码的渲染流程过程中更加灵活,可以根据环境,需求采用不同的渲染策略,因地制宜。
[0012]2)验证码也可以随时根据需要对组件的组合和顺序进行有机动态的调整,因而表现出的防止恶意行为能力更加强。
[0013]3)由于所有的组件都是根据相应的上下文来调整策略,而且在策略的选取上尤其重视用户的体验,因而该系统所渲染的验证码的用户体验佳。
[0014]4)染过程不仅可以采取用户的设定的渲染策略,还可以依照当前阶段图片的信息上下文来自动选取渲染策略,支持创建并渲染,还支持已存在的图片的渲染加工。
[0015]当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
【专利附图】

【附图说明】
[0016]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0017]图1是本申请实施例的验证码生成系统的示意图;
[0018]图2是本申请实施例的验证码生成方法的流程图;
[0019]图3是本申请实施例根据图2的验证码生成方法中步骤S32的子步骤流程图;
[0020]图4是本申请根据另一实施例的验证码生成方法的流程图;
[0021]图5是本申请根据又一实施例的验证码生成方法的流程图。
【具体实施方式】
[0022]以下将配合图式及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
[0023]在本申请实施例中,通过将验证码生成系统中的图片、干扰元素与字符内容组件化,并且在每个组件中添加上下文信息,解决了现有验证码图片亦遭破解的缺陷。
[0024]图1为根据本申请实施例的验证码生成系统的示意图。如图1所示,该生成系统包括上下文生成组件10、随机字符生成组件12、背景生成组件14、字体注册组件16、字符建立组件18、背景标志生成组件20、干扰生成组件22与检核组件28。
[0025]上下文生成组件10根据渲染风格配置文件24建立多个对应所述各组件的上下文。渲染风格配置文件24是由渲染风格配置信息所组成,渲染风格配置信息包含各个组件执行使用的参数,时间,步骤,状态等,渲染风格配置信息可由用户通过使用者接口(userinterface)进行个人化设定,或是由验证码生成系统预设。
[0026]上下文生成组件10在建立各组件的上下文时,会根据渲染风格配置信息决定当下绘制图片验证码所需的组件,以下所称的上下文即为对应该组件的上下文,不另外进行再说明。
[0027]随机字符生成组件12根据所述上下文自字符库26随机建立字符,所述字符库26包括以下一个或多个的组合:至少一英文字母、至少一阿拉伯数字与至少一符号。具体地,英文字母可为A,B, C,.........X,y,z等52个大小写的组合,阿拉伯数字为O至9的组合。
[0028]背景生成组件14根据所述上下文建立背景图式,并根据所述渲染风格配置文件24指定背景图式的大小。当没有指定背景图式大小时,则使用生成系统预设的背景图式大小。
[0029]字体注册组件16根据所述上下文定义字体。当没有定义字体时,则使用验证码生成系统预设的字体。
[0030]字符建立组件18通过所述字体注册组件16所定义的字体,根据所述上下文将所述字符依所述字体绘在所述背景图式上。字符建立组件18于绘制时可对字符进行变形,包括刚性变化(比如旋转或平移)和/或非线性变化(比如膨胀或扭曲),相同的变形效果对于不同的字体会有不一样的验证码效果,同样,相同字体而不一样的变形效果也有不一样的验证码效果。这一切取之于上下文生成组件10根据渲染风格配置信息与所生成的上下文来决定。
[0031]背景标志生成组件20根据所述渲染风格配置文件24选取标志(logo),并根据所述上下文将所述标志绘在所述背景图式。这种标志绘制的渲染可增加机器人或程序判读的困扰,但对于善意人类用户来说不会产生困扰,反而可以增加提供服务的识别性。
[0032]干扰生成组件22根据所述渲染风格配置文件24选取干扰,并根据所述上下文将干扰绘在所述背景图式。干扰包括局部干扰(比如雪花点)、纹理干扰(比如水波纹)、断裂处理或曲线干扰(比如贝丝曲线(Bezier curve))等。
[0033]检核组件28根据检查规则对绘制完成的图片验证码进行检查,并根据检查结果重新设定对应组件的上下文,以建立新的图片验证码。检查规则的原则是要保证生成的验证码于机器不可读,而对于人眼可读。简单来说,由于本申请验证码生成系统的特色是将图片验证码的绘制程序组件化,因此,当所绘制的图片验证码不符合检查规则时,则可以再次调用对应组件修改图片验证码即可,除了让图片验证码更加友好外,绘制出的图片验证码也更多元。
[0034]举例来说,在绘出字符后,如果检核组件28发现背景长度太小,小于字符建立组件18所建立的字符尺寸时,检核组件28会通知上下文生成组件10重新设定字符建立组件18或是背景生成组件14的上下文,使背景与字符尺寸相符。
[0035]再举例来说,在绘出字符后,如果检核组件28发现干扰的尺寸较小,小于字符建立组件18所建立的字符尺寸时,因此不能完全覆盖字符从而使字符部分或者全部暴露在没有干扰的背景中,这样的生成的验证码对于机器可读,容易被破解识别,因此检核组件28会通知上下文生成组件10重新设定字符建立组件18的上下文或是再次调用干扰生成组件22的上下文,使干扰与字符尺寸相符。
[0036]再举例来说,使用字体注册组件16注册的某种字体时,字符建立组件18所绘出的字符肉眼很难辨识或者容易认错,因此对于这种字符与字体的搭配就需要避免,预先将这种字符和字体的搭配方式设置给检核组件28作为检查规则,检核组件28据此核查当前所使用的字体与字符的搭配,在发现出现这种字体与字符的搭配时,检核组件28会通知上下文生成组件10重新设定字体注册组件16的或是字符建立组件18的上下文,使字符和/或字体发生改变以避免出现类似预先设置的搭配。
[0037]再举例来说,使用背景生成组件14建立背景图式时,字符建立组件18所绘出的字符,与背景图式在颜色和图样上较接近以致肉眼很难辨识或者容易认错,或者虽然在颜色和图样上不接近但是搭配起来也会引起肉眼识别的错乱,因此对于这种背景图式与字符的在颜色和图样的搭配就需要避免,预先将背景图式与字符的在颜色和图样的搭配方式设置给检核组件28作为检查规则,检核组件28据此核查当前所使用的背景图式与字符的搭配,在发现出现这种背景图式与字符的搭配时,检核组件28会通知上下文生成组件10重新设定背景生成组件14的或是字符建立组件18的上下文,使字符和/或背景图式发生改变以避免出现类似预先设置的搭配。
[0038]值得住意的,由于渲染风格配置信息包括包含各个组件执行使用的参数,时间,步骤,状态等,在绘制图片验证码时,生成系统中各组件有单步无限迭代的执行,有分支组合,并行归并,相应的步骤可以调整和选择,并且对于系统的扩展性来说,也是良好的,在后续的扩展中还可以增添新的组件。
[0039]在渲染的流程中,每个组件都存有该组件参数的上下文信息,并且会根据上一步的上下文信息来决定当前步骤的参数和动作。上下文提供了鲁棒性较强的形状与位置特征描述,各个组件根据上一步的上下文信息来绘制渲染效果于图片验证码上,可避免图片渲染效果的混乱,方便人类用户的辨识,但仍可维持图片验证码的复杂强度。传统通过随机选取渲染效果的方式,可能会产生渲染效果重迭,影响了人类用户的判读。
[0040]总之,本申请提出的验证码生成系统将图片验证码所组合的内容组件化,利用在每个组件中添加上下文信息随时根据需要对组件的组合和顺序进行有机动态的调整,而且所有的组件都是根据相应的上下文来调整策略,而且在策略的选取上尤其重视用户的体验,因而该系统所渲染的验证码的用户体验佳。
[0041]本申请还公开了一种验证码生成方法,以增强图片验证码被破解的难度,提高网络安全。验证码生成方法应用于网络服务器中的验证码生成系统。
[0042]图2为根据本申请一实施例的验证码生成方法的流程图。如图2所示,该方法包括:
[0043]步骤S30根据渲染风格配置信息建立多个上下文,各个上下文对应一种验证码图片风格配置,其中所述渲染风格配置信息系由一用户设定或网络服务器预设;及
[0044]步骤S32根据一预设演算规则设定上下文执行顺序,并根据所述上下文执行顺序执行所述上下文绘制图片验证码。
[0045]渲染风格配置信息包括包含参数,时间,步骤,状态等,作为步骤S30生成上下文所需的参考信息。渲染风格配置信息可由用户通过使用者接口(user interface)进行个人化设定,或是由验证码生成系统预设。本申请验证码生成方法可透过硬件结合软件,通过Java与JavaScript语言编写的程序执行。
[0046]图3为根据图2的验证码生成方法中步骤S32的子步骤流程图。所述步骤S32进一步包括:
[0047]步骤S320根据所述上下文自字符库随机建立字符,所述字符库包括但不限于以下一种或多种的组合:至少一英文字母、至少一阿拉伯数字与至少一符号;
[0048]步骤S322根据所述上下文建立背景图式,并根据所述渲染风格配置文件指定背景图式的大小;
[0049]步骤S324根据所述上下文定义字体;
[0050]步骤S326根据所述上下文将字符依定义好的字体绘在所述背景图式上;
[0051]步骤S328根据所述渲染风格配置文件选取标志,并根据所述上下文将所述标志绘在所述背景图式 '及
[0052]步骤S330根据所述渲染风格配置文件选取干扰,并根据所述上下文将干扰绘在所述背景图式。
[0053]为了避免说明书过于冗长导致阅读上的困难,此方法实施例省略部分与上述系统
实施例相同的部分,比如说英文字母可为A,B, C,.........X,y,z等52个大小写的组合,阿拉
伯数字为O至9的组合,这些省略的部分不至于会让本领域内的技术人员不了解本申请的内容。
[0054]值得住意的是,上述的上下文执行顺序是先建立字符(步骤S320)后给予背景(步骤S322),再决定字符的于图片验证码上显示的样式(步骤S324与S326),最后再生成标志(步骤S328)与干扰(步骤S330)。而本领域内的技术人员应明白,本申请的实施例中步骤S320至S330可根据渲染风格配置信息设定不同顺序的步骤,也可以删除或省略其中一个步骤。
[0055]本申请又公开了一种验证码生成方法,对一张已经存在的图片验证码,进行再加工以增强图片验证码被破解的难度。
[0056]图4为根据本申请另一实施例的验证码生成方法的流程图。如图4所示,该验证码生成方法包括:
[0057]步骤S40取得图片验证码与渲染风格配置信息,其中所述渲染风格配置信息是由用户设定或网络服务器预设;
[0058]步骤S42根据所述图片验证码生成原生上下文(original sharp context);
[0059]步骤S44根据所述渲染风格配置信息分析所述原生上下文建立需要的上下文;及
[0060]步骤S46根据所述上下文与所述原生上下文重绘新的图片验证码。
[0061]具体地,当服务器发现被要求辨识的使用者答错次数超过一门坎值,会将使用者判定恶意使用,服务器会将以生成的图片验证码收回,根据收回的图片验证码分析出原生上下文,对收回的图片验证码进行加工(比如新增一种干扰),这新增的干扰会扰乱恶意机器人的判读,增加破解的难度。
[0062]另外,为了让图片验证码更加友好外,且绘制出的图片验证码也更多元,本申请另公开了一种验证码生成方法,对绘制完成的图片验证码进行检查,以确保所生成的图片验证码于机器不可读,而对于人眼可读。
[0063]请参考图5所示,又一实施例的验证码生成方法包括:
[0064]步骤S50根据检查规则对所述绘制完成的图片验证码进行检查;
[0065]步骤S52若符合规定,则无须修改所述图片验证码;及
[0066]步骤S54若不符合规定,则重新设定对应于需要修改的所述上下文,重新绘制新的图片验证码。
[0067]简单来说,在绘出字符(步骤S326)后,如果发现背景长度(步骤S322)太小,小于字符的字符尺寸(步骤S320)时,则重新设定上下文,使背景与字符尺寸相符。
[0068]另外,在绘出字符后,如果发现干扰的尺寸较小,小于字符的字符尺寸时,重新设定上下文重绘验证码的部分组件,使干扰与字符尺寸相符。
[0069]另外,使用某种字体生成的字符肉眼很难辨识或者容易认错,预先规定这种字符和字体的搭配方式为非 法组合,如果发现当前出现这种字体与字符的搭配时,重新设定上下文,使字符和/或字体发生改变以避免出现类似预先设置的搭配。
[0070]另外,使用某种背景图式与字符的颜色和图样上较接近的搭配会导致肉眼很难辨识或者容易认错,或者虽然颜色和图样上不接近但是搭配起来也会导致肉眼识别的错乱,预先规定背景图式与字符的在颜色和图样的搭配方式为非法组合,如果发现当前出现这种背景图式与字符的搭配时,重新设定上下文,使字符和/或背景图式发生改变以避免出现类似预先设置的搭配。
[0071]以下以两个应用实例对本申请的上下文机制进行说明。
[0072]I)下面这段代码:
[0073]
【权利要求】
1.一种验证码生成系统,包括: 上下文生成组件,根据渲染风格配置文件建立多个对应所述各组件的上下文; 随机字符生成组件,根据所述上下文自字符库随机建立字符; 背景生成组件,根据所述上下文建立背景图式,并根据所述渲染风格配置文件指定背景图式的大小; 字体注册组件,根据所述上下文定义所述字符的字体; 字符建立组件,通过所述字体注册组件所定义的字体,根据所述上下文将所述字符依所述字体绘制; 背景标志生成组件,根据所述渲染风格配置文件选取标志,并根据所述上下文将所述标志绘制;及 干扰生成组件,根据所述渲染风格配置文件选取干扰,并根据所述上下文将干扰绘制。
2.如权利要求1所述的验证码生成系统,其特征在于,所述字符库,包括以下一个或多个的组合:至少一英文字母、至少一阿拉伯数字与至少一符号。
3.如权利要求1所述的验证码生成系统,其特征在于,所述渲染风格配置文件是由渲染风格配置信息所组成,所述渲染风格配置信息由用户通过使用者接口进行个人化设定,或是由所述验证码生成系统预设。
4.如权利要求3所述的验证码生成系统,其特征在于,所述渲染风格配置信息包含各个组件执行使用的参数,时间,步骤及状态。
5.如权利要求1所述的验证码生成系统,其特征在于,所述字符建立组件对字符进行变形,包括:刚性变化和/或非线性`变化。
6.如权利要求1所述的验证码生成系统,其特征在于,所述各组件有单步无限迭代的执行,有分支组合或并行归并。
7.如权利要求1所述的验证码生成系统,其特征在于,所述每个组件存有该组件参数的上下文,并根据执行的前一组件的上下文决定动作。
8.如权利要求1所述的验证码生成系统,还包括: 检核组件,根据检查规则对所述绘制完成的图片验证码进行检查,并根据检查结果重新设定对应所述组件的所述上下文,以建立新的图片验证码。
9.一种验证码生成方法,应用于网络服务器中的验证码生成系统,其特征在于,该方法包括: 根据渲染风格配置信息建立多个上下文,各个上下文对应一种验证码图片风格配置; 根据预设的演算规则设定上下文执行顺序,并根据所述上下文执行顺序执行所述上下文绘制图片验证码。
10.如权利要求9所述的验证码生成方法,其特征在于,所述根据所述上下文执行顺序执行所述上下文绘制图片验证码的步骤,包括: 根据所述上下文自字符库随机建立字符; 根据所述上下文建立背景图式,并根据所述渲染风格配置文件指定背景图式的大小; 根据所述上下文定义字体; 根据所述上下文将字符依定义好的字体绘在所述背景图式上; 根据所述渲染风格配置文件选取标志,并根据所述上下文将所述标志绘在所述背景图式;及 根据所述渲染风格配置文件选取干扰,并根据所述上下文将干扰绘在所述背景图式。
11.如权利要求9所述的验证码生成方法,其特征在于,该方法另包括: 根据检查规则对所述绘制完成的图片验证码进行检查; 若符合规定,则无须修改所述图片验证码 '及 若不符合规定,则重新设定对应于需要修改的所述上下文,重新绘制新的图片验证码。
12.—种验证码生成方法,应用于网络服务器中的验证码生成系统,其特征在于,该方法包括: 取得图片验证码与渲染风格配置信息; 根据所述图片验证码生成原生上下文; 根据所述渲染风格配置信息分析所述原生上下文建立需要的上下文;及 根据所述上 下文与所述原生上下文重绘新的图片验证码。
【文档编号】H04L29/06GK103731403SQ201210387390
【公开日】2014年4月16日 申请日期:2012年10月12日 优先权日:2012年10月12日
【发明者】侯欣杰, 张雪飞 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1