數字和字母組合并產生圖片的驗證碼祥解

來源:互聯網
上載者:User
驗證碼 大家經常在網上登陸的時候經常會看到讓你輸入驗證碼,有的是文字的,有的呢是圖片,比如chinaren.com校友錄中留言的時候,我們就會看到數字圖片驗證碼;網上關於數字文字驗證碼實現方法的相關資料很多,而我們這裡介紹的是數字和字母隨機組成的並且產生圖片的驗證碼的實現方法。看起來很複雜、其實很簡單的,大家跟著我往下看:

首先,我們先介紹一下設計思路,數字和字母的隨機組合產生驗證碼,然後將驗證碼產生圖片,這裡“數字和字母的組合”應該是隨機取出來的;如果是專門的數字驗證碼,我們可以這樣實現:

ycodenum=4 '驗證碼的位元,或者說成個數
for i=1 to ycodenum
Randomize '初始化隨機數發生器
ycode=ycode&Int((9*Rnd)) 'rnd是隨機數,從0到1之間的任意實數,這裡獲得0到9之間的整數
next

response.write ycode '就可以輸出數字驗證碼(4位)

然而,我們要讓數字和字母同樣隨機產生,這裡我們可以用到數組來實現這種效果,如下:

ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" '將數字和大寫字母組成一個字串
yc=split(char,",") '將字串產生數組
ycodenum=4
for i=1 to ycodenum
Randomize
ycode=ycode&yc(Int((35*Rnd))) '數組一般從0開始讀取,所以這裡為35*Rnd
next

response.write ycode

現在看看輸出結果是不是數字和字母隨機組合的呢?

下面看看怎樣產生圖片,這個也許有些朋友知道:asp不能產生圖片,必須使用asp組件。不錯,我們這裡使用的是ASP圖象組件shotgraph。有一點大家注意,伺服器不是自己的不能用哦,因為你裝不了這組件。

組件的下載地址:http://www.wrclub.net/down.aspx?id=545,至於怎麼註冊,這裡就不多說了,網上有很多資料

我們看看產生圖片的代碼:

ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" '將數字和大寫字母組成一個字串
yc=split(char,",") '將字串產生數組
ycodenum=4
for i=1 to ycodenum
Randomize
ycode=ycode&yc(Int((35*Rnd))) '數組一般從0開始讀取,所以這裡為35*Rnd
next

Response.Clear
Response.ContentType="image/gif"
set obj=Server.CreateObject("shotgraph.image")
x=55 '圖片的寬
y=26 '圖片的高
obj.CreateImage x,y,8 '8是圖片的顏色8位
obj.SetColor 0,55,126,222
obj.SetColor 1,255,255,255

obj.CreatePen "PS_SOLID",1,0
obj.SetBgColor 0
obj.Rectangle 0,0,x-1,y-1
obj.SetBkMode "TRANSPARENT"
obj.CreateFont "Arial",136,18,1,False,False,False,False
obj.SetTextColor 1
obj.TextOut 5,4,ycode&" "

img=obj.GifImage(-1,1,"")
Response.BinaryWrite (img)

針對以上代碼也就是說shotgraph普通的畫圖的原理請參考:http://www.pconline.com.cn/pcedu/empolder/wz/asp/10204/45207.html

OK,這樣就完成了,我們來看看效果吧!

說明,以上產生圖片組件和代碼由毒愛提供,大家有什麼建議或者更好的方法,可以到網人論壇(http://bbs.wrclub.net)發貼,網人論壇始終歡迎您的到來!

原始出處:http://www.wrclub.net/show.aspx?id=1524



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。