欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java生成動態(tài)版驗證碼的方法實例

 更新時間:2017年04月28日 15:52:53   作者:壞蛋  
這篇文章主要給大家介紹了利用Java生成動態(tài)版驗證碼的方法實例,本文生成的是GIF格式 + 干擾元素,讓驗證碼破解難度又上了一個層次,文中給出了詳細(xì)的示例代碼,并在文末給出了完整的實例代碼供大家下載學(xué)習(xí),需要的朋友們下面來一起看看吧。

前言

相對來說呢,jpg格式的相對來說容易破解一點,當(dāng)然也取決于你的干擾元素,元素越復(fù)雜,破解也就難度越高,有的加的多,人都識別不出來了,何況人呢。都是概率問題。

GIF格式 + 干擾元素,那么驗證碼破解難度又上了一個層次

上代碼:

 /**
  * 獲取驗證碼(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格式動畫驗證碼
    * 寬,高,位數(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, "獲取驗證碼異常:%s",e.getMessage());
  }
 }

使用挺簡單的,但是用了其他人封裝的工具類。下面會提供下載鏈接的。

這些個工具類,還提供了這個氣泡版本的jpg格式驗證碼方式。

代碼如下:

 /**
  * 獲取驗證碼(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格式驗證碼
  * 寬,高,位數(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, "獲取驗證碼異常:%s",e.getMessage());
  }
 }

有興趣的朋友可以下載源碼看看。

vcode-sojson.com(jb51.net).rar

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Java中ArrayList的removeAll方法詳解

    Java中ArrayList的removeAll方法詳解

    這篇文章主要給大家介紹了關(guān)于Java中ArrayList的removeAll方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來看看吧。
    2017-07-07
  • IDEA 中 30 秒創(chuàng)建一個 Spring Cloud Alibaba 工程

    IDEA 中 30 秒創(chuàng)建一個 Spring Cloud Alibaba 工程

    這篇文章主要介紹了IDEA 中 30 秒生成 Spring Cloud Alibaba 工程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì)對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 老生常談比較排序之堆排序

    老生常談比較排序之堆排序

    下面小編就為大家?guī)硪黄仙U劚容^排序之堆排序。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • mybatis-plus的添加與修改詳解

    mybatis-plus的添加與修改詳解

    這篇文章主要介紹了mybatis-plus的添加與修改方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 使用自定義注解實現(xiàn)加解密及脫敏方式

    使用自定義注解實現(xiàn)加解密及脫敏方式

    這篇文章主要介紹了使用自定義注解實現(xiàn)加解密及脫敏方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java 獲取當(dāng)前路徑下的所有xml文檔的方法

    java 獲取當(dāng)前路徑下的所有xml文檔的方法

    這篇文章主要介紹了java如何獲取當(dāng)前路徑下的所有xml文檔,需要的朋友可以參考下
    2014-05-05
  • SpringBoot+Redis實現(xiàn)后端接口防重復(fù)提交校驗的示例

    SpringBoot+Redis實現(xiàn)后端接口防重復(fù)提交校驗的示例

    本文將結(jié)合實例代碼,介紹SpringBoot+Redis實現(xiàn)后端接口防重復(fù)提交校驗的示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 通過實例解析java String不可變性

    通過實例解析java String不可變性

    這篇文章主要介紹了通過實例解析java String不可變性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 使用controller傳boolean形式值

    使用controller傳boolean形式值

    這篇文章主要介紹了使用controller傳boolean形式值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 大廠面試???快速排序冒泡排序算法

    大廠面試常考:快速排序冒泡排序算法

    快速排序由于排序效率在同為O(N*logN)的幾種排序方法中效率較高,因此經(jīng)常被采用,再加上快速排序思想----分治法也確實實用,因此很多軟件公司的筆試面試,包括像BAT、字節(jié)、美團等知名IT公司都喜歡考查快速排序原理和手寫源碼
    2021-08-08

最新評論