用数字求和生成bmp图像验证码
目前,有许多图片验证码在网络上,那些不生成验证码的防开裂的防御能力是在网页不能直接人不堪一击;源显示一个特定的号码,然后要求游客进入和这么多;如3 + 5 =,有一些新的代码,但遗憾的是,没有起到保护的作用。flymorn提高了上述想法,并直接生成BMP图像格式采用ASP程序在3 + 6 =形式,并增加了数字会话增加溶液的阈值。没有图像和图像的知识,人们无法解决它:
复制代码代码如下所示:
<
响应=缓冲区=真
response.expiresabsolute =现在()- 1
响应。过期= 0
response.cachecontrol = 不缓存
response.contenttype =图像/ BMP
电话com_creatvalidcode()
子com_creatvalidcode()
随机化
我,III
const camount = 10的数字编号
const CCODE =0123456789的数值范围
昏暗的vcolordata(2)
vcolordata(0)= 黑点变成色点,暂时未定义
vcolordata(1)=(255)ChrB ChrB ChrB(255)(255)的白斑
(4)、vcodes昏暗VCODE产生任意一组数
对于我= 0比3
VCode(我)= int(RND * camount)阵列等于总数量×随机数
如果我= 1然后VcoDE(我)=11的第二位+
如果我= 3然后VcoDE(我)=10的第四位= =
VCodes=vCodesMid (cCode, vCode (I) +1,1) 'string is equal to the string added to the subsequent value
下一个
会议(码)= int(MID(vcodes,1,1))+ int(MID(vcodes,2,1))的会话和价值分配的计算
昏暗的vnumberdata(36)
vnumberdata(0)= =
1110000111110111101111011110111101111011110111101111011110111101111011110111101111011110111110000111
vnumberdata(1)= =
1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111
vnumberdata(2)= =
1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011
vnumberdata(3)= =
1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111
vnumberdata(4)= =
11111 01111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011
vnumberdata(5)= =
1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111
vnumberdata(6)= =
1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111
vnumberdata(7)= =
1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111
vnumberdata(8)= =
1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111
vnumberdata(9)= =
1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111
表达=
vnumberdata(10)= =
1111111111111111111111111111111 00000000 1111111111111111111111 00000000 1111111111111111111111111111111
表达式+
vnumberdata(11)= =
11111111111111 00111111110011111111001111100000000110000000011111001111111100111111110011111111111111
Response.BinaryWrite ChrB(66)(77)ChrB ChrB ChrB(230)(4)(0)ChrB ChrB ChrB(0)(0)(0)_ ChrB
ChrB(0)(0)ChrB ChrB ChrB(54)(0)(0)ChrB ChrB ChrB(0)(40)(0)_ ChrB
ChrB(0)(0)ChrB ChrB ChrB(40)(0)(0)ChrB ChrB ChrB(0)(10)(0)_ ChrB
ChrB(0)(0)ChrB ChrB ChrB(1)(0)
Response.BinaryWrite ChrB(24)(0)ChrB ChrB ChrB(0)(0)(0)ChrB ChrB ChrB(0)(176)(4)_ ChrB
ChrB(0)(0)ChrB ChrB ChrB(18)(11)(0)ChrB ChrB ChrB(0)(18)(11)_ ChrB
ChrB(0)(0)ChrB ChrB ChrB(0)(0)(0)ChrB ChrB ChrB(0)(0)(0)_ ChrB
ChrB(0)(0)ChrB
对于i = 9到0步- 1行
对于II = 0到3的单词数
对于iii = 1到10像素
如果中期(vnumberdata(VCODE(II)),我* 10 + III,1)=0,然后产生色点,减去一个固定值,可使颜色深。
暗淡的A,B,C
a ABS(RND * 256-60)
B = ABS(RND * 256-128)
C = ABS(RND * 256-60)
vcolordata(0)= ChrB(A)(B)ChrB ChrB(C)
response.binarywrite vcolordata(MID(vnumberdata(VCODE(II)),我* 10 + III,1)))
其他的
暗淡的D,E,F的背景色,较浅的颜色,也能产生随机噪声背景。
D = ABS(RND×255)
E = ABS(RND×255)
F = ABS(RND×255)
如果640改为值,则调整背景色深度。
vcolordata(1)= ChrB(D)(E)ChrB ChrB(F)
response.binarywrite vcolordata(MID(vnumberdata(VCODE(II)),我* 10 + III,1)))
其他的
response.binarywrite vcolordata(MID(vnumberdata(VCODE(II)),我* 10 + III,1)))
最后如果
最后如果
下一个
下一个
下一个
端子
%>
上面的代码可以直接保存为一个文件,如vcode.asp文件,然后通过图片的变化。例如,然后会话的值(码)可以在提交处理页面验证。本代码是flymorn自我改进,原来的参考代码,请在谷歌直接搜索,生成BMP图片用ASP,或者看看这个网站,你可以找到一些相关的。
最后,在BMP图片中生成了添加到5 + 6的随机数的形式。他们的需求需要计算填写验证功能,防止机器在破坏你的网站。如果你还担心ASP图片验证码,请留言,让我们沟通。