java實現登入頁面的驗證碼功能
我們訪問電商網站,登入賬號時。都需要驗證碼的輸入。那麼在java中,我們是如何實現驗證碼的呢?這裡,我用servelet做個demo。
程式碼清單:
package com.test;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ValidateCodeServle
*/
@WebServlet("/ValidateCodeServle")
public class ValidateCodeServle extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ValidateCodeServle() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 響應頭資訊
response.setHeader("Pragma", "No-Cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expries", 0);
// 隨機數生成類
Random random = new Random();
// 定義驗證碼的位數
int size = 5;
// 定義變數儲存生成的驗證碼
String vCode = "";
char c;
// 產生驗證碼
for (int i = 0; i < size; i++) {
// 產生一個26以內的隨機整數
int number = random.nextInt(26);
// 如果生成的是偶數,則隨機生成一個數字
if (number % 2 == 0) {
c = (char) ('0' + (char) ((int) (Math.random() * 10)));
// 如果生成的是奇數,則隨機生成一個字母
} else {
c = (char) ((char) ((int) (Math.random() * 26)) + 'A');
}
vCode = vCode + c;
}
// 儲存生成的5位驗證碼
request.getSession().setAttribute("vCode", vCode);
// 驗證碼圖片的生成
// 定義圖片的寬度和高度
int width = (int) Math.ceil(size * 20);
int height = 30;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 獲取圖片的上下文
Graphics gr = image.getGraphics();
// 設定圖片背景顏色
gr.setColor(Color.WHITE);
gr.fillRect(0, 0, width, height);
// 設定圖片邊框
gr.setColor(Color.GRAY);
gr.drawRect(0, 0, width - 1, height - 1);
// 畫十條幹擾線
for (int i = 0; i < 5; i++) {
int x1 = random.nextInt(width);
int y1 = random.nextInt(height);
int x2 = random.nextInt(width);
int y2 = random.nextInt(height);
gr.setColor(randomColor());
gr.drawLine(x1, y1, x2, y2);
}
// 設定字型,畫驗證碼
gr.setColor(randomColor());
gr.setFont(randomFont());
gr.drawString(vCode, 10, 22);
// 影象生效
gr.dispose();
// 輸出到頁面
ImageIO.write(image, "JPEG", response.getOutputStream());
}
// 生成隨機的顏色
private Color randomColor() {
int red = r.nextInt(150);
int green = r.nextInt(150);
int blue = r.nextInt(150);
return new Color(red, green, blue);
}
private String[] fontNames = { "宋體", "華文楷體", "黑體", "微軟雅黑", "楷體_GB2312" };
private Random r = new Random();
// 生成隨機的字型
private Font randomFont() {
int index = r.nextInt(fontNames.length);
String fontName = fontNames[index];// 生成隨機的字型名稱
int style = r.nextInt(4);
int size = r.nextInt(3) + 24; // 生成隨機字號, 24 ~ 28
return new Font(fontName, style, size);
}
}
測試:
相關推薦
JAVA實現註冊頁面驗證碼重新整理
撰寫人——軟體二班——陳喜平 需要的工具:tomcat/eclipse/jdk/(注意jdk版本要和tomca相匹配,以及注意區分32位和64位) 步驟:依次建立servlet (伺服器需要)/ jsp(頁面需要) 引入web.xml 如圖所示: doget方法裡面的程式碼: prot
java 實現傳送簡訊驗證碼功能
如何使用java + maven的專案環境傳送簡訊驗證碼,本文使用的是榛子云簡訊 的介面。 1. 安裝sdk 下載地址: http://smsow.zhenzikj.com/doc/sdk.html 下載下來是jar檔案,需要將jar釋出到本地的maven倉庫中, 在c
js實現登入頁面驗證碼
主要用到的是js生成隨機數 Math.floor();//向下取整 Math.random(); //0.0 ~ 1.0 之間的一個偽隨機數。【包含0不包含1】 <!DOCTYPE html> <html> <head lang="en"> <meta
java實現傳送手機驗證碼功能
2. 註冊好之後,點選 使用者中心 -> 賬戶管理,就會進入如下介面 (順便提一下,新註冊的使用者,平臺會免費贈送你10元,足夠大家學習和使用了,所以不用擔心需要充錢) 你需要做的就是獲取你自己的 ACCOUNT SID 和 AUTH TOKEN 3. 需要
java實現登入頁面的驗證碼功能
我們訪問電商網站,登入賬號時。都需要驗證碼的輸入。那麼在java中,我們是如何實現驗證碼的呢?這裡,我用servelet做個demo。 程式碼清單: package com.test; import java.awt.Color; import java.
【原始碼分享】java實現對接簡訊驗證碼應用功能
今天公司提出一個需求,要在現有專案上收集註冊使用者的真實手機號,由於之前沒有接觸過這一塊,只能尋求度孃的幫助,經過一天的努力,終於完成了,現整理記錄下已備查閱。 1 解決方案:在註冊時要求使用者進行手機驗證。2 尋找簡訊供應商:由於對這一塊不是太懂,大學同學推薦一家他們公司在用的給我。3 程式碼實現 首先到
php實現簡單的驗證碼功能
mage isset pat ech ace ring bcd ont es2017 1.根據php中的GD庫對圖片進行處理,繪制出驗證碼的圖片,code.php中2.表單界面,簡單的session保存及與用戶輸入對比,確定是否驗證正確,form.php中<?php
java 實現登錄驗證碼 (kaptcha 驗證碼組件)
內容 清除 pub auto 二維碼 我們 constant nts extend 驗證碼的作用: 1、防止廣告機註冊和發帖、評論。2、防止暴力破解密碼,特別是有管理員權限的密碼。 在這裏介紹一種非常實用的驗證碼生成工具:kaptcha 這個工具,可以生成各種樣式的驗證碼
java對接短信驗證碼功能,短信驗證碼開發
ack eth httpurl tex -a 公司 ice 尋找 count 今天公司提出一個需求,要在現有項目上收集註冊用戶的真實手機號,由於之前沒有接觸過這一塊,只能尋求度娘的幫助,經過一天的努力,終於完成了,現整理記錄下已備查閱。 1 解決方案:在註冊時要求用戶進行手
【短信插件】微贊微信管理系統如何實現短信驗證碼功能
fun ctr 管理系 code 聲明 修改 如何 .net 短信 找到了一家不錯的短信插件,有需要對接的可以查看學習,在這邊分享一下,有需要的可以詳細看看,了解一下。http://www.ihuyi.com/插件說明本插件系互億無線針對微贊管理系統短信插件開發,請按以下說
【原始碼分享】簡訊如何實現ECmall_V2.3驗證碼功能
對接簡訊的時候發現一家簡訊公司,有些不錯的簡訊驗證碼的外掛,對接起來挺方便的,有需求的可以看一下。http://www.ihuyi.com/ 外掛說明本外掛系互億無線針對ECmall_V2.3簡訊外掛開發,外掛內的所有檔案均為對原檔案的修改,如果你的系統經過二次開發,安裝本外掛之前,請仔細核對修改。 功能
【源碼分享】短信如何實現ECmall_V2.3驗證碼功能
說明 管理 處理 用戶註冊 手機號 方便 功能介紹 發現 源碼 對接短信的時候發現一家短信公司,有些不錯的短信驗證碼的插件,對接起來挺方便的,有需求的可以看一下。http://www.ihuyi.com/ 插件說明本插件系互億無線針對ECmall_V2.3短信插件開發,插件
JAVA實現手機簡訊驗證碼
手機簡訊驗證碼介面來自於網易雲手機簡訊介面 package com.netease.code; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.http.H
Java實現點選驗證碼
效果 話不多說,先看實現的效果,其中方框為點選區域,真實場景要去掉此方框 核心流程分析 隨機獲取背景圖片 隨機獲取中文字元 在背景圖片中隨機獲取中文字元位置 設定中文旋轉隨機角度、字型顏色 儲存生成文字的座標集合、提示資訊、驗證碼圖片 前端根據提示資訊獲取相
servlet+jsp+mysql+資料庫連線池實現註冊登陸驗證碼功能
首先專案的結構及所用到的jar包如圖: 主要用到jdbc和jstl的jar包,大家可自行去相應網站下載 一、資料庫和資料表的建立 1.建庫語句: create database test; 2.建表語句: CREATE TABLE `t_users` (
實現簡單圖形驗證碼功能
HTML <img src="" class="VerifiImg" /> <input type="hidden" id="randomNum" /> JavaScript // 隨機數 function getRanNum()
Java實現中文算數驗證碼(算數運算+-*/)
為了防止,頁面向資料庫暴力註冊入力,使用者登入暴力破解,所以加入驗證碼,驗證碼無法被軟體獲取上邊的內容(加入算數計算,更加安全),所以在現在技術,暫時安全。 先看效果圖: 第一次載入比較慢,防止無法載入驗證碼顯示,後臺獲取準備好的預設正在載入圖片(靜態圖片
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
PHP實現簡單的驗證碼功能機制
網站的安全性是開發者不可忽視的一個問題,目前使用最多的一種可以提高網站安全性的方法就是使用驗證碼功能機制,有的僅僅使用一個幾位數字字母混亂的驗證碼,有的進行手機發送簡訊進行驗證,有