国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GDI+的Web端頁(yè)面驗(yàn)證碼繪制

2018-03-21 09:27:04李軍連俊光
電腦知識(shí)與技術(shù) 2018年3期

李軍 連俊光

摘要:GDI+,全稱為Graphics Device Interface plus,中文名稱是圖形設(shè)備接口,可滿足程序中對(duì)驗(yàn)證碼繪制及輸出的需求。驗(yàn)證碼,是一種能保證用戶在登錄Web時(shí)賬戶安全的方式,能夠有效防止計(jì)算機(jī)暴力破解。

關(guān)鍵詞:GDI+;驗(yàn)證碼;安全登錄

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)03-0072-02

1 概述

為了杜絕某個(gè)指定的用戶被網(wǎng)絡(luò)hacker使用自己編寫的程序采用隨機(jī)、多次、強(qiáng)制的方法進(jìn)行破解,便產(chǎn)生了驗(yàn)證碼。驗(yàn)證碼本質(zhì)為一張圖片,圖片上的內(nèi)容由形狀不規(guī)則、顏色不同的字母、數(shù)字構(gòu)成,最后通過(guò)GDI+輸出到用戶界面上。

2 GDI+介紹

GDI+是用來(lái)交換系統(tǒng)和程序的信息,輸出程序中需要的圖形。相對(duì)于GDI增加了許多新的功能:

1) 畫刷可以漸變,在繪制直線時(shí),畫刷漸變,即在繪制一條直線的過(guò)程中顏色在漸漸變化。

2) 基數(shù)樣條函數(shù),由指定的點(diǎn)形成樣條,單條曲線按順序連接形成更大曲線即基數(shù)樣條,相比與傳統(tǒng)直線路徑更加準(zhǔn)確。

3) 相對(duì)于GDI只支持區(qū)域的移動(dòng),GDI+支持了區(qū)域的伸縮。

4) 支持的圖像格式更多。

3 GDI+操作方法說(shuō)明

3.1 FromImage(參數(shù))方法

FromImage是在Graphics類下的方法,用來(lái)在畫布上生成畫筆對(duì)象,使用時(shí)傳遞的參數(shù)即為要生成畫筆的畫布對(duì)象。假設(shè)創(chuàng)建的畫布對(duì)象為image,要在image畫布上生成畫筆,便可以使用FromImage方法, Graphics.FromImage(image),此時(shí)即在指定畫布上生成了畫筆,將生成的畫筆對(duì)象賦給Graphics g,便完成了在畫布上創(chuàng)建畫筆的工作。

3.2 Clear(參數(shù))方法

Clear方法是用來(lái)改變畫布的背景顏色的,使用Clear方法可以直接改變整塊畫布的顏色。傳遞的參數(shù)即為想要填充的畫布背景顏色。假設(shè)已經(jīng)綁定畫布的畫筆對(duì)象為g,要清空畫布的背景色,使用Clear方法實(shí)現(xiàn),即g.Clear(Color.White)。

3.3 DrawString()方法

DrawString方法用來(lái)實(shí)現(xiàn)用畫筆在畫布上畫出要顯示的字符,常用的DrawString方法有4個(gè)參數(shù),DrawString(參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)4),參數(shù)1指定想要在畫布上顯示的字符。參數(shù)2指定字符的字體,參數(shù)3是要顯示的字符狀態(tài),加粗、傾斜等。

參數(shù)4是要顯示的字符的位置,即坐標(biāo)。

3.4 DrawLine () 方法

DrawLine(參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)4,參數(shù)5)方法用于繪制一條連接兩個(gè)指定點(diǎn)的直線。其中,參數(shù)1用于指定繪制線的樣式及顏色、寬度等。參數(shù)2用于指定第一個(gè)點(diǎn)的X坐標(biāo),參數(shù)3用于指定第一個(gè)點(diǎn)的Y坐標(biāo),參數(shù)4用于指定第二個(gè)點(diǎn)的X坐標(biāo),參數(shù)5用于指定第二個(gè)點(diǎn)的Y坐標(biāo)。

3.5 DrawRectangle()方法

DrawRectangle(參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)4,參數(shù)5)方法可以繪制一個(gè)長(zhǎng)方形,長(zhǎng)方形的樣式及顏色、寬度等由參數(shù)1指定。參數(shù)2用于確定要繪制的長(zhǎng)方形的左上角頂點(diǎn)的X坐標(biāo)。參數(shù)3用于確定要繪制的長(zhǎng)方形的左上角頂點(diǎn)的Y坐標(biāo)。參數(shù)4給定要繪制的長(zhǎng)方形的寬。參數(shù)5給定要繪制的長(zhǎng)方形的高。

4 繪制驗(yàn)證碼的基本流程

我們?nèi)粘T谠L問(wèn)各大網(wǎng)站時(shí)見到的驗(yàn)證碼大多為隨機(jī)的4位數(shù)字,并且在數(shù)字上面散布著各種顏色的線條及像素點(diǎn)。分析出驗(yàn)證碼的特點(diǎn),下面我們便可以開始繪制我們自己的驗(yàn)證碼:

4.1 生成隨機(jī)數(shù)字

4.2 創(chuàng)建畫布

4.3 在畫布上創(chuàng)建畫筆對(duì)象

4.4 清空畫布的背景色

4.5 生成隨機(jī)生成器

4.6 繪制隨機(jī)干擾線

4.7 繪制隨機(jī)干擾點(diǎn)

4.8 保存圖片數(shù)據(jù)

5 繪制驗(yàn)證碼幫助類的完整代碼

5.1 生成隨機(jī)數(shù)字完整代碼

5.2 創(chuàng)建驗(yàn)證碼圖片完整代碼

6 效果圖

在用戶登錄時(shí),顯示了一個(gè)隨機(jī)生成的4位數(shù)的驗(yàn)證碼圖片,如圖11:

7 結(jié)束語(yǔ)

驗(yàn)證碼對(duì)于用戶信息安全具有重要意義,本文使用GDI+實(shí)現(xiàn)了Web端常見的驗(yàn)證碼的繪制,可在實(shí)際應(yīng)用中參考此方法生成驗(yàn)證碼,具有實(shí)用價(jià)值。

參考文獻(xiàn):

[1] 李宏利, 李漢榮, 張衛(wèi)成, 等. 通用地圖標(biāo)繪系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 測(cè)繪科學(xué), 2005(4).

[2] 金良益, 江南, 張亞軍, 等. 矢量化多邊形優(yōu)化方法[J]. 測(cè)繪科學(xué)技術(shù)學(xué)報(bào), 2017(3).

[3] 王強(qiáng), 鄭逢斌, 喬保軍, 等. 一種改進(jìn)的Delaunay三角網(wǎng)生成算法[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2010(8).

葫芦岛市| 渑池县| 开江县| 汽车| 江口县| 郯城县| 济源市| 依安县| 高雄市| 民县| 景泰县| 定安县| 吉木乃县| 汝阳县| 灵台县| 库尔勒市| 林西县| 弋阳县| 凯里市| 甘泉县| 申扎县| 那曲县| 蒙自县| 灵川县| 墨脱县| 马龙县| 射阳县| 新竹县| 万年县| 哈巴河县| 益阳市| 浦东新区| 潼关县| 来安县| 锦州市| 阆中市| 宣城市| 洛宁县| 南城县| 榆社县| 朔州市|