CheckCode.asp
上传用户:dbstep
上传日期:2022-08-06
资源大小:2803k
文件大小:2k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

ASP/ASPX

  1. <%
  2. Option Explicit
  3. Const CodeType = 5 '注:1,4,7,10,13,16为黑白型 2,5,8,11,14,17为彩色背景型 3,6,9,12,15,18为噪点型
  4. Const listcode = "0123456789abcdefghijklmnopqrstuvwxyz"
  5. Response.buffer = True
  6. Response.Expires = -1
  7. Response.AddHeader "Pragma", "no-cache"
  8. Response.AddHeader "cache-ctrol", "no-cache"
  9. Dim zNum, rNum, i, j, listnum
  10. Dim Ados, Ados1
  11. '得到验证码的字符串
  12. Dim zimg(6), NStr
  13. Randomize Timer
  14. For i = 0 To 5
  15.     rNum = Fix(35 * Rnd) '将35改为9即为使用纯数字密码
  16.     zimg(i) = rNum
  17.     listnum = listnum & Mid(listcode, rNum + 1, 1)
  18. Next
  19. Session("CheckCode") = listnum
  20. '*********************
  21. Dim Pos
  22. Set Ados = Server.CreateObject("Adodb.Stream")
  23. Ados.Mode = 3
  24. Ados.Type = 1
  25. Ados.Open
  26. Set Ados1 = Server.CreateObject("Adodb.Stream")
  27. Ados1.Mode = 3
  28. Ados1.Type = 1
  29. Ados1.Open
  30. '得到验证码图像实体部分
  31. Ados.LoadFromFile Server.mappath("body" & CodeType & ".Fix")
  32. Ados1.write Ados.Read(2880)
  33. For i = 0 To 5
  34.     Ados.Position = (35 - zimg(i)) * 480
  35.     Ados1.Position = i * 480
  36.     Ados1.write Ados.Read(480)
  37. Next
  38. '得到图像头部信息
  39. Ados.LoadFromFile Server.mappath("head.fix")
  40. Pos = LenB(Ados.Read())
  41. Ados.Position = Pos
  42. '将头部信息与实体部分合并成横向排列
  43. On Error Resume Next
  44. For i = 0 To 15
  45.     For j = 0 To 5
  46.         Ados1.Position = i * 32 + j * 480
  47.         Ados.Position = Pos + 30 * j + i * 270
  48.         Ados.write Ados1.Read(30)
  49.     Next
  50. Next
  51. '输出图像
  52. Ados.Position = 0
  53. Response.ContentType = "image/BMP"
  54. Response.BinaryWrite Ados.Read()
  55. Ados.Close
  56. Set Ados = Nothing
  57. Ados1.Close
  58. Set Ados1 = Nothing
  59. %>