`
zpzp
  • 浏览: 11572 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

验证码

阅读更多

验证码

1.java类MakeCert 生成验证码

package com.certCode;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;

import javax.imageio.ImageIO;

/**
 * 生成验证图片
 * @author 郑平
 *
 */
public class MakeCert {
	//图片验证可能出现的字符
	private char mapTable[]={
	'a','b','c','d','e','f',
	'g','h','i','j','k','l',
	'm','n','o','p','q','r',
	's','t','u','v','w','x',
	'y','z','0','1','2','3',
	'4','5','6','7','8','9'};
	/**
	 * 功能:生成彩色验证码图片
	 * 参数width为生成图片的宽度,参数height为生成图片的高度,参数os为页面的输出流
	 */
	public String getCertcode(int width,int height,OutputStream os) {
		if(width<=0){
			width = 60;
		}
		if(height<=0){
			height = 20;
		}
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		//获取图形上下文
		Graphics  g = image.getGraphics();
		//设置 背景颜色
		g.setColor(new Color(0xDCDCDC));
		g.fillRect(0, 0, width, height);
		//画边框
		g.setColor(Color.black);
		g.drawRect(0, 0, width-1, height-1);
		String strEnsure = "";
		for(int i=0;i<4;i++){
			//随机产生的验证码
			strEnsure += mapTable[(int)(mapTable.length*Math.random())];
		}
		System.out.println("strEnsure:"+strEnsure);
		//将验证码显示到图片上
		g.setFont(new Font("Atlantic Inline",Font.PLAIN,18)); 
		String str = strEnsure.substring(0, 1);
		g.drawString(str, 8, 17);
		str = strEnsure.substring(1,2); 
		g.drawString(str,20,15); 
		str = strEnsure.substring(2,3);
		g.drawString(str,35,18);   
		str = strEnsure.substring(3,4); 
		g.drawString(str,45,15); 
		// 随机产生10个干扰点
		Random r = new Random();
		for(int i =0;i<10;i++){
			int x = r.nextInt(width);
			int y = r.nextInt(height);
			g.drawOval(x, y, 1, 1);
		}
		// 释放图形上下文
		g.dispose();
		try {
			ImageIO.write(image, "JPEG", os);
		} catch (IOException e) {
			// TODO Auto-generated catch block'
			return "";
		}
		return strEnsure;
	}
}

 2.makeCert.jsp jsp调用java类得到验证码 将生成的验证码存在session里面

<%@ page contentType="image/jpeg; charset=gb2312"
    pageEncoding="utf-8"%>
    <jsp:useBean id="image" scope="page" class="com.certCode.MakeCert"></jsp:useBean>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>验证</title>
</head>
<body>
  <%
  	String str=image.getCertcode(0,0,response.getOutputStream());
	session.setAttribute("certCode", str); 
    out.clear();
    out = pageContext.pushBody();
   %>

</body>
</html>

 3.login.jsp 登录界面jsp

<%@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
	function reloadcode() {
		var s = document.getElementById("code");
		s.setAttribute('src','makeCert.jsp?it='+Math.random());
	}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登录</title>
</head>
<body>
<form action="login">
	账号:<input type="text" id="id" name="id">
	验证码:<input type="text" id="certCode"name="certCode">
	<img alt="看不清楚,换一张" src="makeCert.jsp" id="code" onclick="reloadcode()" style="cursor:pointer;">
	<input type="submit" value="确定">
</form>

</body>
</html>

 

分享到:
评论

相关推荐

    转载 旋转验证码识别 github:双旋转验证码解决方案

    转载。旋转验证码识别。 github:双旋转验证码解决方案

    jquery验证码

    jQuery实现web开发验证码,无需后台验证。简单方便实用

    Java破解验证码

    1、访问验证码链接保存图片 2、去除干扰线 3、把图片分割,保存素材 3、图片匹配() 比较图片相似: 1、把图片转换成二进制码,进行比较。计算相似度(BMPLoader)。匹配的值太多,准确率差。这个就只适用简单的...

    简单实现Java验证码功能

    简单实现Java验证码功能 Java 验证码是指在用户注册、登录或其他敏感操作时,要求用户输入的一串字符,以证明用户不是机器人。今天,我们将详细介绍如何使用 Java 实现一个简单的验证码功能。 验证码的基本概念 ...

    验证码识别的数据集下载

    验证码识别数据集的下载与应用在当今互联网信息安全领域中占据着重要的地位。验证码,全称为“Completely Automated Public Turing test to tell Computers and Humans Apart”,其核心目的是区分计算机和人类用户,...

    java 验证码

    在Java编程中,验证码是一种广泛应用于网站和应用程序的安全机制,用于防止自动化的恶意软件或机器人进行非法操作。验证码的主要目标是验证用户是否为真实的人,而不是机器。在本项目中,我们关注的是如何生成Java...

    数字验证码

    验证码是一种常见的网络安全措施,用于验证用户是否为真实的人而不是自动化程序。在网页开发中,数字验证码通常被用来防止恶意机器人、自动脚本或爬虫进行非法操作,如批量注册、恶意投票或垃圾邮件发送。标题“数字...

    验证码登录模板

    j2ee, 使用servlet 进行验证码登录模板,仅适合初学javaee的同学使用j2ee, 使用servlet 进行验证码登录模板,仅适合初学javaee的同学使用j2ee, 使用servlet 进行验证码登录模板,仅适合初学javaee的同学使用j2ee, ...

    JS如何生成随机验证码

    本文实例为大家分享了JS生成随机验证码的具体代码,供大家参考,具体内容如下 在网站中我们很常见到形形色色的验证码,今天我们来用JS来生成一个随机的二维码。 我们需要用到canvas来进行验证码的绘制 什么是Canvas...

    四字定长数英验证码数据集(10000张)

    验证码(CAPTCHA)是一种用于验证用户是否为人类的在线安全技术。四字定长数英验证码数据集,正如其名,包含了一万个四个字符长度、混合数字和字母的验证码图片,这种类型的数据集广泛用于训练计算机视觉模型,尤其...

    完美验证码识别系统,可用多种语言调用

    验证码识别,使用exe进行训练集标识,无代码基础也可进行训练集标注,理论上准确率可以到百分之百,压缩包里有一部分我做好的字模和一部分测试数据,下载后可以直接用我的数据进行测试。 支持的调用方式有:易语言、...

    springboot验证码

    Springboot发验证码的一个工具类下载下来只需把核心代码CV到自己需要加到的地方就行了

    java验证码识别

    Java验证码识别技术主要涉及到图像处理和光学字符识别(OCR)两个关键领域,是自动化系统中用于防止机器人自动操作的一种安全机制。在这个Java项目中,我们看到的文件名可能与训练模型、输入图像和识别结果有关。...

    验证码识别

    验证码识别 验证码识别 验证码识别 验证码识别 验证码识别 验证码识别 验证码识别 验证码识别

    滑块验证码

    先大概梳理一下这个特征,点击验证,弹出这个滑块验证码,用鼠标拖动到缺口阴影位置松手即可实现验证。 逻辑比较简单,目前要处理的核心问题就是怎么找到这个阴影位置,因为可能有不同的图片而且图片中缺口阴影的...

    CImg.h:验证码库

    CImg.h:验证码库

    通用验证码识别工具套件(简单验证码)

    验证码识别技术是信息安全领域中的一个重要组成部分,主要用于防止自动化的机器人程序进行恶意操作,如批量注册、刷票等。本文将详细介绍“通用验证码识别工具套件(简单验证码)”及其相关知识点。 该工具套件专为...

    验证码demo

    验证码demo

    和验证码相关的图片数据集

    和验证码相关的图片数据集 数据说明: ·图像:包含PNG格式的验证码图像的文件夹。 ·Labels:包含两列的CSV文件:image_filename和文本。imagefilename对应于CAPTCHA图像的文件名,text包含CAPTCHA中描述的字母数字文本...

    vue实现验证码输入框组件

    Vue 实现验证码输入框组件 在最近的项目中,我们遇到了这样一个需求:输入 4 位或 6 位短信验证码,输入完成后收起键盘。下面我们将一步步地实现这个需求。 首先,我们需要布局排版验证码输入框组件。我们使用 `...

Global site tag (gtag.js) - Google Analytics