學習筆記-圖片驗證碼生成
/** * 圖片驗證碼 * @param request * @param response */ @RequestMapping("/verifyImage") public void verifyImage(HttpServletRequest request,HttpServletResponse response) { response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); // 表明生成的響應是圖片 response.setContentType("image/jpeg"); int width = 80, height = 25; BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); Random random = new Random(); g.setColor(getRandColor(200, 250)); g.fillRect(1, 1, width - 1, height - 1); g.setColor(new Color(102, 102, 102)); g.drawRect(0, 0, width - 1, height - 1); g.setFont(mFont); g.setColor(getRandColor(160, 200)); // 畫隨機線 for (int i = 0; i < 155; i++) { int x = random.nextInt(width - 1); int y = random.nextInt(height - 1); int xl = random.nextInt(6) + 1; int yl = random.nextInt(12) + 1; g.drawLine(x, y, x + xl, y + yl); } // 從另一方向畫隨機線 for (int i = 0; i < 70; i++) { int x = random.nextInt(width - 1); int y = random.nextInt(height - 1); int xl = random.nextInt(12) + 1; int yl = random.nextInt(6) + 1; g.drawLine(x, y, x - xl, y - yl); } // 生成隨機數,並將隨機數字轉換為字母 String sRand = ""; for (int i = 0; i < 4; i++) { int itmp = random.nextInt(26) + 65; char ctmp = (char) itmp; sRand += String.valueOf(ctmp); g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 + random.nextInt(110))); g.drawString(String.valueOf(ctmp), 15 * i + 10, 16); } g.dispose(); String key = request.getParameter("key");//從頁面獲取key redisHelper.put(key, sRand);//放到redis快取中 redisHelper.expire(key,5*60*1000);//設定過期時間為5分鐘 try { ImageIO.write(image, "JPEG", response.getOutputStream()); } catch (IOException e) { e.printStackTrace(); } } public Color getRandColor(int fc, int bc) { Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); }
生成驗證碼如下圖
相關推薦
學習筆記-圖片驗證碼生成
/** * 圖片驗證碼 * @param request * @param response */ @RequestMapping("/verifyImage") public void verifyImage(HttpServletRequest re
Flask實戰第40天:圖片驗證碼生成技術
all see pillow 字體大小 src print new line 訪問 安裝pillow pip install pillow 在utils下新建python package命名為captcha 把需要需要用到的字體放在captcha下 編輯
Node.js圖片驗證碼生成svg-captcha
var option = { size: 6, // 驗證碼長度 ignoreChars: '0o1ilI', // 驗證碼字元中排除 0o1i noise: 2, // 干擾線條的數量 color: true, // 驗證碼的字元是否有顏色,預設沒有,如果設
[轉]php 圖片驗證碼生成 前後臺驗證
本文轉自:https://www.cnblogs.com/xiaoyezi/p/3541195.html 自己從前一段時間做了個php小專案,關於生成圖片驗證碼生成和後臺的驗證,把自己用到的東西總結一下,希望大家在用到相關問題的時候可以有一定的參考性。 首先,php驗證碼生成。 程式碼如下: 1.生成
Web---圖片驗證碼生成教程詳解-從簡單到複雜-從本地到前後臺
首先,我們先來看本地如何生成圖片驗證碼的,再來寫輸出到網頁的驗證碼如何實現。 先來看最簡單的—實現的功能是,將一個字串變成圖片寫入到檔案中 實現程式碼: package cn.hncu.img; import java.awt.Graphics;
圖片驗證碼生成以及前端驗證
第一種是session 驗證方式 <?php session_start(); //開啟session記錄驗證碼資料 vCode(4, 15);//設定驗證碼的字元個數和圖片基礎寬度 //vCode 字元數目,字型大小,圖片寬度、高度 functio
10.24 筆記 android 圖片驗證碼的生成
轉載: http://www.eoeandroid.com/thread-329148-1-1.html package com.example.demo3; import java.util.Random; import android.graphics.B
PHP GD 生成圖片驗證碼+session獲取儲存驗證碼
mark ast rac alloc orm ext random col nbsp 以下分享一個PHP制作的圖片驗證碼案例:案比例如以下圖: 運用PHP GD具體請看:http://www.php.net/manual/zh/book.im
java生成圖片驗證碼實現
isp tex version edi ade 頁面 類型 logs exp 兩種圖片樣式分別是用Graphics類和Graphics2D 類實現(Graphics2D擴展了Graphics類),可以參考資料,畫出自己想要的圖片 Graphics2D 參考api地址:ht
jquery如何生成圖片驗證碼
sla style ctx ott etc func max ++ 導致 jQuery(function($){ /**生成一個隨機數**/ function randomNum(min, max) { return Math.f
PHP生成圖片驗證碼、點擊切換實例
調用 ret image etc 格式 點擊切換 article png get http://www.jb51.net/article/51506.htm 現在讓我們來看下 PHP 代碼 復制代碼代碼如下: <?php session_start();functi
python生成圖片驗證碼
per ont 字符 ESS ext ttf 隨機 dom ice import PIL from PIL import Image from PIL import ImageDraw,ImageFont import random def get_r
Java使用imageio、awt生成圖片驗證碼
static rem auto put 驗證碼 encode width nal cond 1、生成驗證碼工具類 public class CheckCodeTool { private Integer width = 80; private Intege
Django關於圖片驗證碼顯示筆記
數據 nbsp chan 筆記 pill 字節 驗證碼錯誤 code ida 1.訪問頁面 /login/ - 內部需要創建一張圖片,並且給用戶返回 - 創建一個白板 Session存放驗證碼 2.POST - 根據用戶提交的數據與session
SimpleCaptcha生成圖片驗證碼內容為亂碼
編輯器 cap sharp true 驗證 eboot 還需 light 報表 轉自:https://blog.csdn.net/wlwlwlwl015/article/details/51482065 前言 報表中發現有中文亂碼和中文字體不整齊(重疊)的情況,首先考慮
Django商城項目筆記No.4用戶部分-註冊接口-圖片驗證碼
cut 原因分析 路徑 tcl uid rtc 原因 第三方 clu Django商城項目筆記No.4用戶部分-註冊接口-圖片驗證碼 1、首先分析註冊業務接口 1.1.分析可得,至少這麽幾個接口 圖片驗證碼 短信驗證碼 用戶名是否存在 手機號是否存在 整體註冊
生成圖片驗證碼
dom 測試 clas void exceptio ide 隨機 file buffere 1 package util; 2 3 import javax.imageio.ImageIO; 4 import java.awt.*; 5 import ja
python生成圖片驗證碼程式碼
from PIL import Image, ImageDraw, ImageFont import random import string #所有可能的字元,主要是英文字母和數字 characters = string.ascii_letters+string.digits #
vue中 identify(生成圖片驗證碼)外掛
效果圖如下: 實現過程: 1.寫一個名為identify.vue的子元件 2.子元件的註冊和引用 3.主頁面中使用子元件 step1:identify.vue的子元件,程式碼如下: <template> <div
SpringCloud工作筆記063---Java 手機驗證碼生成_儲存到redis
JAVA技術交流QQ群:170933152 List: 1.需求 2.實現 3.總結 ……1.需求…… 使用者提交訂單申請,需要輸入手機號,驗證二維碼。然後再判斷使用者輸入的手機號是否正確,正確則生成訂單資訊入庫