`

简单验证码的使用

 
阅读更多

我使用的是一个工具jsp页面

image.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@page import="java.awt.Graphics2D"%>
<%@page import="java.awt.Color"%>
<%@page import="java.awt.Font"%>
<%@page import="javax.imageio.ImageIO"%>

<%
	int width = 60;
	int height = 20;
	// 创建具有可访问图像数据缓冲区的Image
	BufferedImage buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
	Graphics2D g = buffImg.createGraphics();
	
	// 创建一个随机数生成器
	Random random = new Random();
	
	g.setColor(Color.WHITE);
	g.fillRect(0, 0, width, height);
	
	// 创建字体,字体的大小应该根据图片的高度来定
	Font font = new Font("Times New Roman", Font.PLAIN, 24);
	// 设置字体
	g.setFont(font);
	
	// 画边框
	g.setColor(Color.BLACK);
	g.drawRect(0, 0, width - 1, height - 1);
	
	// 随机产生160条干扰线
	g.setColor(Color.LIGHT_GRAY);
	for (int i = 0; i < 160; i++) {
		int x = random.nextInt(width);
		int y = random.nextInt(height);
		int x1 = random.nextInt(12);
		int y1 = random.nextInt(12);
		g.drawLine(x, y, x + x1, y + y1);
	}
	
	// randomCode 用于保存随机产生的验证码
	StringBuffer randomCode = new StringBuffer();
	int red = 0, green = 0, blue = 0;
	
	// 随机产生4位数字的验证码
	for (int i = 0; i < 4; i++) {
		// 得到随机产生的验证码数字
		String strRand = String.valueOf(random.nextInt(10));
	
		// 产生随机的颜色分量来构造颜色值
		red = random.nextInt(110);
		green = random.nextInt(50);
		blue = random.nextInt(50);
	
		// 用随机产生的颜色将验证码绘制到图像中
		g.setColor(new Color(red, green, blue));
		g.drawString(strRand, 13 * i + 6, 16);
	
		randomCode.append(strRand);
	}
	
	// 将四位数字的验证码保存到session中
	//HttpSession session = request.getSession();
	session.setAttribute("randomCode", randomCode.toString());
	
	// 禁止图像缓存
	response.setHeader("Pragma", "no-cache");
	response.setHeader("Cache-Control", "no-cache");
	response.setDateHeader("Expires", 0);
	
	response.setContentType("image/jpeg");
	// 将图像输出到servlet输出流中
	ServletOutputStream sos = response.getOutputStream();
	ImageIO.write(buffImg, "jpeg", sos);
	sos.close();
	//sos = null;
	out.clear();
	out = pageContext.pushBody();
%>

 

 

使用

 <div class="chknumber">
        <label>验证码:š
        <input type="text" name="user.imageCode" id="chknumber" maxlength="4" class="chknumber_input" />
        </label>
        <img src="<%=request.getContextPath()%>/common/image.jsp" height="15"/>
      </div>

 

    在登录页面加载时在jsp页面随机生成四位数字 ,并将数字打印在图片上显示出来,同时将数字保存在session中,我这保存起名用 randomCode 登录验证时就可以 

String imageCode = (String) session.getAttribute("randomCode");

 做对比,

 

 效果

  

 

   

 

 

 

  • 大小: 6.6 KB
分享到:
评论

相关推荐

    易语言次世代验证码系统简单使用实例

    在这个"易语言次世代验证码系统简单使用实例"中,我们将探讨如何利用易语言构建一个基本的验证码系统。 验证码是一种常用的安全机制,用于验证用户是否为真实的人,防止恶意自动化的机器人或脚本进行操作。次世代...

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

    本篇文章将详细讨论验证码的基本原理,以及如何使用Java实现简单的验证码破解方法。请注意,了解验证码破解知识主要是为了提高网站安全意识,避免自身系统被攻击,而不是用于恶意破解他人系统。 验证码的类型主要有...

    易语言简单验证码识别

    易语言简单验证码识别源码,简单验证码识别,计算验证码,判断一下,判断相差值

    安卓简单验证码demo

    这个"安卓简单验证码demo"提供了一个基本的实现,帮助开发者理解如何在Android平台上创建自定义视图来绘制随机的验证码。下面我们将深入探讨相关的知识点。 首先,验证码的核心功能是生成随机的、难以自动识别的...

    php验证码简单源码

    虽然这个验证码源码简单,但安全性较低,因为它没有对验证码进行加密。在实际应用中,考虑到安全性和用户体验,可以考虑以下优化: - 使用更复杂的字符串生成算法,提高破解难度。 - 实现图片验证码的动态加载,防止...

    一个c#简单验证码范例

    在这个C#验证码范例中,我们将探讨如何创建一个简单的验证码生成器。 首先,验证码的基本原理是生成一组随机字符,通常是数字和字母的组合,然后将其显示给用户。用户需要在输入框中正确输入这些字符以验证他们的...

    汉字验证码,推荐论坛或网站后台使用

    尽管现代的机器学习技术已经能处理一些简单的验证码,但汉字验证码由于其复杂性和多变性,仍能提供相对较高的防护级别。不过,随着技术的进步,验证码的设计也需要不断更新,以应对新的安全挑战。

    简单验证码样本集.zip

    本资料包“简单验证码样本集.zip”包含了一个针对简单验证码的训练集,总计10000个样本,每个验证码由四个字符组成,这为开发验证码识别系统提供了基础数据。 验证码的种类多样,包括图像验证码、音频验证码、数学...

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

    本篇文章将详细探讨基于JavaScript的验证码插件,特别是针对“js验证码插件,简单易用,图片验证码”的主题,以及如何通过附带的示例(demo)快速上手。 1. **JavaScript验证码原理** JavaScript验证码通常包含两...

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

    本文将详细介绍“通用验证码识别工具套件(简单验证码)”及其相关知识点。 该工具套件专为识别简单类型的验证码设计,允许用户自定义配置以适应不同的验证码样式,提升了验证码识别的通用性。这样的工具在某些场景...

    登陆验证码的c#代码

    在使用验证码时,我们可以将其与用户输入的验证码进行比较,以验证用户的身份。如果验证通过,则允许用户登录系统。 本文详细介绍了如何使用 C# 生成登陆验证码代码。该代码可以帮助开发者快速实现验证码功能,以...

    简单验证码生成jar包

    综上所述,这个“简单验证码生成jar包”提供了一种快速集成验证码功能的方法,适用于那些希望在自己的Java应用中加入验证码验证的开发者。通过阅读`readme.txt`文件,我们可以获取关于如何利用`code_kyle_1.1.jar`...

    简单验证码.zip

    在本项目"简单验证码.zip"中,验证码功能被应用于登录界面,增加了安全性,确保登录的是真实的人而非自动化程序。 【JSP(JavaServer Pages)】 JSP是Java平台上的服务器端脚本语言,用于创建动态网页。在本项目中...

    Android验证码简易demo

    这个demo可能展示了如何将验证码发送到服务器的简单HTTP请求,如使用`Retrofit`或`Volley`库。 5. **错误处理**:当用户输入的验证码不正确时,界面应该有相应的反馈。这个demo可能包含错误处理逻辑,如显示错误...

    使用Vue 实现滑动验证码功能

    本文将详细介绍如何使用Vue框架来实现滑动验证码功能,为读者提供一个实现前端校验验证码的实例。 首先,我们要了解验证码的基本原理。验证码分为前后端校验两个阶段。前端校验主要防止自动化程序(机器人)进行...

    简单验证码ASP.NET程序

    【简单验证码ASP.NET程序】是一种基于ASP.NET技术开发的简单但功能齐全的验证码生成系统。在Web应用中,验证码主要用于防止自动化的恶意机器人或者爬虫进行非法操作,如注册、登录、评论等,确保用户交互的安全性。...

    网站验证码代码的使用

    在JAVAWeb开发中,实现验证码的方式多种多样,本教程将介绍三种可以直接使用的验证码生成方法,并提供详细的操作步骤和代码示例。 1. **基于图像的随机字符验证码** 这是最常见的一种验证码形式,它通过生成随机...

    bmp简单验证码程序.cpp

    这里给出源代码都是非常简单的源代码,学过《C程序设计》的都可以看懂,不会超出书本范围,而且不使用指针,这样VB,Delphi,JAVA 等语言都可以照此写出相应的源代码。 验证码识别可以分为三个大的步骤:预处理,...

    javaWeb使用验证码实现简单登录

    JavaWeb使用验证码实现简单登录 在JavaWeb开发中,验证码是一种常用的安全机制,用于防止机器人和恶意攻击。下面将详细介绍如何使用验证码实现简单登录功能。 验证码的原理 验证码的原理是基于HTTP协议的请求响应...

    C#简单的验证码

    在本主题中,我们将深入探讨如何使用C#语言实现一个简单的验证码系统,主要涉及以下几个核心知识点: 1. **验证码的基本原理**: 验证码通常由一组随机字符(数字、字母或符号)组成,显示在图像上,用户需要手动...

Global site tag (gtag.js) - Google Analytics