英超精华:如何生成个性风格的彩色验证码

来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 22:22:28
现在,ASP已经是一种非常成熟且普及的网站编程语言,也产生了不少使用ASP语言编写的优秀整站程序,如大名鼎鼎的动网论坛,动易网站管理系统等等。

 

    但是,由于ASP语言的先天缺陷,使得这些系统很容易被恶意用户使用 登陆机+密码字典 的暴力破解方式获取管理员密码。为了阻止这种攻击模式,现在很多网站系统都纷纷采用的验证码的形式来阻止攻击者,可是目前可用的验证码组件并不多,如目前已经非常成熟的BlueIdea版验证码生成组件,也就是目前动网论坛(bbs.aspnet.net)所采取的组件。

 

 

    上图就是传统的验证码显示效果,网上千篇一律的老面孔,本文的目标就是,让这个验证码与众不同,打造真正属于自己的原创作品。

 

    好了,下面我们就开始动手,在开始具体的修改工作之前,我们需要了解一下这个验证码组件的文件构成,本组件一共只有三个文件,它们分别是:

 

    1 checkcode.asp 负责生成和输出验证码 1309 byte。

 

    2 head.fix      是54byte的BMP头

 

    3 body.fix      数字0~9 10X100竖排的RGB阵列数据3200 byte

    搞清楚了这三个文件的具体功能后,我们知道了,如果欲打造自己的独特验证码风格,只要对body.fix 这一个文件做手脚就足够了,我们使用画图程序(你不会没用过吧!)来建立这个文件。

 

第一步:打开画图程序,建立一个10X100大小的BMP格式文件:

在其中从上至下,每10像素为一个单位,分别绘入0-9这十个数字,这项工作需要一些耐心和仔细,大家要小心操作,如果你会使用 PHOTOSHOP,这项工作就相对简单了。在绘制时,可以加一些自己独特的东西,比如笔者就加入了渐变的底色和底纹,绘制完成后,就是这个效果:

 

 

图象绘制完成后,将文件存盘,切记存盘时需要选择存为24位位图格式的BMP图象文件。

 

      这么制作出来的文件是不能直接使用的,因为其中的前54Byte内容,已经在Head.fix文件里了,我们需要去除它才行。这里笔者需要使用一个小工具Hedit来打开刚才存盘的图象(这是一个很好用的2进制文件编辑器):

 

 

选中图中的兰色部位,按下键盘上的DEL键:

 

 

如果你的提示是如上图的删除54字节,点击确认,如果你的提示不是54字节,请重新选择后再删除。

 

      删除完成后,保存文件,并将其改名为 Body.fix,上传至你的网站中的对应目录,覆盖掉原文件,然后重新打开网站首页看一下,效果是不是已经出来了,我们成功拥有了一个色彩缤纷的个性验证码。

注1:实践本文需安装验证码补丁包,具体方法见:/help/news1/200408/55.html

注2:本文所使用的组件,工具均可在动易论坛下载