ASP程序无组件生成验证码.doc_第1页
ASP程序无组件生成验证码.doc_第2页
ASP程序无组件生成验证码.doc_第3页
ASP程序无组件生成验证码.doc_第4页
ASP程序无组件生成验证码.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASP程序无组件生成验证码一、无组件生成验证码GIF格式= 0 And pY * (Height-pY-1) = 0 ThenGraph(pX, pY) = 1End IfEnd SubPublic Sub SetDraw(pIndex, pNumber) 字符数据Dim DotData(8)DotData(0) = Array(30, 15, 50, 1, 50, 100)DotData(1) = Array(1 ,34 ,30 ,1 ,71, 1, 100, 34, 1, 100, 93, 100, 100, 86)DotData(2) = Array(1, 1, 100, 1, 42, 42, 100, 70, 50, 100, 1, 70)DotData(3) = Array(100, 73, 6, 73, 75, 6, 75, 100)DotData(4) = Array(100, 1, 1, 1, 1, 50, 50, 35, 100, 55, 100, 80, 50, 100, 1, 95)DotData(5) = Array(100, 20, 70, 1, 20, 1, 1, 30, 1, 80, 30, 100, 70, 100, 100, 80, 100, 60, 70, 50, 30, 50, 1, 60)DotData(6) = Array(6, 26, 6, 6, 100, 6, 53, 100)DotData(7) = Array(100, 30, 100, 20, 70, 1, 30, 1, 1, 20, 1, 30, 100, 70, 100, 80, 70, 100, 30, 100, 1, 80, 1, 70, 100, 30)DotData(8) = Array(1, 80, 30, 100, 80, 100, 100, 70, 100, 20, 70, 1, 30, 1, 1, 20, 1, 40, 30, 50, 70, 50, 100, 40)Dim vExtent : vExtent = Width / CountMargin(0) = Border + vExtent * (Rnd * Offset) / 100 + Margin(1)Margin(1) = vExtent * (pNumber + 1) - Border - vExtent * (Rnd * Offset) / 100Margin(2) = Border + Height * (Rnd * Offset) / 100Margin(3) = Height - Border - Height * (Rnd * Offset) / 100Dim vStartX, vEndX, vStartY, vEndYDim vWidth, vHeight, vDX, vDY, vDeltaTDim vAngle, vLengthvWidth = Int(Margin(1) - Margin(0)vHeight = Int(Margin(3) - Margin(2) 起始坐标vStartX = Int(DotData(pIndex)(0)-1) * vWidth / 100)vStartY = Int(DotData(pIndex)(1)-1) * vHeight / 100)Dim i, jFor i = 1 To UBound(DotData(pIndex), 1)/2If DotData(pIndex)(2*i-2) 0 And DotData(pIndex)(2*i) 0 Then 终点坐标vEndX = (DotData(pIndex)(2*i)-1) * vWidth / 100vEndY = (DotData(pIndex)(2*i+1)-1) * vHeight / 100 横向差距vDX = vEndX - vStartX 纵向差距vDY = vEndY - vStartY 倾斜角度If vDX = 0 ThenvAngle = Sgn(vDY) * 3.14/2ElsevAngle = Atn(vDY / vDX)End If 两坐标距离If Sin(vAngle) = 0 ThenvLength = vDXElsevLength = vDY / Sin(vAngle)End If 随机转动角度vAngle = vAngle + (Rnd - 0.5) * 2 * Angle * 3.14 * 2 / 100vDX = Int(Cos(vAngle) * vLength)vDY = Int(Sin(vAngle) * vLength)If Abs(vDX) Abs(vDY) Then vDeltaT = Abs(vDX) Else vDeltaT = Abs(vDY)For j = 1 To vDeltaTSetDot Margin(0) + vStartX + j * vDX / vDeltaT, Margin(2) + vStartY + j * vDY / vDeltaTNextvStartX = vStartX + vDXvStartY = vStartY + vDYEnd IfNextEnd SubPublic Sub Output()Response.Expires = -9999Response.AddHeader pragma, no-cacheResponse.AddHeader cache-ctrol, no-cacheResponse.ContentType = image/gif 文件类型Response.BinaryWrite ChrB(Asc(G) & ChrB(Asc(I) & ChrB(Asc(F) 版本信息Response.BinaryWrite ChrB(Asc(8) & ChrB(Asc(9) & ChrB(Asc(a) 逻辑屏幕宽度Response.BinaryWrite ChrB(Width Mod 256) & ChrB(Width 256) Mod 256) 逻辑屏幕高度Response.BinaryWrite ChrB(Height Mod 256) & ChrB(Height 256) Mod 256)Response.BinaryWrite ChrB(128) & ChrB(0) & ChrB(0) 全局颜色列表Response.BinaryWrite ChrB(255) & ChrB(255) & ChrB(255)Response.BinaryWrite ChrB(0) & ChrB(85) & ChrB(255) 图象标识符Response.BinaryWrite ChrB(Asc(,)Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) 图象宽度Response.BinaryWrite ChrB(Width Mod 256) & ChrB(Width 256) Mod 256) 图象高度Response.BinaryWrite ChrB(Height Mod 256) & ChrB(Height 256) Mod 256)Response.BinaryWrite ChrB(0) & ChrB(7) & ChrB(255)Dim x, y, i : i = 0For y = 0 To Height - 1For x = 0 To Width - 1If Rnd 255 ThenResponse.BinaryWrite ChrB(255)ElseResponse.BinaryWrite ChrB(Width * Height Mod 255)End IfEnd IfNextNextResponse.BinaryWrite ChrB(128) & ChrB(0) & ChrB(129) & ChrB(0) & ChrB(59)End SubEnd ClassDim mCodeSet mCode = New Com_GifCode_ClassSession(GetCode) = mCode.Create()mCode.Output()Set mCode = Nothing%保存成ASP文件即可看见效果!二、无组件生成验证码BMP格式Call Com_CreatValidCode(ValidCode)Sub Com_CreatValidCode(pSN) Author: Layen QQ: 84815733 E-mail: 禁止缓存 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) = 1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111 vNumberData(1) = 1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111 vNumberData(2) = 1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011 vNumberData(3) = 1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111 vNumberData(4) = 1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011 vNumberData(5) = 1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111 vNumberData(6) = 1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111 vNumberData(7) = 1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111 vNumberData(8) = 1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111 vNumberData(9) = 1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111 vNumberData(10) = 1111011111111101111111101011111110101111111010111111101011111100000111110111011111011101111000100011 vNumberData(11) = 1000000111110111101111011110111101110111110000111111011101111101111011110111101111011110111000000111 vNumberData(12) = 1110000011110111101110111110111011111111101111111110111111111011111111101111101111011101111110001111 vNumberData(13) = 1000001111110111011111011110111101111011110111101111011110111101111011110111101111011101111000001111 vNumberData(14) = 1000000111110111101111011011111101101111110000111111011011111101101111110111111111011110111000000111 vNumberData(15) = 1000000111110111101111011011111101101111110000111111011011111101101111110111111111011111111000111111 vNumberData(16) = 1110000111110111011110111101111011111111101111111110111111111011100011101111011111011101111110001111 vNumberData(17) = 1000100011110111011111011101111101110111110000011111011101111101110111110111011111011101111000100011 vNumberData(18) = 1100000111111101111111110111111111011111111101111111110111111111011111111101111111110111111100000111 vNumberData(19) = 1110000011111110111111111011111111101111111110111111111011111111101111111110111110111011111000011111 vNumberData(20) = 1000100011110111011111011011111101011111110001111111010111111101101111110110111111011101111000100011 vNumberData(21) = 1000111111110111111111011111111101111111110111111111011111111101111111110111111111011110111000000011 vNumberData(22) = 1000100011110010011111001001111100100111110101011111010101111101010111110101011111010101111001010011 vNumberData(23) = 1000100011110011011111001101111101010111110101011111010101111101100111110110011111011001111000110111 vNumberData(24) = 1110001111110111011110111110111011111011101111101110111110111011111011101111101111011101111110001111 vNumberData(25) = 1000000111110111101111011110111101111011110000011111011111111101111111110111111111011111111000111111 vNumberData(26) = 1110001111110111011110111110111011111011101111101110111110111011111011101001101111011001111110001011 vNumberData(27) = 1000001111110111011111011101111101110111110000111111010111111101101111110110111111011101111000110011 vNumberData(28) = 1110000011110111101111011110111101111111111001111111111001111111111011110111101111011110111100000111 vNumberData(29) = 1000000011101101101111110111111111011111111101111111110111111111011111111101111111110111111110001111 vNumberData(30) = 1000100011110111011111011101111101110111110111011111011101111101110111110111011111011101111110001111 vNumberData(31) = 1000100011110111011111011101111101110111111010111111101011111110101111111010111111110111111111011111 vNumberData(32) = 1001010011110101011111010101111101010111110101011111001001111110101111111010111111101011111110101111 vNumberData(33) = 1000100011110111011111101011111110101111111101111111110111111110101111111010111111011101111000100011 vNumberData(34) = 1000100011110111011111011101111110101111111010111111110111111111011111111101111111110111111110001111 vNumberData(35) = 11000000111101110111111111011111111011111111101111

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论