乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      生成彩色可變長(zhǎng)驗(yàn)證碼程序

       昵稱2807 2005-11-21
      ASP 生成 彩色 可變長(zhǎng) 驗(yàn)證碼程序

      記得“想當(dāng)年”某天上午在這里路過(guò),看到一位朋友貼的自己寫(xiě)的驗(yàn)證碼程序,雖然他的程序是黑白有雜點(diǎn),但其實(shí)很容易被破解的,但卻有不少人喜歡著。。。沒(méi)辦法,當(dāng)天下午研究了一翻 BMP 圖片,然后就寫(xiě)出了這些代碼,只是當(dāng)初沒(méi)有公布,眼看今天這么多壞人亂在很多論壇上注冊(cè)用戶來(lái)發(fā)廣告,所以才貼出來(lái)共享一下。

      本驗(yàn)證碼生成程序特點(diǎn)如下:

      一、彩色;

      二、BMP 圖像色深為 16 位,生成的圖片體積更??;(4位長(zhǎng)的驗(yàn)證碼只有幾百字節(jié))

      三、長(zhǎng)度可自定義;(1位至25位可固定設(shè)置,也可以自己改成動(dòng)態(tài))

      四、背景雜色深度可自定義;

      具體請(qǐng)看代碼

      注:代碼中并沒(méi)有針對(duì)動(dòng)網(wǎng)的 設(shè)置驗(yàn)證碼 Session 的地方。想用的朋友自己根據(jù)需要改一下,位置就在代碼中出現(xiàn)  Session("Num") 的那一行,改成自己需要的名稱就可以了。這個(gè)驗(yàn)證碼也可以用在任何需要驗(yàn)證碼的地方。不用在動(dòng)網(wǎng)論壇也可。

      下面是代碼部分:

      <--r>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

      ‘‘***** 參數(shù)配置區(qū) *****

      Text_Len = 4 ‘‘驗(yàn)證碼長(zhǎng)度(支持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"

      ‘‘下面隨機(jī)生成各位驗(yàn)證碼
      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)

      ‘‘下面輸出圖片數(shù)據(jù)
      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()
      ‘‘得到一個(gè)背景色
      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()
      ‘‘得到一個(gè)前景色
      Get_ForeColor = CInt(Mid("00021209",Int(Rnd * 4) * 2 + 1,2))
      End Function

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多