文章·资料 电脑软件 手机应用 网站源码




    本 站 搜 索
   推 荐 文 章        More...
华硕易电脑(ASUS Eee PC 1025C..
先来段开场白:为了外出携带方便,到淘..
Acronis True Image 使用说明
  一款可以在Windows下使用全部功..
Norton Ghost 使用详解
一、分区备份   使用Ghost进行系..
    文 章 阅 读 排 行
手机视频监控 APP 关闭广告:萤..
一、萤石云视频:我的,设置,隐私设置,..
常见数据库介绍与对比(SQL Serv..
常见数据库的对比分析,涵盖你提到的 A..
Windows 系统修改默认文件类型..
Windows 系统文件类型图标,通常由默..
Windows 系统安装或备份时 ISO,..
【ISO 文件】 ISO 文件其实就是光..
Microsoft SQL Server 2000 Per..
  对于第一次安装 Microsoft SQL Se..
颜色与英文单词对照
颜色与英文单词对照 red green bl..
PakePlus 构建 APP 需要 Github..
PakePlus 是一个基于 Rust Tauri 的..
主页真的越Google、越简洁越好吗
  如果你在11月10日早上打开雅虎中..
网络工程师必懂的专业术语
路由器问题:1、什么时候使用多路由协..
为啥现在的电脑都不能安装 Wind..
说实话,这几年如果你尝试在新电脑..
 文 章 信 息
无组件生成验证码-BMP格式
评论()〗〖留言〗〖收藏
〖文章分类:电脑·手机·网络 / 网站设计·开发·优化〗〖阅读选项
无组件生成验证码-BMP格式 

来自:蓝色理想 
<% 
Call Com_CreatValidCode("ValidCode") 

Sub Com_CreatValidCode(pSN) 

     ’Author: Layen 
     ’QQ: 84815733 
     ’E-mail: support@ssaw.net 

  

     ’ 禁止缓存 
     Response.Expires = -9999  
     Response.AddHeader "Pragma","no-cache" 
     Response.AddHeader "cache-ctrol","no-cache" 
     Response.ContentType = "Image/BMP" 

     Randomize 

     Dim i, ii, iii 

     Const cOdds = 8 ’ 杂点出现的机率 
     Const cAmount = 36 ’ 文字数量 
     Const cCode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 

     ’ 颜色的数据(字符,背景) 
     Dim vColorData(1) 
     vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)  ’ 蓝0,绿0,红0(黑色) 
     vColorData(1) = ChrB(250) & ChrB(236) & ChrB(211) ’ 蓝250,绿236,红211(浅蓝色) 

     ’ 随机产生字符 
     Dim vCode(4), vCodes 
     For i = 0 To 3 
           vCode(i) = Int(Rnd * cAmount) 
           vCodes = vCodes & Mid(cCode, vCode(i) + 1, 1) 
     Next 

     Session(pSN) = vCodes  ’记录入Session 

     ’ 字符的数据 
     Dim vNumberData(35) 
     vNumberData(0) = "1110000111110111101111011110111101001011110100101111 
010010111101001011110111101111011110111110000111" 
     vNumberData(1) = "1111011111110001111111110111111111011111111101111111 
110111111111011111111101111111110111111100000111" 
     vNumberData(2) = "1110000111110111101111011110111111111011111111011111 
111011111111011111111011111111011110111100000011" 
     vNumberData(3) = "1110000111110111101111011110111111110111111100111111 
111101111111111011110111101111011110111110000111" 
     vNumberData(4) = "1111101111111110111111110011111110101111110110111111 
011011111100000011111110111111111011111111000011" 
     vNumberData(5) = "1100000011110111111111011111111101000111110011101111 
111110111111111011110111101111011110111110000111" 
     vNumberData(6) = "1111000111111011101111011111111101111111110100011111 
001110111101111011110111101111011110111110000111" 
     vNumberData(7) = "1100000011110111011111011101111111101111111110111111 
110111111111011111111101111111110111111111011111" 
     vNumberData(8) = "1110000111110111101111011110111101111011111000011111 
101101111101111011110111101111011110111110000111" 
     vNumberData(9) = "1110001111110111011111011110111101111011110111001111 
100010111111111011111111101111011101111110001111" 
     vNumberData(10) = "1111011111111101111111101011111110101111111010111111 
101011111100000111110111011111011101111000100011" 
     vNumberData(11) = "1000000111110111101111011110111101110111110000111111 
011101111101111011110111101111011110111000000111" 
     vNumberData(12) = "1110000011110111101110111110111011111111101111111110 
111111111011111111101111101111011101111110001111" 
     vNumberData(13) = "10000011111101110111110111101111011110111101111011110 
11110111101111011110111101111011101111000001111" 
     vNumberData(14) = "10000001111101111011110110111111011011111100001111110 
11011111101101111110111111111011110111000000111" 
     vNumberData(15) = "10000001111101111011110110111111011011111100001111110 
11011111101101111110111111111011111111000111111" 
     vNumberData(16) = "11100001111101110111101111011110111111111011111111101 
11111111011100011101111011111011101111110001111" 
     vNumberData(17) = "10001000111101110111110111011111011101111100000111110 
11101111101110111110111011111011101111000100011" 
     vNumberData(18) = "11000001111111011111111101111111110111111111011111111 
10111111111011111111101111111110111111100000111" 
     vNumberData(19) = "11100000111111101111111110111111111011111111101111111 
11011111111101111111110111110111011111000011111" 
     vNumberData(20) = "10001000111101110111110110111111010111111100011111110 
10111111101101111110110111111011101111000100011" 
     vNumberData(21) = "10001111111101111111110111111111011111111101111111110 
11111111101111111110111111111011110111000000011" 
     vNumberData(22) = "10001000111100100111110010011111001001111101010111110 
10101111101010111110101011111010101111001010011" 
     vNumberData(23) = "10001000111100110111110011011111010101111101010111110 
10101111101100111110110011111011001111000110111" 
     vNumberData(24) = "11100011111101110111101111101110111110111011111011101 
11110111011111011101111101111011101111110001111" 
     vNumberData(25) = "10000001111101111011110111101111011110111100000111110 
11111111101111111110111111111011111111000111111" 
     vNumberData(26) = "11100011111101110111101111101110111110111011111011101 
11110111011111011101001101111011001111110001011" 
     vNumberData(27) = "10000011111101110111110111011111011101111100001111110 
10111111101101111110110111111011101111000110011" 
     vNumberData(28) = "11100000111101111011110111101111011111111110011111111 
11001111111111011110111101111011110111100000111" 
     vNumberData(29) = "10000000111011011011111101111111110111111111011111111 
10111111111011111111101111111110111111110001111" 
     vNumberData(30) = "10001000111101110111110111011111011101111101110111110 
11101111101110111110111011111011101111110001111" 
     vNumberData(31) = "10001000111101110111110111011111011101111110101111111 
01011111110101111111010111111110111111111011111" 
     vNumberData(32) = "10010100111101010111110101011111010101111101010111110 
01001111110101111111010111111101011111110101111" 
     vNumberData(33) = "10001000111101110111111010111111101011111111011111111 
10111111110101111111010111111011101111000100011" 
     vNumberData(34) = "10001000111101110111110111011111101011111110101111111 
10111111111011111111101111111110111111110001111" 
     vNumberData(35) = "11000000111101110111111111011111111011111111101111111 
10111111111011111111011111111101110111100000011" 

     ’ 输出图像文件头 
     Response.BinaryWrite ChrB(66) & ChrB(77) & ChrB(230) & ChrB(4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_ 
           ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_ 
           ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_ 
           ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0) 

     ’ 输出图像信息头 
     Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(176) & ChrB(4) &_ 
           ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) &_ 
           ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_ 
           ChrB(0) & ChrB(0) 

     For i = 9 To 0 Step -1  ’ 历经所有行 
           For ii = 0 To 3  ’ 历经所有字 
                 For iii = 1 To 10 ’ 历经所有像素 
                 ’ 逐行、逐字、逐像素地输出图像数据 
                       If Rnd * 99 + 1 < cOdds Then ’ 随机生成杂点 
                             Response.BinaryWrite vColorData(0) 
                       Else 
                             Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 10 + iii, 1)) 
                       End If 
                 Next 
           Next 
     Next 
End Sub 

%> 
保存成ASP文件即可看见效果!

文章作者:未知  更新日期:2006-05-13
〖文章浏览:〗〖发送文章〗〖打印文章
相关文章 ·无组件生成验证码-GIF格式2006-05-13