生成前端驗證碼並校驗

2021-10-21 10:35:18 字數 3119 閱讀 4567

* 驗證碼生成器類,可生成數字、大寫、小寫字母及三者混合型別的驗證碼。 支援自定義驗證碼字元數量; 支援自定義驗證碼的大小; 支援自定義需排除的特殊字元;

* 支援自定義干擾線的數量; 支援自定義驗證碼**顏色

*/public class validatecode

/*** 生成驗證碼,給外部程式呼叫

* * @param type

* 驗證碼型別,參見本類的靜態屬性

* @param length

* 驗證碼字元長度,大於0的整數

* @param exchars

* 需排除的特殊字元

* @param width

* 寬度

* @param height

* 高度

* @param interline

* 中干擾線的條數

* @param randomlocation

* 每個字元的高低位置是否隨機

* @param backcolor

* 顏色,若為null,則採用隨機顏色

* @param forecolor

* 字型顏色,若為null,則採用隨機顏色

* @param linecolor

* 干擾線顏色,若為null,則採用隨機顏色

* @return 快取物件

*/public static bufferedimage generateimagecode(int type, int length, string exchars, int width, int height,

int interline, boolean randomlocation, color backcolor, color forecolor, color linecolor)

/*** 生成驗證碼字串

* * @param type

* 驗證碼型別,參見本類的靜態屬性

* @param length

* 驗證碼長度,大於0的整數

* @param exchars

* 需排除的特殊字元(僅對數字、字母混合型驗證碼有效,無需排除則為null)

* @return 驗證碼字串

*/public static string generatetextcode(int type,int length,string exchars)

}break;

// 僅字母(即大寫字母、小寫字母混合)

case type_letter_only:

while (i < length)

}break;

// 數字、大寫字母、小寫字母混合

case type_all_mixed:

while (i < length)

}break;

// 數字、大寫字母混合

case type_num_upper:

while (i < length)

}break;

// 數字、小寫字母混合

case type_num_lower:

while (i < length)

}break;

// 僅大寫字母

case type_upper_only:

while (i < length)

}break;

// 僅小寫字母

case type_lower_only:

while (i < length)

}break;

}return code.tostring();

}/**

* 已有驗證碼,生成驗證碼

* * @param textcode

* 文字驗證碼

* @param width

* 寬度

* @param height

* 高度

* @param interline

* 中干擾線的條數

* @param randomlocation

* 每個字元的高低位置是否隨機

* @param backcolor

* 顏色,若為null,則採用隨機顏色

* @param forecolor

* 字型顏色,若為null,則採用隨機顏色

* @param linecolor

* 干擾線顏色,若為null,則採用隨機顏色

* @return 快取物件

*/public static bufferedimage generateimagecode(string textcode, int width, int height, int interline,

boolean randomlocation, color backcolor, color forecolor, color linecolor)

// 獲取當前登入的主體物件

subject subject = securityutils.getsubject();

//首先進行驗證碼驗證

session session = subject.getsession();

//驗證碼在 session裡面

string code = (string)session.getattribute("validatecode");

if (validatecode == null || validatecode.equals(""))

if (!validatecode.tolowercase().equals(code.tolowercase()))

驗證碼校驗

問題 隨機生成一組驗證碼,輸入並比較是否輸入正確。定義驗證字元 char ver 計算陣列長度 int length sizeof ver sizeof char 產生隨機數下標 byte n1 arc4random length byte n2 arc4random length byte n3 ...

驗證碼一(驗證碼生成)

根據手機好查詢密碼 return type description code for i 0 i 6 i 4位驗證碼也可以用rand 1000,9999 直接生成 將生成的驗證碼寫入session,備驗證時用 session start session verify num code 建立,定義顏色...

java生成並展示驗證碼

第一步 生成驗證碼 驗證碼生成程式 param model return throws ioexception login action action.skip responsebody method requestmethod.get public string login code model ...