`
yunchow
  • 浏览: 325292 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

实现动态验证码

阅读更多

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.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;



public class AuthCodeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static final int W = 60;
	private static final int H = 25;
	private static final String[] CTable = ("1 2 3 4 5 6 7 8 9 " 
		+ "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").split(" ");
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		BufferedImage img = new BufferedImage(W, H, BufferedImage.TYPE_INT_RGB);
		Graphics g = img.getGraphics();
		
		// 画背景
		g.setColor(Color.PINK);
		g.fillRect(0, 0, img.getWidth(), img.getHeight());
		
		// 画干扰线
		g.setColor(Color.GRAY);
		for (int i = 0; i < 20; i++) {
			g.drawLine(new Random().nextInt(W), new Random().nextInt(H), 
					new Random().nextInt(W), new Random().nextInt(H));
		}
		
		// 随机生成四个数
		g.setColor(Color.BLUE);
		g.setFont(new Font("Courier New", Font.BOLD, 16));
		for (int i = 0; i < 4; i++) {
			g.drawString(CTable[new Random().nextInt(35)], 6 + i * 13, 17);
		}
		
		// 向客户端输出
		resp.setContentType("image/jpeg");
		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(resp.getOutputStream());
		encoder.encode(img);
	}
	
}














分享到:
评论

相关推荐

    ASP.NET动态验证码

    在这个例子中,我们将深入探讨ASP.NET如何实现动态验证码的生成与验证。 首先,我们需要创建一个验证码类,这个类将负责生成随机的字符串和对应的图像。在.NET框架中,我们可以利用`Random`类生成随机数字,然后将...

    java实现动态验证码的效果

    Java 实现动态验证码效果是一种常见的安全机制,用于防止自动化脚本或机器人在网站上进行恶意操作,如批量注册、登录等。在这个过程中,我们将探讨如何使用Java语言来创建一个简单的动态验证码系统,主要包括以下几...

    jsp servlet 动态验证码

    下面将详细讲解这三个技术以及它们在实现动态验证码中的应用。 **JSP(JavaServer Pages)** JSP是Java的一种视图技术,用于生成动态网页。在JSP页面中,开发者可以混合HTML、CSS和Java代码。在本案例中,JSP可能...

    Java实现动态验证码生成

    Java实现动态验证码生成

    python代码实现动态验证码登录

    python代码实现动态验证码登录功能 from tkinter import * from tkinter.messagebox import * import random root = Tk()

    用python3实现动态验证码,脚本可以直接运行

    实现动态验证码的步骤通常包括以下几个部分: 1. **定义验证码长度**:首先,我们需要确定验证码的长度,这可以在脚本中作为一个变量或者参数来设定。例如,我们可以设置`length=4`,表示生成的验证码包含4个字符。...

    Android代码-又一个Android端动态验证码实现

    Android实现动态验证码的技术调研与实现 建议将宽高比设置为5:2,如果不是5:2现在会按照5:2的比例居中显示到控件 usage verificationCodeView.setOnClickListener(new View.OnClickListener() { @Override ...

    动态验证码

    在实际开发中,实现动态验证码的技术包括但不限于PHP、Java、Python等编程语言,以及各种开源库和API,例如Google的reCAPTCHA服务。在压缩包文件"AuthCode"中,可能包含了用于生成和验证动态验证码的相关代码或资源...

    【ASP.NET编程知识】12306动态验证码启发之ASP.NET实现动态GIF验证码(附源码).docx

    首先,实现动态验证码的关键在于创建一个可以生成随机字符串并将其绘制到图像上的类。这个类通常包含多个属性,用于定义验证码的样式和行为。在提供的代码中,可以看到一个名为`Validate`的类,它包含了以下关键属性...

    动态验证码教程与实例

    实现动态验证码的技术有多种,如GD库、ImageMagick等图像处理库,以及PHP、Python、Java等各种编程语言都有成熟的库支持。例如,在PHP中,可以使用GD库配合`imagecreatetruecolor()`函数创建画布,然后随机选择字体...

    android_动态验证码图片

    本篇文章将详细探讨如何在Android应用程序中实现动态验证码图片的功能。 首先,我们要理解验证码的基本原理。验证码通常由一串随机字符组成,这些字符可能是数字、字母或者两者都有,它们被扭曲、旋转、加噪,以...

    用servlet实现动态的生成验证码,点击验证码改变,及验证码的校验

    总结,使用Servlet实现动态验证码涉及到图像处理、随机字符串生成、HTTP响应的构建和会话管理等多个技术点。理解这些原理并结合实际应用,可以帮助开发者创建出安全、有效的验证码系统,提高Web应用的安全性。

    JavaScript实现页面动态验证码

    在本主题中,我们将深入探讨如何使用JavaScript实现一个页面动态验证码。验证码的主要目的是防止自动化的机器人程序对网站进行恶意操作,例如批量注册、垃圾评论等。 验证码通常包括一些随机生成的字符或数字,用户...

    java Servlet 实现动态验证码图片示例

    总结一下,Java Servlet 实现动态验证码图片的步骤包括: 1. 初始化验证码图片的尺寸和颜色。 2. 创建 `Graphics2D` 对象,并设置背景、字体和边框。 3. 使用随机数生成器创建干扰线和验证码字符串。 4. 保存验证码...

    动态验证码.rar

    本资源"动态验证码.rar"可能包含了一个Python实现动态验证码的示例代码。 在Python中,生成动态验证码通常涉及到以下几个关键知识点: 1. 图像处理库:如PIL(Python Imaging Library)或其分支Pillow,它们用于...

    OpenCV搞定腾讯滑块验证码的实现代码

    滑块验证码破解是一直都想搞的项目,毕竟多数网站都会采用滑块验证码,于是最近在修改论文的闲暇之余把这事儿给解决了。要搞现在的滑块验证码绕不开图像处理,图像处理当然是首推OpenCV-Python啦!当然我的OpenCV...

    12306动态验证码

    而`ValidyCode`可能是源代码文件夹,包含了实现动态验证码功能的C#或其他编程语言的代码。这些代码可能包括验证码的生成、显示、验证等功能的具体实现。 总的来说,12306动态验证码是网络安全的重要组成部分,它...

    gif动态登录验证码

    动态验证码的工作原理大致如下:服务器端生成一个随机的字符串,然后将其转化为一系列连续变化的图像帧,并以GIF格式发送给客户端。用户必须在短时间内正确识别并输入显示的验证码。由于每个验证码的显示都是短暂且...

    动态验证码.zip

    在本文中,我们将深入探讨Python框架在实现动态验证码中的应用,以及相关案例。 首先,让我们理解动态验证码的基本原理。动态验证码通常由一串随机生成的字符(数字、字母或特殊符号)组成,这些字符会随着时间或...

    用一个jsp文件实现的动态验证码

    ### 使用JSP实现动态验证码的关键知识点 #### 一、动态验证码概述 动态验证码是一种常见的安全措施,用于防止自动化工具或机器人进行恶意操作。通常,在用户登录或其他敏感操作时,系统会要求用户输入显示在屏幕上...

Global site tag (gtag.js) - Google Analytics