给验证码增加干扰的杂点
作者:亮亮 来源:亮亮的博客 发布时间:2008-05-16 11:34:00
标签:验证码,干扰,adobe.stream
在以前的日志中讲了怎么制作验证码,这篇就讲讲怎么给验证码加上起干扰效果的杂点。
其实很简单,首先做一个图片,这个图片的作用就是用来生成杂点的,每次都是从这个图片读取一定的字节,再把这些字节写入到验证码中生成杂点。下面是我制作的一个图片,当然你可以根据自己需要自己画。
剩下的就是代码了,就是在输出验证码之前即在如下的代码前加代码
Ados.Position=0
'直接向客户端发送图像数据
Response.ContentType = "image/BMP"
Response.BinaryWrite Ados.read()
Ados.Close:set Ados=nothing
Ados1.Close:set Ados1=nothing
增加的代码如下:
set adoZd=server.CreateObject("adodb.stream")
adoZd.Mode=3
adoZd.Type=1
adoZd.Open
adoZd.LoadFromFile(Server.mappath("zd.bmp"))
for i=0 to 50 '50为生成的杂点的数量,你可以自己看着办
Randomize timer
'生成的随机数我是根据图像的大小定的,你可以根据你的图像大小定
rndI=Int(rnd*20) '图形的高度为20
rndI2=Int(rnd*4) '验证码是4位
rndI3=Int(rnd*60) '每个像素3字节,20就是60字节
adoZd.position=54+240*rndI+rndI2*60+rndI3
Ados.position=54+240*rndI+rndI2*60+rndI3
Ados.write adoZd.read(9) '从zd.bmp读取9个字节
next
0
投稿
猜你喜欢
- flask之模板继承为什么要用模板继承?原因很简单,因为模板继承能让我们在实现效果的前提下少些很多代码!咱废话不多说,先来看个小例子,看完我
- 前端开发部门在壮大,人员在增加,技术在进步。CSSer虽然不能代表前端开发团队,但CSSer是前端开发中非常重要的组成部分。一、文档写程序的
- Python time模块时间获取和转换Time模块介绍Python的Time库可以进行时间相关的处理,如访问当前日期和时间,输出不同格式的
- 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过
- 【一】添加监听事件 addHandler:function(node,type,fn){if
- 一、概念说明柱状图(bar chart),从相同的横坐标出发,以不同的数值大小来设定柱子的高度,进而表示无序或有序的定性数据间某个定量指标的
- 一、mysqldump 简介mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 MySQL 数据库,将需要
- 编写tasks.pyfrom celery import Celeryfrom tornado.httpclient import HTTP
- 文件打开方式当我们用open()函数去打开文件的时候,有好几种打开的模式。'r'->只读'w'->
- 本文实例讲述了Django框架模型简单介绍与使用。分享给大家供大家参考,具体如下:ORM介绍ORM Object relational ma
- 修改配置文件:vim /usr/local/php/etc/php.ini[Phar]phar.readonly = Off压缩:a. 创建
- 在这个周末刚刚写出来的python桌面应用--网络聊天室,主要通过pyqt5作为桌面应用框架,socket作为网络编程的框架,从而实现包括客
- value_counts()方法返回一个序列Series,该序列包含每个值的数量(对于数据框中的任何列,value_counts()方法会返
- 如何导入数据库 可以从限制文件中导入SQL共享服务器数据库。如果想把存放在其他地方的数据导入,需要先把其内容拷到限制文件中。(注:在导入数据
- 本文实例讲述了Yii2框架实现登陆添加验证码功能。分享给大家供大家参考,具体如下:models中LoginForm.phppublic $v
- by yemoo有时在编写网页代码时发现,img底部莫名奇妙多出大约3px的空白,无论怎么调节css都不可以,今天再次遇到此问题,网上看了一
- 在SQL中,很多威力都来自于将几个表或查询中的信息联接起来,并将结果显示为单个逻辑记录集的能力。在这种联接中包括INNER、LEFT、RIG
- 封装Python将多个值用逗号隔开,进行赋值。会将这些值封装成一个tuple返回#示例a = 1,2type(a)结果:<class
- 使用xmlhttp中的getResponseHeader 从响应信息中获取指定的http头strValue = oXML
- reflect.StructField 和 reflect.Method如果变量是一个结构体,我们还可以通过结构体域类型对象 reflect