1. 程式人生 > >帶加減法的圖片驗證碼(java程式設計實現)

帶加減法的圖片驗證碼(java程式設計實現)

最近用java做了一個加法驗證碼,是在kaptcha的基礎上改寫的,而kaptcha是一個擴充套件自 simplecaptcha的驗證碼庫。

  1. // create the text for the image
  2. List<String> capText = createText();
  3. // store the text in the session
  4. String sessionid = UserCookieUtil.getSessionId(request);
  5. cacheManager.setCode(VerifyTypeEnum.IMG_CODE, sessionid, capText.get(1), timeout);
  6. // create the image with the text
  7. BufferedImage bi = captchaProducer.createImage(capText.get(0));
  8. ServletOutputStream out = response.getOutputStream();
  9. // write the data out
  10. ImageIO.write(bi, "jpg", out);
  11. try {
  12. out.flush();
  13. } finally {
  14. out.close();
  15. }
  1. // create the text for the image
  2. private List<String> createText() {
  3. int intFirst, intSec, intTemp, validCodeResult;
  4. String validCode = null;
  5. Random rand = new Random();
  6. intFirst = (int) (Math.random() * 10);
  7. intSec = (int) (Math.random() * 10);
  8. switch (rand.nextInt(3)) {
  9. case 0:
  10. if (intFirst < intSec) {
  11. intTemp = intFirst;
  12. intFirst = intSec;
  13. intSec = intTemp;
  14. }
  15. validCode = intFirst + "-" + intSec + "=?";
  16. validCodeResult = intFirst - intSec;
  17. break;
  18. case 1:
  19. validCode = intFirst + "+" + intSec + "=?";
  20. validCodeResult = intFirst + intSec;
  21. break;
  22. default:
  23. validCode = intFirst + "*" + intSec + "=?";
  24. validCodeResult = intFirst * intSec;
  25. break;
  26. }
  27. List<String> list = new ArrayList<String>();
  28. list.add(validCode);
  29. list.add(String.valueOf(validCodeResult));
  30. return list;
  31. }

下面再補充幾種驗證碼

(1)// 由0-9組成的全數字驗證碼

  public static void numCode() {
        System.out.print("獲取4位數字驗證碼:");
        for (int i = 0; i < 4; i++) {
            int n = rd.nextInt(10);
            System.out.print(n + " ");
        }
        System.out.println();
  }

(2)// 英文字母和標點符號組成的字元驗證碼

  public static void charCode() {
        System.out.print("獲取4位字元驗證碼:");
        for (int i = 0; i < 4; i++) {
            int n = 65 + rd.nextInt(58);
            System.out.print((char) n);
        }
        System.out.println();
    }

(3)// 全部由中文組成的驗證碼

   public static void chineseCode() {
        System.out.print("獲取4位漢字驗證碼:");
        for (int i = 0; i < 4; i++) {
            int n = 20000 + rd.nextInt(10000);
            System.out.print((char) n);
        }
        System.out.println();
    }

(4)// 字元+數字的混合驗證碼

  public static void mixCode() {
        System.out.print("\n獲取的5位混合驗證碼:");
        for (int i = 0; i < 4; i++) {
            int n = rd.nextInt(123);
            if (n < 65) {
                System.out.print(n % 10);
            } else {
                System.out.print((char) n);
            }
        }
   }

相關推薦

加減法圖片驗證java程式設計實現

最近用java做了一個加法驗證碼,是在kaptcha的基礎上改寫的,而kaptcha是一個擴充套件自 simplecaptcha的驗證碼庫。 // create the text for the imageList<String> capText = creat

如何利用隨機數產生驗證java基礎知識

pen lean display void 生成 font length break cdd   以前我們通用的驗證碼都是五個不同的大小寫字母,那麽今天我就帶大家學習一下利用Java基礎怎麽生成驗證碼。首先我們應該有一個清晰的思路:首先定義一個固定長度的數組用來存儲需要

java繪製圖片驗證看不清,換一張

