<%
response.buffer=true
numcode
function numcode()
response.expires = -1
response.addheader "pragma","no-cache"
response.addheader "cache-ctrol","no-cache"
dim znum,i,j
dim ados,ados1
randomize timer
生成隨機四位數字:
znum = cint(8999*rnd+1000)
傳遞給session
session("getcode") = znum
該for迴圈是將隨機數字放入乙個下標3的陣列,便於提供給後面的陣列變換
dim zimg(3),nstr
nstr=cstr(znum)
for i=0 to 3
zimg(i)=cint(mid(nstr,i+1,1))
next
dim pos
'定義二個 adodb.stream binary物件,作影象資料操作之用:
set ados=server.createobject("adodb.stream")
ados.mode=3
ados.type=1
ados.open
set ados1=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位元組
這些就是bmp 24bit的資料詳細資訊了
『至於頭部,也很簡單,包含長寬,影象開始標記等等~~才54位元組,遠沒jpg什麼的複雜
ados1.write ados.read(1280)
'第乙個for迴圈,按生成的隨機數字順序從 10x100的數字陣列中提取出相應的四個數字
但是豎排的數字陣列
for i=0 to 3
ados.position=(9-zimg(i))*320
ados1.position=i*320
ados1.write ados.read(320)
next
'清空已經用完的ados的資料,調入替換新的影象頭54位元組的標頭檔案
pos=lenb(ados.read())
ados.position=pos '指定pos位置,即可再偏移54位元組的位置新增圖形資料
第二個for迴圈,進行數字的陣列變換,由豎排的塊轉換為橫排的數字塊
方法是隔320位元組抽取4次30位元組寫入ados物件,再抽取偏移第二行的影象資料
30位元組是因為bmp 寬大於長時無00 00的行結束標記
for i=0 to 9 step 1
for j=0 to 3
ados1.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:set ados=nothing
ados1.close:set ados1=nothing
end function
%>
<%
c = request.form("c")
'如果可以輸入小寫的數字,請把下面三行注釋掉
for ii = 0 to 9
c = replace(c,cstr(ii),"")
next
c = 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")
if cstr(c) <> cstr(session("validatecode")) then
response.write ("驗證碼不正確")
else
'這裡處理表單
end if
%>
asp中文數字驗證碼
response.buffer true numcode function numcode response.expires 1response.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....