首页 | 站长免费中心 | 新手上路 | 网站运营 | 网页制作 | 图片设计 | 动画设计 | 网页编程 | 网页特效 | 本站专题 | 虚拟主机 | 域名注册 | 网站建设 | 程序下载
       免费空间资源 | 新闻咨询 | 免费域名 | 免费网盘 | 网站推广 | 网站策划 | 建站经验 | 网站优化 | 网页代码 | 源码下载 | 音乐小偷 | 网络赚钱 | 论坛交流
网站建设
网站建设
虚拟主机
虚拟主机
域名注册
域名注册
711网络首页
站长工具
站长工具
网站源码
网站源码
站长论坛
站长论坛

 711网络 网页编程ASP代码

ASP生成彩色可变长验证码程序

来源: 互联网    日期:2007-1-13 15:10:33
 

    记得“想当年”某天上午在这里路过,看到一位朋友贴的自己写的验证码程序,虽然他的程序是黑白有杂点,但其实很容易被破解的,但却有不少人喜欢着。。。没办法,当天下午研究了一翻 BMP 图片,然后就写出了这些代码,只是当初没有公布,眼看今天这么多坏人乱在很多论坛上注册用户来发广告,所以才贴出来共享一下。 [转自:711网络工作室 http://www.tc711.com]

    本验证码生成程序特点如下: [转自:711网络工作室 http://www.tc711.com]

    1、彩色;

    2、BMP 图像色深为 16 位,生成的图片体积更小;(4位长的验证码只有几百字节)

    3、长度可自定义;(1位至25位可固定设置,也可以自己改成动态)

    4、背景杂色深度可自定义;

    具体请看代码

    注:代码中并没有针对动网的 设置验证码 Session 的地方。想用的朋友自己根据需要改一下,位置就在代码中出现 Session("Num") 的那一行,改成自己需要的名称就可以了。这个验证码也可以用在任何需要验证码的地方。不用在动网论坛也可。

    下面是代码部分:

    Option Explicit
    Response.Expires = 0
    Response.AddHeader "Pragma","no-cache"
    Response.AddHeader "cache-ctrol","no-cache"
    Response.ContentType = "Image/BMP"
    Randomize Timer

    Dim Text_Data(9),Text_Len,Int_Temp(),I,j,k,Int_Temp2

    ''***** 参数配置区 *****

    Text_Len = 4 ''验证码长度(支持1-25位)

    ''**********************

    ReDim Int_Temp( Text_Len - 1 )

    Text_Data(0) = "00000000000001111000001100110000110111000011011100001100110000111011000011101100001100110000011110000000000000"
    Text_Data(1) = "00000000000000011000000011100000111110000000011000000001100000000110000000011000000001100000000110000000000000"
    Text_Data(2) = "00000000000001111000001100110000110011000000001100000001100000001100000001100000001100000000111111000000000000"
    Text_Data(3) = "00000000000001111000001100110000110011000000001100000011100000000011000011001100001100110000011110000000000000"
    Text_Data(4) = "00000000000001100000000110000000011011000001101100000110110000110011000011111110000000110000000011000000000000"
    Text_Data(5) = "00000000000011111100001100000000110000000011000000001111100000000011000000001100000001100000111100000000000000"
    Text_Data(6) = "00000000000000111000000011000000011000000011111000001100110000110011000011001100001100110000011110000000000000"
    Text_Data(7) = "00000000000011111100000000110000000110000000011000000011000000001100000001100000000110000000011000000000000000"
    Text_Data(8) = "00000000000001111000001100110000110011000011101100000111100000110111000011001100001100110000011110000000000000"
    Text_Data(9) = "00000000000001111000001100110000110011000011001100001100110000011111000000011000000011000000011100000000000000"

    ''下面随机生成各位验证码
    Session("Num") = ""
    For I = 0 To Text_Len - 1
    Int_Temp(I) = Int(Rnd * 10)
    Session("Num") = Session("Num") + Mid("0123456789",Int_Temp(I)+1,1)
    Next

    ''下面输出文件头部分
    Int_Temp2 = (Text_Len - 1) \ 4 * 220 + ((Text_Len - 1) / 4 - (Text_Len - 1) \ 4 * 4) * 44
    Response.BinaryWrite ChrB(&H42) & ChrB(&H4D)
    Response.BinaryWrite ChrB(((Int_Temp2 + 206) / 256 - (Int_Temp2 + 206) \ 256) * 256) & ChrB((Int_Temp2 + 206) \ 256) ''特殊位
    Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H76) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H28) & ChrB(0) & ChrB(0) & ChrB(0)
    Response.BinaryWrite ChrB(Text_Len * 10) ''特殊位
    Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HB) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H1) & ChrB(0) & ChrB(&H4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)
    Response.BinaryWrite ChrB(((Int_Temp2 + 88) / 256 - (Int_Temp2 + 88) \ 256) * 256) & ChrB((Int_Temp2 + 88) \ 256) ''特殊位

    Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(16) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(16) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(&H80) & ChrB(0)
    Response.BinaryWrite ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(&HC0) & ChrB(&HC0) & ChrB(&HC0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0)

    ''下面输出图片数据
    For i = 10 to 0 Step -1
    For j = 0 to Text_Len - 1
    For k = 1 to 9 Step 2
    If Mid(Text_Data(Int_Temp(j)) , i * 10 + k , 1) = "0" Then Int_Temp2 = Get_BackColor() * 16 Else Int_Temp2 = Get_ForeColor() * 16
    If Mid(Text_Data(Int_Temp(j)) , i * 10 + k + 1 , 1) = "0" Then Int_Temp2 = Int_Temp2 + Get_BackColor() Else Int_Temp2 = Int_Temp2 + Get_ForeColor()
    Response.BinaryWrite ChrB(Int_Temp2)
    Next
    Next
    Int_Temp2 = (Text_Len / 4 - Text_Len \ 4) * 4
    Select Case Int_Temp2
    Case 1
    Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0)
    Case 2
    Response.BinaryWrite ChrB(0) & ChrB(0)
    Case 3
    Response.BinaryWrite ChrB(0)
    End Select
    Next

    Function Get_BackColor()
    ''得到一个背景色
    If Int(Rnd * 30) = 0 Then ''注:此处的 Rnd * 30 是决定背景杂色的多少,值越大,则杂色越少,图片越容易看清楚
    Get_BackColor = CInt(Mid("00021209",Int(Rnd * 4) * 2 + 1,2))
    Else
    Get_BackColor = CInt(Mid("081515151515",Int(Rnd * 6) * 2 + 1,2))
    End If
    End Function

    Function Get_ForeColor()
    ''得到一个前景色
    Get_ForeColor = CInt(Mid("00021209",Int(Rnd * 4) * 2 + 1,2))
    End Function



更多的ASP生成彩色可变长验证码程序请到论坛查看: http://BBS.TC711.COM



【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 来源: 互联网    日期:2007-1-13 15:10:33   

发 表 评 论
查看评论

  您的大名:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
认证编码: 刷新验证码
点评内容: 字数0
  精品推荐  
  本月推荐  
  友情赞助  

关于我们 | 联系我们 | 广告投放 | 留言反馈 | 免费程序 | 虚拟主机 | 网站建设 |  网站推广 |  google_sitemap baidu_sitemap RSS订阅
本站所有资源均来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会在最短的时间回复您
Copyright © 2005-2015 Tc711.Com All Rights Reserved 版权所有·711网络   蜀ICP备05021915号
110网监备案 信息产业备案 不良信息举报