当前位置:编程学习 > asp >>

asp汉字中文图片验证码的实现代码

答案:'此代码是在别人基础上增加的汉字功能,特此感谢,同时感谢鬼火狼烟。
'以前的图片验证码很容易被破解,所以在其基础上进行改进,生成汉字,就目前而言很难破解
用法:
在需要显示验证码图片的地方插入代码 <img src="code.asp">
同时,自动生成session("psn"),表单提交验证session就可以了。

<%
'------------------
'汉字图片验证码
'此代码是在别人基础上增加的汉字功能,特此感谢,同时感谢鬼火狼烟。
'以前的图片验证码很容易被破解,所以在其基础上进行改进,生成汉字,就目前而言很难破解
'干扰次数每加一 -> 穷举法的代价提高约100*100倍
'适当设定杂点几率可以有效降低软件识别正确率
'------------------
Option Explicit
Call Com_CreatValidCode("SessionName")

Rem 生成验证码图片
Sub Com_CreatValidCode(pSN)
Const codeLen = 4'验证码位数
Const cOdds = 4 '杂点出现的机率
Const dbtTimes = 1'干扰次数(安全考虑,最好不要小于2)
Const cAmount = 85 '字库数量
Const cCode = "好一路阳光子无开月了的比小山古天中石头井火大西木开人也叶九七六五合文只个鱼羊哈么点四生件格不步布各你田红蓝来很春下画京左百白东关工共足方尺才梦见查着去区曲寻早可上丰爱呵刘"'字库对应的字符
Const UnitWidth = 28'字宽(要为4的倍数)
Const UnitHeight = 28'字高
Const DotsLimit = 2'每次删除有效点的上限(避免无法人为识别)
Const tryCount = 2'避免删除有效点超过上限的尝试次数限制
'-----------
Randomize
Dim i, ii, iii
' 禁止缓存
Response.Expires = -9999
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-ctrol","no-cache"
Response.ContentType = "Image/BMP"
' 颜色的数据(字符,背景)
Dim vColorData(1)
vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0) ' 蓝0,绿0,红0(黑色)
vColorData(1) = ChrB(211) & ChrB(255) & ChrB(250) ' 蓝250,绿236,红211(浅蓝色)
' 字符的数据(可以自己修改,如果修改了尺寸,记得把前面的设定也改了)
Dim vNumberData(85)
vNumberData(0) = "1111111111111111111111111111111111101111111111111111111111111100011111000000000000111111110001111100000000000011111111001111111111111100001111111100111111111111100001111100000000001111111100011111110000000000011111100011111111111001111001111100011111111111100111100111110001111111111110011110011111100011111111111001111001111111001111111111001111001100000000000011111100111100110000000000000111110011110011100000000000111110001111001111111111001111111000111001111111111100011111110000100111111111110001111111100000111111111111000111111111100011111111111100011111111100000011111111110001111111100011000111111111000111111000011110110001111000111110000111111111000000000011111100111111111111000000111111111111111111111111001111111111111111111111111111111111111111111111111111111111111111"
vNumberData(1) = "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111000000000000000000000000001110000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
vNumberData(2) = "1111111111111111111111111111111111111111111100111111111111000000001111100011111111111100000000011110000000000111110011110001111000000000001111001111100111000111111001111100111110011000011111100111110011111001000000111110011111001111100100110011110011111100111100011111000110011111110000000001111110000001111111100000001111111000001111111111100011111111000000011111111110001111100000110000001111111000111100001111110000011100100011110000111111100011110010000001110000000000011111001000000111000000000001111100100011111100111111100111110010001111110011111110011111001000111111001111111001111100100011111100111111100111110010000000110011111110011110000000000011001111110001111000000011111100000000000111111111111111110000000000111111111111111111111111111111111111111111111111111111111111"
vNumberData(3) = "1111111111111111111111111111111111111111111111111111111111000000001111110000000111111100000000011100000000000111110001110001110000000000011111001111001110001111111001111100111100111000111111100111110011110011100011111110011111001110001110001111111001111100111001111000111111100111110011100111100011111110011111001110011110001111111001111100111100111000111111100111110011110011100000000000011111001111100110000000000001111100111110011000111111100111110011111001100011111110011111001111100110001111111001111100111110011000111111100111110000110001100011111110011111000000001110001111111001111100000001111000111111100111110011111111100011111110011111001111111111000000000001111100111111111110000000001111110011111111111111111111111111111111111111111111111111111111111111111111111111111111"
vNumberData(4) = "1111111111111111111111111111111111111111100111111111111111111111111110011111111111111111100111111001111110011111111110001111100111110001111111111100111110011111000111111111110001111001111100111111111111000111100111100011111111111110011110011110011111111111111111111001111111111111111111111111100111111111111111000000000000000000000000111100000000000000000000000011111111111000111100011111111111111111100011110001111111111111111110001111000111111111111111111000111100011111111111111111100011110001111111111111111110011111000111111111111111111001111100011111101111111111000111110001111100011111111000111111000111110011111111000111111100011111001111100000111111110001111100111000000111111111100000000011100011111111111111000000011111111111111111111111111111111111111111111111111111111111"
vNumberData(5) = "1111111111111111111111111111111111111111111111111111111111111000000000000000000111111111000000000000000000001111111110000000000000000000111111111111111111111110000111111111111111111111110001111111111111111111111100001111111111111111111111000011111111111111111111111000011111111111111111111111000011111111111111111111111110001111111111111111111111111000111111111111110000000000000000000000001111000000000000000000000000111111111111111110001111111111111111111111111100111111111111111111111111110011111111111111111111111111001111111111111111111111111100011111111111111111111111110011111111111111111111111111001111111111111111011111111000111111111111111000001111000111111111111111110000000000111111111111111111110000000111111111111111111111111111111111111111111111111111111111111111111111"
vNumberData(6) = "1111111111111111111111111111111111111111111111111111111111110000000000000000000011111110000000000000000000000111111100000000000000000000111111111111111100111111111111111111111111110011111111111111111111111111001111111111111111111111111100111111111111111111111111110011111111111111110000000000000000000000001111000000000000000000000000111111111111110010011111111111111111111111001001111111111111111111111000100111111111111111111111100110011111111111111111111110011001111111111111111111110011100111111111111111111110001110011111111111111111111001111001111111001111111111000111100111111100111111111000111110011111110011111110000111111001111111001111110000111111100011111000111100001111111111000000000111110001111111111110000000111111111111111111111111111111111111111111111111111111111111"
vNumberData(7) = "1111111111111111111111111111111111111111111111111111111111110000000000000000000001111110000000000000000000000111111100000000000000000000111111111111000111111000111111111111111100011111100011111111111111110001111110001111111111111111000111111000111111111111111100011111

上一个:asp WAP获取手机终端信息的一段代码
下一个:asp获取客户端某一个图片的x,y坐标的代码

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,