BS模式驗證碼生成器及表單校驗

2021-09-12 09:19:07 字數 2446 閱讀 2822

驗證碼生成涉及的點:

(1)影象生成

(2)隨機字串的生成

(3)將隨機出的字串儲存到session

(4)前端顯示

後台校驗涉及的點:

(1)資料獲取

(2)指令碼過濾

(3)取儲存到session的驗證碼並校驗

1.工具類編寫

public class textutils

/// /// 返回乙個指定長度的隨機字串,該字串只會出現0-9和a-z

///

/// 指定返回字串的長度

///

public static string createauthstr(int len)

else

}return stringbuilder.tostring();

}/// /// 返回乙個指定長度的隨機字串,可指定返回的字串是否為純數字

///

/// 指定返回字串的長度

/// 若指定為ture則返回純數字隨機字串

///

public static string createauthstr(int len, bool onlynum)

stringbuilder stringbuilder = new stringbuilder();

random random = new random();

for (int i = 0; i < len; i++)

return stringbuilder.tostring();

}/// /// 防止指令碼注入

///

/// 客戶端引數

///

public static string filterscript(string content)

}//生成工具

public class verifyimagegenerate

; private static matrix m = new matrix();

/// /// 生成影象

///

/// 影象中顯示的文字字串

/// 指定影象寬度

/// 指定影象高度

/// 指定影象背景色

///

public static bitmap generateimage(string code,int width,int height,color bgcolor)

graphics charg = graphics.fromimage(charbmp);

float charx = -18;

for (int i = 0; i < code.length; i++)

drawbrush.dispose();

g.dispose();

charg.dispose();

return bitmap;

}private static int next(int max)

return value;

}private static int next(int min, int max)

}public class sessioncache

/// /// 刪除當前會話中指定的鍵

///

///

public static void delete(string key)

public static object getvalue(string key)

}

2.後台**編寫

負責生成影象的verifyimagepage.aspx.cs,aspx頁面什麼都不要,只留乙個page頭

public partial class verifyimagepage : system.web.ui.page

}

處理前端表單提交請求的程式webform1.aspx.cs

public partial class webform1 : system.web.ui.page

protected void unnamed_click(object sender, eventargs e)

//session會有生效時間,若超時獲取指定key會得到null,需要避免異常

else if (sessioncache.getvalue("verify") == null)

else if (verify != sessioncache.getvalue("verify").tostring())

else}}

3.前端顯示webform1.aspx

function changecodeimg()
4.頁面展示

生成前端驗證碼並校驗

驗證碼生成器類,可生成數字 大寫 小寫字母及三者混合型別的驗證碼。支援自定義驗證碼字元數量 支援自定義驗證碼的大小 支援自定義需排除的特殊字元 支援自定義干擾線的數量 支援自定義驗證碼 顏色 public class validatecode 生成驗證碼,給外部程式呼叫 param type 驗證碼...

php驗證碼生成及驗證

也是網上找的,自己稍微修改了下,code放在session裡面,md5加密了一下,網上很多說這樣很容易破解,但是作為一名業餘的php程式設計師實在不知道有什麼更好的辦法了,希望知道更好辦法的同學不吝賜教。error reporting e all e notice session start hea...

laravel 生成驗證碼及驗證

第一步 引入gregwar captcha包 composer require gregwar captcha 第二步 在幫助函式中建立函式 驗證註冊碼的正確與否 public function verifycaptcha else 第三步 如果想要替換自己的驗證碼字型,可以在包內的font資料夾內...