Java生成動(dòng)態(tài)版驗(yàn)證碼的方法實(shí)例
前言
相對來說呢,jpg格式的相對來說容易破解一點(diǎn),當(dāng)然也取決于你的干擾元素,元素越復(fù)雜,破解也就難度越高,有的加的多,人都識(shí)別不出來了,何況人呢。都是概率問題。
GIF格式 + 干擾元素,那么驗(yàn)證碼破解難度又上了一個(gè)層次
上代碼:
/**
* 獲取驗(yàn)證碼(Gif版本)
* @param response
*/
@RequestMapping(value="getGifCode",method=RequestMethod.GET)
public void getGifCode(HttpServletResponse response,HttpServletRequest request){
try {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/gif");
/**
* gif格式動(dòng)畫驗(yàn)證碼
* 寬,高,位數(shù)。
*/
Captcha captcha = new GifCaptcha(146,33,4);
//輸出
captcha.out(response.getOutputStream());
HttpSession session = request.getSession(true);
//存入Session
session.setAttribute("_code",captcha.text().toLowerCase());
} catch (Exception e) {
LoggerUtils.fmtError(getClass(),e, "獲取驗(yàn)證碼異常:%s",e.getMessage());
}
}
使用挺簡單的,但是用了其他人封裝的工具類。下面會(huì)提供下載鏈接的。
這些個(gè)工具類,還提供了這個(gè)氣泡版本的jpg格式驗(yàn)證碼方式。
代碼如下:
/**
* 獲取驗(yàn)證碼(jpg版本)
* @param response
*/
@RequestMapping(value="getJPGCode",method=RequestMethod.GET)
public void getJPGCode(HttpServletResponse response,HttpServletRequest request){
try {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpg");
/**
* jgp格式驗(yàn)證碼
* 寬,高,位數(shù)。
*/
Captcha captcha = new SpecCaptcha(146,33,4);
//輸出
captcha.out(response.getOutputStream());
HttpSession session = request.getSession(true);
//存入Session
session.setAttribute("_code",captcha.text().toLowerCase());
} catch (Exception e) {
LoggerUtils.fmtError(getClass(),e, "獲取驗(yàn)證碼異常:%s",e.getMessage());
}
}
有興趣的朋友可以下載源碼看看。
vcode-sojson.com(jb51.net).rar
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼
- java原生動(dòng)態(tài)生成驗(yàn)證碼
- Java web實(shí)現(xiàn)動(dòng)態(tài)圖片驗(yàn)證碼的示例代碼
- Java實(shí)現(xiàn)動(dòng)態(tài)獲取圖片驗(yàn)證碼的示例代碼
- Java動(dòng)態(tài)驗(yàn)證碼單線設(shè)計(jì)的兩種方法
- java Servlet 實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼圖片示例
- java登錄驗(yàn)證碼實(shí)現(xiàn)代碼
- java 圖片驗(yàn)證碼的實(shí)現(xiàn)代碼
- Java實(shí)現(xiàn)驗(yàn)證碼具體代碼
- Java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼生成
相關(guān)文章
Spring Boot多模塊化后,服務(wù)間調(diào)用的坑及解決
這篇文章主要介紹了Spring Boot多模塊化后,服務(wù)間調(diào)用的坑及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java中將UUID存儲(chǔ)為Base64字符串的方法實(shí)現(xiàn)
使用Base64編碼來對UUID存儲(chǔ)在一些特定的場合被廣泛的使用,本文主要介紹了Java中將UUID存儲(chǔ)為Base64字符串的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
Java利用StampedLock實(shí)現(xiàn)讀寫鎖的方法詳解
在jdk8以后,java提供了一個(gè)性能更優(yōu)越的讀寫鎖并發(fā)類StampedLock,該類的設(shè)計(jì)初衷是作為一個(gè)內(nèi)部工具類,用于輔助開發(fā)其它線程安全組件。本文就來和大家一起學(xué)習(xí)下StampedLock的功能和使用2022-10-10
詳解Spring batch 入門學(xué)習(xí)教程(附源碼)
本篇文章主要介紹了Spring batch 入門學(xué)習(xí)教程(附源碼),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
淺析Spring的事務(wù)實(shí)現(xiàn)原理
這篇文章主要為大家詳細(xì)介紹了Spring中事務(wù)實(shí)現(xiàn)的原理,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Spring有一定的幫助,需要的可以參考一下2022-11-11
springboot項(xiàng)目實(shí)現(xiàn)配置跨域
這篇文章主要介紹了springboot項(xiàng)目實(shí)現(xiàn)配置跨域問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09
java Socket無法完全接收返回內(nèi)容的解決方案
這篇文章主要介紹了java Socket無法完全接收返回內(nèi)容的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10

