驗證碼生成涉及的點:
(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資料夾內...