using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace randomhanzi
public static string getgb2312()
/* 此函式在漢字編碼範圍內隨機建立含兩個元素的十六進製制位元組陣列,每個位元組陣列代表乙個漢字,並將
四個位元組陣列儲存在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 < strlength; 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;}}
}
隨機驗證碼
function window,document if object.prototype.tostring.call options object object else this options.numarr 0,1,2,3,4,5,6,7,8,9 split this options.lette...
漢字驗證碼演算法
例如 好 字的十六進製制區位碼是ba c3,前兩位是區域,後兩位代表位置,ba處在第26區,好 處在此 區漢字的第35位也就是c3位置,所以數字 就是2635。這就是gb2312漢字區位原理。根據 漢字區位碼表 我們可以發現 第15區也就是af區以前都沒有漢字,只有少量符號,漢字都從第16區b0開始...
c 生成隨機驗證碼
public class captcha set endregion region 驗證碼字串 驗證碼字串 private string verifycodetext null 驗證碼字串 public string verifycodetext set endregion region 是否加入小...