当前位置: 网学 > 编程文档 > ASP > 正文

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

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/16

【编者按】网学网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) = "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111000000000000000000000000001110000000000000000000000001111111111111111111111

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号