用C 生成中文漢字驗證碼

2021-04-07 05:58:45 字數 1361 閱讀 8103

程式**:

using system;

using system.text;

/**//*

此函式在漢字編碼範圍內隨機建立含兩個元素的十六進製制位元組陣列,每個位元組陣列代表乙個漢字,並將

四個位元組陣列儲存在object陣列中。

引數:strlength,代表需要產生的漢字個數

*/public static object createregioncode(int strlength)

;random rnd=new random();

//定義乙個object陣列用來

object bytes=new object[strlength];

/**//*每迴圈一次產生乙個含兩個元素的十六進製制位元組陣列,並將其放入bject陣列中

每個漢字有四個區位碼組成

區位碼第1位和區位碼第2位作為位元組陣列第乙個元素

區位碼第3位和區位碼第4位作為位元組陣列第二個元素

*/for(int i=0;i

else

string str_r2=rbase[r2].trim();

//區位碼第3位

rnd=new random(r2*unchecked((int)datetime.now.ticks)+i);

int r3=rnd.next(10,16);

string str_r3=rbase[r3].trim();

//區位碼第4位

rnd=new random(r3*unchecked((int)datetime.now.ticks)+i);

int r4;

if (r3==10)

else if (r3==15)

else

string str_r4=rbase[r4].trim();

//定義兩個位元組變數儲存產生的隨機漢字區位碼

byte byte1=convert.tobyte(str_r1 + str_r2,16);

byte byte2=convert.tobyte(str_r3 + str_r4,16);

//將兩個位元組變數儲存在位元組陣列中

byte str_r=new byte;

//將產生的乙個漢字的位元組陣列放入object陣列中

bytes.setvalue(str_r,i);

}return bytes;}}

}實現了隨機生成漢字後,就可以使用.net gdi來繪製自己需要的驗證碼圖形了。具體的怎樣生成驗證碼,以及改變其中字元的長和寬等效果網上已經有很多相關的文章,這裡由於篇幅就不再介紹了。不過有一點要說明的是以上**在中文版的windows下才能執行,因為它帶有gb的字符集,如果你是其他語言的作業系統,就需要安裝gb字符集了。

用C 生成中文漢字驗證碼的基本原理

1 漢字編碼原理 到底怎麼辦到隨機生成漢字的呢?漢字從 來的呢?是不是有個後台資料表,其中存放了所需要的所有漢字,使用程式隨機取出幾個漢字組合就行了呢?使用後台資料庫先將所有漢字存起來使用時隨機取出,這也是一種辦法,但是中文漢字有這麼多,怎麼來製作呢?其實可以不使用任何後台資料庫,使用程式就能做到這...

用C 生成隨機中文漢字驗證碼的基本原理

1 漢字編碼原理 到底怎麼辦到隨機生成漢字的呢?漢字從 來的呢?是不是有個後台資料表,其中存放了所需要的所有漢字,使用程式隨機取出幾個漢字組合就行了呢?使用後台資料庫先將所有漢字存起來使用時隨機取出,這也是一種辦法,但是中文漢字有這麼多,怎麼來製作呢?其實可以不使用任何後台資料庫,使用程式就能做到這...

用C 生成隨機中文漢字驗證碼的基本原理

1 漢字編碼原理 到底怎麼辦到隨機生成漢字的呢?漢字從 來的呢?是不是有個後台資料表,其中存放了所需要的所有漢字,使用程式隨機取出幾個漢字組合就行了呢?使用後台資料庫先將所有漢字存起來使用時隨機取出,這也是一種辦法,但是中文漢字有這麼多,怎麼來製作呢?其實可以不使用任何後台資料庫,使用程式就能做到這...