`
zpzp
  • 浏览: 10810 次
  • 性别: 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>

 

分享到:
评论

相关推荐

    获取验证码图片,不是识别验证码!

    获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是...

    js验证码验证码插件,简单易用、图片验证码,附demo

    验证码是网络安全领域中的一种常见机制,用于防止自动化程序(如机器人)进行非法操作,例如恶意注册、刷票等。在Web开发中,JavaScript验证码插件是实现这一功能的便捷工具,尤其对于前端开发者来说,它们提供了...

    验证码破解的方法,简单验证码破解java示例

    验证码是网络安全领域中的一种常见机制,用于防止自动化程序(如机器人)进行非法操作,例如注册、登录或提交表单。本篇文章将详细讨论验证码的基本原理,以及如何使用Java实现简单的验证码破解方法。请注意,了解...

    验证码验证码验证码验证码验证码验证码

    验证码是网络安全领域中的一种常见机制,用于防止自动化程序(如机器人)进行非法操作,比如注册、登录或提交表单。在本主题中,我们将深入探讨如何使用JavaScript来创建随机验证码,以及动态时间在验证码实现中的...

    一个低调的行为验证码 [滑块验证码、点选验证码、行为验证码、旋转验证码, 滑动验证码].zip

    本资料主要探讨了四种类型的行为验证码:滑块验证码、点选验证码、行为验证码以及旋转验证码,特别是滑动验证码。 1. **滑块验证码**:滑块验证码是目前常见的验证码形式,用户需要将一个滑块拖动到正确的位置以...

    生成验证码(带详细注释、Servlet已获取生成的验证码和输入的验证码)

    验证码是Web应用中常见的一种安全机制,用于防止自动化的机器人或者恶意软件进行非法操作,比如注册、登录等。本项目提供了生成验证码的功能,并且在Java后台处理了验证码的验证过程,确保用户输入的验证码与系统...

    gif动态登录验证码

    在网络安全领域,登录验证码是一种广泛使用的安全机制,用于防止恶意自动化程序(如机器人)未经授权地访问或操作用户账户。本文将深入探讨“gif动态登录验证码”这一特定的技术,以及它如何增强网站的安全性。 ...

    基于python实现破解滑动验证码过程解析

    今天专门给大家来聊聊验证码的问题,一般的情况下遇到验证码我们可以都可以找开发去帮忙解决,关闭验证码,或者给一个万能的验证码!那么如果开发不提供帮助的话,我们自己有没有办法来处理这些验证码的问题呢?答案...

    layUI的验证码功能及校验实例

    在实际部署中,开发者需要注意防刷机制,如验证码的刷新频率不宜过高,以免给正常用户带来不便,同时也可以加入验证码刷新的按钮,允许用户在看不清楚时刷新验证码。 最后,文件内容强调了layUI的验证码实现是使用...

    .net 复杂的验证码

    在.NET开发中,验证码是一种常见的安全机制,用于防止自动化脚本或机器人进行恶意操作,如批量注册、频繁登录等。创建一个复杂的验证码可以提高网站的安全性,减少非法攻击的可能性。本教程将详细介绍如何在.NET中...

    验证码验证码验证码验证码

    好东西好西欧年各地验证码验证码验证码验证码

    Android验证码的实现

    在Android应用开发中,验证码(CAPTCHA)是一种重要的安全机制,用于验证用户是人类而非自动程序。本篇文章将深入探讨如何在Android平台上实现验证码功能,包括自定义控件的创建和验证码的生成与验证。 首先,...

    验证码识别 汉字验证码识别

    验证码识别技术是网络安全中一种常见的身份验证手段,用于防止恶意自动化程序(如机器人)进行非法操作。汉字验证码识别尤其具有挑战性,因为它涉及到中文字符的多样性以及图像处理的复杂性。下面将详细介绍图像分割...

    安卓发送验证码倒计时效果和自动获取验证码并填充

    在安卓应用开发中,"安卓发送验证码倒计时效果和自动获取验证码并填充"是一个常见的功能,主要用于用户注册、登录或修改重要信息时的身份验证。这个功能涉及到多个关键知识点,包括网络请求、短信监听、UI更新以及...

    ASP.NET动态验证码

    ASP.NET动态验证码是一种用于验证用户身份的安全机制,广泛应用于网页登录、注册和其他涉及用户交互的安全场景。它通过生成随机的图像和文字组合,要求用户在输入框中输入看到的字符,以此来防止自动化的机器人或者...

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

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

    验证码反爬-超级鹰打码平台-验证码点选、验证码滑动资源

    在网络安全和反爬虫技术领域,验证码是一种常用的方法,用于防止自动化的机器人程序对网站进行恶意操作,如数据抓取或滥用服务。本资源包针对验证码反爬提供了相关的工具和资料,主要涉及到“超级鹰打码平台”以及...

    VB识别验证码源码 VB识别验证码源码 VB识别验证码源码

    验证码识别技术是信息安全领域中的一个重要话题,特别是在防止自动化程序(如机器人)滥用服务时。VB,全称Visual Basic,是一种由Microsoft开发的编程环境,它提供了丰富的功能来创建图形用户界面和处理各种任务,...

    unity c#手机短信验证码登陆注册

    发送的验证码内容代码,已写好,直接添加按钮调用即可,无需营业执照,个人可用,无需任何资质,轻松实现短信验证码功能,无需理解底层原理,全部封装好,直接调用即可,已写中文注释,使用c#代码编写,可在任何支持...

Global site tag (gtag.js) - Google Analytics