Java圖形驗證碼支持gif、中文、算術等

圖形驗證碼是最經典,也是最常用的驗證方式。今天介紹一個非常不錯的類庫:Java圖形驗證碼,支持gif、中文、算術等類型,可用於Java Web、JavaSE等項目。

官網:

<code>

https

: /<code>

效果圖:

Java圖形驗證碼支持gif、中文、算術等


0x01:項目引入easy-captcha

<code>

<

dependencies

>

   

<

dependency

>

      

<

groupId

>

com.github.whvcse

groupId

>

      

<

artifactId

>

easy-captcha

artifactId

>

      

<

version

>

1.6.2

version

>

   

dependency

>

dependencies

>

/<code>


0x02:SpringBoot項目創建圖形驗證碼

前後端分離項目中建議不要存儲在session中;而使用分佈式session,存儲在redis中,redis存儲需要一個key,key一同返回給前端用於驗證輸入。

<code> 

public

 

class

 CaptchaController {          

private

 RedisUtil redisUtil;           (

"/vcode/captcha"

)     

public

 JsonResult captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {         SpecCaptcha specCaptcha = 

new

 SpecCaptcha(

130

48

5

);         

String

 verCode = specCaptcha.text().toLowerCase();         

String

 key = UUID.randomUUID().toString();                  redisUtil.setEx(key, verCode, 

30

, TimeUnit.MINUTES);                  

return

 JsonResult.ok().put(

"key"

, key).put(

"image"

, specCaptcha.toBase64());     }           (

"/vcode/vaild"

)     

public

 JsonResult login(

String

 username,

String

 password,

String

 verCode,

String

 verKey){                  

String

 redisCode = redisUtil.get(verKey);                  

if

 (verCode==

null

 || !redisCode.equals(verCode.trim().toLowerCase())) {             

return

 JsonResult.error(

"驗證碼不正確"

);         }     }   } /<code>


0x03:前端使用ajax獲取驗證碼並驗證

<code>

<

img

 

id

=

"verImg"

 

width

=

"130px"

 

height

=

"48px"

/>

<

script

>

    

var

 verKey;          $.

get

('/vcode/captcha', function(res) {         verKey = res.key;         $(

'#verImg'

).attr(

'src'

, res.image);     },

'json'

);          $.post(

'/vcode/login'

, {         

verKey

: verKey,         

verCode

'8u6h'

,         

username

'admin'

,         

password

'admin'

    }, 

function

(

res

{         

console

.log(res);     }, 

'json'

);

script

>

/<code>


分享到:


相關文章: