<
%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....