Java實現中文算數驗證碼(算數運算+-*/)
為了防止,頁面向資料庫暴力註冊入力,使用者登入暴力破解,所以加入驗證碼,驗證碼無法被軟體獲取上邊的內容(加入算數計算,更加安全),所以在現在技術,暫時安全。
先看效果圖:
第一次載入比較慢,防止無法載入驗證碼顯示,後臺獲取準備好的預設正在載入圖片(靜態圖片),後臺圖片獲取好後,替代。
驗證碼效果圖:
後臺Java圖片實現類VerificationCodeTool:
- package com.tsXs.fileshare.tools;
- import java.awt.Color;
-
import
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Random;
- import org.apache.log4j.Logger;
- /**
- *
- * ClassName: VerificationCodeTool <br/>
-
* Description: creat verification code <br/>
- * Date: 2015-3-3 下午08:37:55 <br/>
- * <br/>
- *
- * @author [email protected]
- *
- * first made
- * @version 1.0.0<br/>
- *
- */
- publicclass VerificationCodeTool {
- //LOG
- privatestaticfinal Logger LOG =Logger.getLogger(VerificationCodeTool.class);
-
//verification code image width
- privatestaticfinalint IMG_WIDTH=146;
- //verification code image height
- privatestaticfinalint IMG_HEIGHT=30;
- //The number of interference lines
- privatestaticfinalint DISTURB_LINE_SIZE = 15;
- //generate a random number
- private Random random = new Random();
- //result
- privateint xyresult;
- //result random string
- private String randomString;
- //Chinese Numbers
- // private static final String [] CNUMBERS = "零,一,二,三,四,五,六,七,八,九,十".split(",");
- //零一二三四五六七八九十乘除加減
- //Here, must be java Unicode code
- privatestaticfinal String CVCNUMBERS = "\u96F6\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u5341\u4E58\u9664\u52A0\u51CF";
- //Definition of drawings in the captcha characters font, font name, font style, font size
- //static final font : In Chinese characters garbled
- privatefinal Font font = new Font("黑體", Font.BOLD, 18);
- //data operator
- privatestaticfinal Map<String, Integer> OPMap = new HashMap<String, Integer>();
- static{
- OPMap.put("*", 11);
- OPMap.put("/", 12);
- OPMap.put("+", 13);
- OPMap.put("-", 14);
- }
- /**
- * The generation of image verification code
- * */
- public BufferedImage drawVerificationCodeImage(){
- //image
- BufferedImage image = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, BufferedImage.TYPE_INT_RGB);
- //In memory to create a brush
- Graphics g = image.getGraphics();
- //Set the brush color
- // g.setColor(getRandomColor(200,250));
- g.setColor(Color.WHITE);
- //Fill the background color, using the current brush colour changing background color images
- //The meaning of the four parameters respectively, starting x coordinates, starting y, width, height.
- //image background
- g.fillRect(0, 0, IMG_WIDTH, IMG_HEIGHT);
- //Set the brush color
- g.setColor(getRandomColor(200,250));
- //image border
- g.drawRect(0, 0, IMG_WIDTH-2, IMG_HEIGHT-2);
- //Set disturb line color
- g.setColor(getRandomColor(110, 133));
- //Generate random interference lines
- for(int i =0;i < DISTURB_LINE_SIZE; i++){
- drawDisturbLine1(g);
- drawDisturbLine2(g);
- }
- //Generate a random number, set return data
- getRandomMathString();
- LOG.info("驗證碼 : "+randomString);
- LOG.info("驗證碼結果 : "+xyresult);
- //The generated random string used to save the system
- StringBuffer logsu = new StringBuffer();
- for(int j=0,k = randomString.length(); j < k; j++){
- int chid = 0;
- if(j==1){
- chid = OPMap.get(String.valueOf(randomString.charAt(j)));
- }else{
- chid = Integer.parseInt(String.valueOf(randomString.charAt(j)));
- }
- String ch = String.valueOf(CVCNUMBERS.charAt(chid));
- logsu.append(ch);
- drawRandomString((Graphics2D)g,ch, j);
- }
- //= ?
- drawRandomString((Graphics2D)g,"\u7B49\u4E8E\uFF1F", 3);
-
相關推薦
Java實現中文算數驗證碼(算數運算+-*/)
為了防止,頁面向資料庫暴力註冊入力,使用者登入暴力破解,所以加入驗證碼,驗證碼無法被軟體獲取上邊的內容(加入算數計算,更加安全),所以在現在技術,暫時安全。 先看效果圖: 第一次載入比較慢,防止無法載入驗證碼顯示,後臺獲取準備好的預設正在載入圖片(靜態圖片
java 實現登錄驗證碼 (kaptcha 驗證碼組件)
內容 清除 pub auto 二維碼 我們 constant nts extend 驗證碼的作用: 1、防止廣告機註冊和發帖、評論。2、防止暴力破解密碼,特別是有管理員權限的密碼。 在這裏介紹一種非常實用的驗證碼生成工具:kaptcha 這個工具,可以生成各種樣式的驗證碼
【原始碼分享】java實現對接簡訊驗證碼應用功能
今天公司提出一個需求,要在現有專案上收集註冊使用者的真實手機號,由於之前沒有接觸過這一塊,只能尋求度孃的幫助,經過一天的努力,終於完成了,現整理記錄下已備查閱。 1 解決方案:在註冊時要求使用者進行手機驗證。2 尋找簡訊供應商:由於對這一塊不是太懂,大學同學推薦一家他們公司在用的給我。3 程式碼實現 首先到
JAVA實現註冊頁面驗證碼重新整理
撰寫人——軟體二班——陳喜平 需要的工具:tomcat/eclipse/jdk/(注意jdk版本要和tomca相匹配,以及注意區分32位和64位) 步驟:依次建立servlet (伺服器需要)/ jsp(頁面需要) 引入web.xml 如圖所示: doget方法裡面的程式碼: prot
JAVA實現手機簡訊驗證碼
手機簡訊驗證碼介面來自於網易雲手機簡訊介面 package com.netease.code; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.http.H
Java實現點選驗證碼
效果 話不多說,先看實現的效果,其中方框為點選區域,真實場景要去掉此方框 核心流程分析 隨機獲取背景圖片 隨機獲取中文字元 在背景圖片中隨機獲取中文字元位置 設定中文旋轉隨機角度、字型顏色 儲存生成文字的座標集合、提示資訊、驗證碼圖片 前端根據提示資訊獲取相
java 實現傳送簡訊驗證碼功能
如何使用java + maven的專案環境傳送簡訊驗證碼,本文使用的是榛子云簡訊 的介面。 1. 安裝sdk 下載地址: http://smsow.zhenzikj.com/doc/sdk.html 下載下來是jar檔案,需要將jar釋出到本地的maven倉庫中, 在c
java實現圖片隨機驗證碼
轉自:https://blog.csdn.net/zhulin40/article/details/51899487<div class="form-group col-lg-6"> <label for="id" class="col-sm-
java 實現傳送簡訊驗證碼(網易雲)
連結:https://pan.baidu.com/s/1saRmzciNQWpFxHJRN0ISTg 密碼:siyt 實現傳送驗證碼的工程下載 1、我們開啟這個工程,檢視其中的程式碼 package com.ghj.test; import java.io.IOExce
用java實現郵件傳送驗證碼
java實現郵件傳送驗證碼 建議不要用qq郵箱,我使用qq郵箱直接一直給我報530錯誤,我一直認為我程式碼寫的有錯誤或者POP3/SMTP服務沒弄好。所以建議註冊個別的郵箱,我就申請了個網易163郵箱瞬間就好了。所以去申請個別的郵箱吧。 用郵
Java實現超簡單驗證碼識別
閒來想實現程式模擬登陸一個系統,說白了,就是寫個簡單的爬蟲,但是無奈,遇到了數字圖片驗證碼,在查閱了一些方案以後,遂決定自己手寫程式碼實現驗證碼識別,分享一下整個過程。 圖片驗證碼是什麼 圖片驗證碼,這個大家應該都見過。最普遍的圖片驗證碼就是一張
java實現傳送手機驗證碼功能
2. 註冊好之後,點選 使用者中心 -> 賬戶管理,就會進入如下介面 (順便提一下,新註冊的使用者,平臺會免費贈送你10元,足夠大家學習和使用了,所以不用擔心需要充錢) 你需要做的就是獲取你自己的 ACCOUNT SID 和 AUTH TOKEN 3. 需要
Java實現身份證號碼驗證源碼分享
分隔 toc bst nbsp port birt random exti 一位數 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar;
java生成圖片驗證碼(字母 | 運算 | 漢字)
java生成圖片驗證碼(字母|運算|漢字) 先看下以下效果圖,ui請勿參考。。 1.首先看運算的,左邊正確輸入,右邊錯誤輸入,驗證碼超時時間是1分,下面超時示例 字母驗證碼和漢字 2.後臺工具類程式碼 package com.ljm.verificati
java後臺呼叫簡訊介面,實現傳送簡訊驗證碼的控制層實現
1.設計:使用者填寫手機號,點選獲取驗證碼按鈕,controller層獲得所要傳送驗證碼的手機號,隨機生成六位數的驗證碼。呼叫傳送簡訊介面url向此手機號傳送驗證碼。注意:下面的程式碼採用的是雲信使的簡訊驗證碼介面,不同的驗證碼更換不同的url格式,即可。 `
java Swing中隨機驗證碼的實現
LoginJFrame:(登入介面) package com.myproject.ui; import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.eve
Java程式碼生成圖片驗證碼實現
介紹一個使用Java程式碼生成隨機圖片驗證碼的示例 可以直接配置成Servlet,在頁面直接呼叫 Java程式碼隨機生成圖片驗證碼 package com.rchm.util.images; import java.awt.Color; import java.
JAVA呼叫中國網建介面實現傳送簡訊驗證碼
import java.io.UnsupportedEncodingException; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.Http
spring mvc實現登錄驗證碼
period nbsp def fine 顯示 pin asi sin current 一、實現圖形驗證碼的基礎類 VerifyCodeUtils.java,這個類是從網上摘抄的~ package com.comp.common; import java.aw
java實現生成二維碼
ron isp -a 數組 技術分享 rar cep 代碼實現 lac java實現生成二維碼 二維碼vs條形碼 最大的區別就是: