asp中文數字驗證碼

2021-04-15 14:21:37 字數 3103 閱讀 1975

<

%response.buffer

=true

numcode

function

numcode()

response.expires =-

1response.addheader 

"pragma",

"no-cache

"response.addheader 

"cache-ctrol",

"no-cache

"dim

znum,i,j

dimados,ados1

randomize

timer

生成隨機四位數字:

znum 

=cint

(8999

*rnd

+1000

)傳遞給session

session(

"getcode") 

=znum

該for迴圈是將隨機數字放入乙個下標3的陣列,便於提供給後面的陣列變換

dimzimg(

3),nstr

nstr

=cstr

(znum)

fori=0

to3zimg(i)

=cint

(mid

(nstr,i+1

,1))next

dimpos

'定義二個 adodb.stream binary物件,作影象資料操作之用:

setados

=server.createobject(

"adodb.stream")

ados.mode=3

ados.type=1

ados.open

setados1

=server.createobject(

"adodb.stream")

ados1.mode=3

ados1.type=1

ados1.open

'載入0~9的數字資料10x100的,gbr的陣列資料,每個320位元組,10個數字3200byte

'bgr乙個點,10x10個點乙個數字,乙個點三個位元組(二進位制8位,16進製制 00~ff)

'一行10個點 30位元組 + 行結束標記 00 00 二位元組 32位元組,所以乙個10x100寬小於長的影象每個數字10x10是320位元組

'長大於寬的則無行結束標記 0000,直接是300位元組

"body.fix"))

ados1.write ados.read(

1280)'

第乙個for迴圈,按生成的隨機數字順序從 10x100的數字陣列中提取出相應的四個數字

但是豎排的數字陣列

fori=0

to3ados.position=(

9-zimg(i))

*320

ados1.position=i

*320

ados1.write ados.read(

320)

next

'清空已經用完的ados的資料,調入替換新的影象頭54位元組的標頭檔案       

"head.fix"))

pos=

lenb(ados.read())

ados.position

=pos 

'指定pos位置,即可再偏移54位元組的位置新增圖形資料

第二個for迴圈,進行數字的陣列變換,由豎排的塊轉換為橫排的數字塊

方法是隔320位元組抽取4次30位元組寫入ados物件,再抽取偏移第二行的影象資料

30位元組是因為bmp 寬大於長時無00 00的行結束標記

fori=0

to9step 

1forj=

0to3ados1.position=i

*32+j

*320

ados.position

=pos+30

*j+i

*120

ados.write ados1.read(30)

next

next

ados.position=0

response.binarywrite直接向客戶端傳送影象資料

response.contenttype ="

image/bmp

"response.binarywrite ados.read()

ados.close:

setados

=nothing

ados1.close:

setados1

=nothing

end function

%>

<%c 

=request.form("c

")'如果可以輸入小寫的數字,請把下面三行注釋掉

forii =0

to9c =

replace

(c,cstr

(ii),"")

nextc =

replace

(c,"零"

,"0"

)c =replace

(c,"一"

,"1"

)c =replace

(c,"二"

,"2"

)c =replace

(c,"三"

,"3"

)c =replace

(c,"四"

,"4"

)c =replace

(c,"五"

,"5"

)c =replace

(c,"六"

,"6"

)c =replace

(c,"七"

,"7"

)c =replace

(c,"八"

,"8"

)c =replace

(c,"九"

,"9"

)ifcstr

(c) 

<>

cstr

(session(

"validatecode

")) 

then

response.write (

"驗證碼不正確")

else

'這裡處理表單

endif

%>

asp中文數字驗證碼

response.buffer true numcode function numcode response.expires 1 response.addheader pragma no cache response.addheader cache ctrol no cache dim znum,i...

asp中文數字驗證碼的實現

驗證碼在知碼網來說是乙個耳熟能詳的名詞了。今天 知碼網就來說說大寫數字驗證碼的實現方法吧。asp c request.form c 如果可以輸入小寫的數字,請把下面三行注釋掉 for ii 0 to 9 c replace c,cstr ii next c replace c,零 0 c repla...

數字驗證碼

private void picturebox1 click object sender,eventargs e 將str賦值給strcode,用於判斷輸入的驗證碼是否正確 strcode str 定義bmp影象的寬度等於picture的寬度減去5 int bmpwidth picturebox1....