現在正式開發中圖片驗證碼好像已經很少用了,但是為了加深個人印象,做個小筆記。 驗證碼實現分析 在用java生成一張固定尺寸的圖片,會用到api是BufferedImage(int wi

轉:Java實現簡訊驗證阿里雲服務商

1.先去阿里雲開通簡訊服務: 2.新增模板及簽名:需要稽核,個人賬戶稽核就幾分鐘就OK 先解釋一下模板及簽名: 標準參照:https://help.aliyun.com/document_detail/55324.html?spm=5176.sms-sign.0

WX.JavaWeb圖片驗證簡單方式

1、JavaWeb實現登入驗證碼 - 夢藍櫻飛(一點一滴, 記錄個人成長之路) - CSDN部落格.html(https://blog.csdn.net/menglanyingfei/article/details/79101580)   Web---圖片驗證碼生成教程詳解-從簡單到複雜-從本地到前後臺 -

JAVA HttpClient實現頁面資訊抓取(獲取圖片驗證並傳入cookie實現資訊獲取)

有時候我們的程式中需要呼叫第三方介面獲取資料,比如在這裡需要在我的程式裡實現使用者輸入汽車號牌等資訊就可以查到使用者的違章資訊,在沒有其他方法的情況下我就得想辦法在官網獲取資訊。上圖是官網獲取資訊的網站頁面。 傳統的ajax請求不可能實現,光不能跨域這一點就實現不了。

利用阿里大於傳送簡訊驗證java

由於業務需求,需要傳送簡訊驗證,於是搗鼓了一上午,也在網上看了別人的案例,現整理分享下。 一、登陸阿里大於平臺配置相關資訊 點選阿里大於的官網:https://www.alidayu.com/ ,出現如下介面,然後點選管理中心,使用淘寶賬號登陸。

前端圖片驗證相容ie8

讓可愛的我mack一下 前提 最後會附上原始碼的~ 圖片驗證碼外掛名稱: GVerify.js GVerify主要使用canvas生成圖片驗證碼,但是ie8還沒有canvas。 針對ie8 解決canvas外掛:excanvas.js

Python OCR識別圖片驗證

歡迎加入學習交流QQ群:657341423 對於某些網站登入的時候,往往需要輸入驗證碼才能實現登入。如果要爬蟲這類網站,往往總會比這個驗證碼導致無法爬取資料。以下介紹一種比較折中的方法,也是比較可行的方法: 實現思想: 1、通過截圖獲取驗證碼圖片,為什麼要截圖

字元型圖片驗證,使用tensorflow實現卷積神經網路,進行驗證識別CNN

本專案使用卷積神經網路識別字符型圖片驗證碼,其基於 TensorFlow 框架。它封裝了非常通用的校驗、訓練、驗證、識別和呼叫 API,極大地減低了識別字符型驗證碼花費的時間和精力。  專案地址: https://github.com/nickliqian/cnn_captcha

生成二維java後端

需要引入2個jar包: <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <versi

tensorflow實戰:端到端簡單粗暴識別驗證反爬利器

今天分享一下如何簡單粗暴的解決驗證碼的辦法 背景: 對於一個爬蟲開發者來說,反爬蟲無疑是一個又愛又恨的對手,兩者之間通過鍵盤的鬥爭更是一個沒有硝煙的戰場。 反爬蟲有很多措施,在這裡說說驗證碼這一塊 論爬蟲修養:大家都是混口飯吃,上有老下有小,碼農何苦為難碼農?爬資

潭州課堂25班:Ph201805201 django 專案 第八課 註冊功能分析,圖片驗證檢視設計 (課堂筆記

1,使用者名稱          是否已註冊 2,手機號       是否被註冊 3,圖形驗證碼  4,簡訊驗證碼, 5,驗證成功後,向後臺提交資料:使用者名稱,密碼,手機號,簡訊驗證   要寫這五個檢視, 獲取圖形驗證碼,請求方式:get&nb

python實現隨機驗證隨機大小寫字母

python實現隨機驗證碼 需要使用的模組、方法、資料: 1.Image模組:操作影象類 1.1 new():建立一個新的圖片 可實現:建立一個新的圖片 例項:建立一個模式:RGB,大小:400*400,顏色:白色的圖片 from PIL import Ima

後臺圖片驗證功能是什麼實現

一、導包,1)check_code.py檔案;2)Monaco.ttf字型; 二、通過session機制,來實現此功能,部分程式碼如下: 1 f = BytesIO() 2 img, code = create_validate_code() 3 request.sessio

Laravel5.5 + captcha 實現驗證真的很方便

首先,先上效果圖吧:        安裝captcha:   composer require mews/captcha 發現5.5真的很方便,直接require包就可以了,作為LTS版,強烈建議大家用5.5.配置驗證效果:   在config/captcha.php中有相關

生成圖片驗證的兩種實現方式

最近工作中,需求讓新加一個圖片驗證碼功能,其實這個功能之前自己寫過,想必跟大家現在心裡想到的實現方式一樣,要麼是通過servlet實現請求操作,要麼是通過get請求實現操作。然後在後臺通過session儲存圖片上的字串,和之後前臺請求過來的帶的輸入的字串引數,做比較,判斷是

nodeJS實現識別驗證tesseract-ocr+GraphicsMagick

背景 最近在寫一個爬蟲的小工具,卡在登入這裡。 想爬的網站需要登入才能獲取資料,登入又需要輸入驗證碼。 好在驗證碼是簡單的驗證碼,還可以自己識別試試。   需求分析 1、儲存驗證碼圖片 2、識別驗證碼 3、對識別的驗證碼進行人工校準   功能實現 1、儲存驗證碼圖片 雖然每個網站不一定一樣

圖片中畫框C語言實現

在做視覺分析過程中,經常會進行影象格式的轉換以及在原圖上標框,為了更加清晰的認識影象格式,在這裡手動實現了根據YUV資料和RGB資料進行標框的操作。在效能上不及直接使用opencv + cuda, 但是可以更加直觀的理解整個原理。 // draw line // 傳入imgData

資料結構與演算法——線性表之順序表JAVA語言實現

資料結構與演算法——線性表之順序表(JAVA語言實現 ) 線性表是由n個數據元素組成的優先序列。 線性表中每個元素都必須有相同的結構,線性表是線性結構中最常用而又最簡單的一種資料結構。線性表由儲存結構是否連續可分為順序表和連結串列。順序表指線性表中每個元素按順序依次儲存,線性表中邏