Spring boot 實現驗證碼

2021-09-01 12:02:39 字數 3974 閱讀 6280

1.controller層**,獲取驗證碼,以及生成驗證碼。

1.1返回頁

public string image()

1.2 html 

驗證

1.3.獲取驗證碼

public void authimage() throws ioexception

1.4 核對驗證碼

@responsebody

if (null == vercode)

string vercodestr = vercode.tostring();

localdatetime localdatetime = (localdatetime)session.getattribute("codetime");

long past = localdatetime.atzone(zoneid.systemdefault()).toinstant().toepochmilli();

long now = localdatetime.now().atzone(zoneid.systemdefault()).toinstant().toepochmilli();

if(vercodestr == null || code == null || code.isempty() || !vercodestr.equalsignorecase(code)) else if((now-past)/1000/60>2) else

}2、verifycodeutils的工具類

public class verifycodeutils 

/*** 使用指定源生成驗證碼

** @param verifysize 驗證碼長度

* @param sources 驗證碼字元源

* @return

*/public static string generateverifycode(int verifysize, string sources)

int codeslen = sources.length();

random rand = new random(system.currenttimemillis());

stringbuilder verifycode = new stringbuilder(verifysize);

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

return verifycode.tostring();

}/**

* 生成隨機驗證碼檔案,並返回驗證碼值

** @param w

* @param h

* @param outputfile

* @param verifysize

* @return

* @throws ioexception

*/public static string outputverifyimage(int w, int h, file outputfile, int verifysize) throws ioexception

/*** 輸出隨機驗證碼流,並返回驗證碼值

** @param w

* @param h

* @param os

* @param verifysize

* @return

* @throws ioexception

*/public static string outputverifyimage(int w, int h, outputstream os, int verifysize) throws ioexception

/*** 生成指定驗證碼影象檔案

** @param w

* @param h

* @param outputfile

* @param code

* @throws ioexception

*/public static void outputimage(int w, int h, file outputfile, string code) throws ioexception

file dir = outputfile.getparentfile();

if (!dir.exists())

try catch (ioexception e)

}/**

* 輸出指定驗證碼流

** @param w

* @param h

* @param os

* @param code

* @throws ioexception

*/public static void outputimage(int w, int h, outputstream os, string code) throws ioexception ;

float fractions = new float[colors.length];

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

arrays.sort(fractions);

g2.setcolor(color.gray);// 設定邊框色

g2.fillrect(0, 0, w, h);

color c = getrandcolor(200, 250);

g2.setcolor(c);// 設定背景色

g2.fillrect(0, 2, w, h - 4);

//繪製干擾線

random random = new random();

g2.setcolor(getrandcolor(160, 200));// 設定線條的顏色

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

// 新增噪點

float yawprate = 0.05f;// 雜訊率

int area = (int) (yawprate * w * h);

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

shear(g2, w, h, c);// 使扭曲

Springboot實現驗證碼登入

本人近期正在完成畢業設計 旅遊資訊管理系統 的製作,採用的springboot thymeleaf的模式。在登入 時想要新增驗證碼驗證,通過網上查詢資料,決定整合kaptcha來實現驗證碼登入 com.github.penggle kaptcha 2.3.2 cljs ajax cljs ajax ...

驗證碼實現

1.gd庫 2.建立影象步驟 1 建立畫布 就是在記憶體中開闢一塊臨時區域,用於儲存圖影象資訊 2 繪製影象 使用各種函式設定影象顏色,背景,填充畫筆,繪製圖形等 3 輸出圖形 以某種格式儲存到伺服器或者輸出到瀏覽器顯示給使用者。注意 直接輸出之前一定要用header 告訴瀏覽器以影象格式來處理該輸...

springboot 驗證碼登入例項

很久沒自己來寫過部落格了,因為在現在的開發裡面最多就做個crub的操作,別的偶爾修改一下介面,沒有完整的自己做過出來乙個東西過,今天寫這個部落格的目的就是要自己一步一步的寫乙個小的記賬功能的web端服務。這個是詳細的目錄 下面給出來的是驗證碼的生成類,頁面上通過src來到這個介面裡面,從而獲得生成的...