`
Java_Fan
  • 浏览: 81733 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

java生成彩色验证码

 
阅读更多

ColorValidateCode.jsp:

<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=GBK" %>
<%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %> 
<%@ page import="java.io.OutputStream" %> 
<%! 
	Color getRandColor(int fc,int bc){ 
		Random random = new Random(); 
		if(fc>255) fc=255; 
		if(bc>255) bc=255; 
		int r=fc+random.nextInt(bc-fc); 
		int g=fc+random.nextInt(bc-fc);
		int b=fc+random.nextInt(bc-fc);
		return new Color(r,g,b);
	}
%>

<%
	try{
		response.setHeader("Pragma","No-cache");
		response.setHeader("Cache-Control","no-cache");
		response.setDateHeader("Expires", 0);
		int width=60, height=20;
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		OutputStream os=response.getOutputStream();
		Graphics g = image.getGraphics();
		Random random = new Random();
		g.setColor(getRandColor(200,250));
		g.fillRect(0, 0, width, height);

		g.setFont(new Font("Times New Roman",Font.PLAIN,18));
		g.setColor(getRandColor(160,200));
		for (int i=0;i<155;i++){
			int x = random.nextInt(width);
			int y = random.nextInt(height);
			int xl = random.nextInt(12);
			int yl = random.nextInt(12);
			g.drawLine(x,y,x+xl,y+yl);
		}
		String sRand="";
		for (int j=0;j<4;j++){
			String rand=String.valueOf(random.nextInt(10));
			sRand+=rand;
			g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
			g.drawString(rand,13*j+6,16);
		}
		session.setAttribute("rand",sRand);
		g.dispose();
		ImageIO.write(image, "JPEG",os);
		os.flush();
		os.close();
		os=null;
		response.flushBuffer();
		out.clear();
		out = pageContext.pushBody();
	}catch(IllegalStateException e){
		System.out.println(e.getMessage());
		e.printStackTrace();
	}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<body>
		<table align="center" width="100%">
			<tr>
				<td align="center">图片</td>
				<td><input id="colorValidateCode" name="colorValidateCode" type="image" value="${rand}"/>${rand}</td>
			</tr>
		</table>
	</body>
</html>

效果:


分享到:
评论

相关推荐

    java 生成彩色验证码

    java 生成彩色验证码的程序,改程序可以极大的帮助你,是你可以自动生成彩色的验证码

    java生成验证码源码包括彩色验证码

    java生成验证码源码包括彩色验证码 包括jsp生成验证码和彩色验证码

    java彩色验证码例子

    Java生成彩色验证码是一种常见的安全措施,用于防止自动化脚本或恶意机器人进行非法操作,例如注册、登录等。在Web开发中,JSP(JavaServer Pages)可以用来创建动态的网页内容,包括验证码图像。以下是对标题和描述...

    java彩色验证码的生成

    总之,Java生成彩色验证码涉及图像处理、随机数生成、颜色操作以及安全性设计等多个方面,是Web开发中一个有趣的实践案例。通过不断优化验证码的复杂度和安全性,我们可以有效防止自动化攻击,保护用户的账户安全。

    java jsp 生成彩色验证码+验证功能代码,可直接运行,没有数据库

    在这个提供的压缩包中,包含的是一个基于Java实现的彩色验证码生成与验证的功能代码,适用于网页安全验证,防止自动机器人或恶意攻击。验证码通常由随机字符组成,目的是确保用户是人类而非自动化程序。 1. **彩色...

    JSP自动生成彩色验证码

    本项目重点在于使用JSP(Java Server Pages)技术自动生成彩色验证码,为用户提供一个视觉上更友好的验证体验。下面我们将深入探讨这个主题。 首先,验证码通常由一组随机字符组成,这些字符可以是数字、字母或其他...

    JSP为登录生成彩色验证码

    对于本案例,`pic`文件夹可能包含了一些支持生成彩色验证码的资源文件,比如Java类或者配置文件。这些文件需要部署在JSP应用的`WEB-INF/classes`目录下,因为这是默认的类路径,JSP在运行时会从这里加载自定义的Java...

    java 彩色验证码实例

    一个简单的生成彩色验证码的例子,部分代码if (r1 == 13) { r2 = random.nextInt(7); //生成0到7之间的随机数 } else { r2 = random.nextInt(16); //生成0到16之间的随机数 } String str_r2 = rBase[r2]; // ...

    JSP生成彩色验证码程序

    本教程将深入讲解如何使用JSP来生成彩色的验证码程序。 一、验证码的基本原理 验证码的主要目的是通过要求用户输入图片上显示的一串随机字符,来验证用户是人而非机器。这些字符通常是扭曲的,以便增加机器识别的...

    java生成登录验证码的方法

    验证码的作用:有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,腾讯的QQ社区),我们利用比较简易的方式...

    JSP生成彩色验证码程序例子

    在这个"JSP生成彩色验证码程序例子"中,我们将深入探讨如何利用JSP实现一个功能丰富的彩色验证码生成器。 验证码的主要目的是为了防止自动机器人或恶意脚本进行非法操作,例如防止垃圾邮件、注册机等。它通过显示一...

    彩色 扭曲 验证码

    以下是一段简化版的关键代码片段,展示了如何生成彩色扭曲验证码: ```java public class VerifyCode { // ...省略部分变量声明和方法... public BufferedImage createImage(String sCode, int w, int h) { ...

    java图形界面可视化彩色验证码

    从提供的文件信息中,我们可以提取以下知识点关于Java图形界面可视化彩色验证码的实现: 1. 验证码的生成与刷新机制: Java中的验证码通常用于区分用户与机器,通过生成一个随机的、用户需要识别的字符序列来实现。...

    JSP实现彩色验证码

    3. **图像处理**:生成彩色验证码需要我们创建并绘制一个图像。这涉及到`java.awt`和`javax.imageio`包中的类,如`BufferedImage`、`Graphics2D`等。我们需要定义图像的大小,然后在图像上画出随机颜色的背景、线条...

    JSP彩色验证码的实现

    在类中定义了图像的宽度和高度,并在`service`方法中初始化了一个`BufferedImage`对象,用以存储生成的彩色验证码图片。 ```java private int width = 60; private int height = 20; protected void service...

    JSP彩色验证码的实现.

    3. **彩色背景**:为了增强视觉效果,我们可以为验证码生成彩色背景。可以随机选取RGB颜色值,然后使用`Graphics2D`的`setColor()`方法设置背景色。 4. **绘制字符**:在背景上绘制字符,同样可以设置随机颜色,...

    JSP彩色验证码【100%可以用,亲自测试可用,带验证功能实例】

    本文将详细介绍如何在JSP中实现彩色验证码的生成与验证功能。彩色验证码不仅能够提高网站的安全性,还可以提升用户体验。根据文档的要求,我们需要创建三个JSP页面:`image.jsp`用于生成验证码图像,`a.jsp`作为展示...

    彩色验证码 源码(Java实现)

    在本实例中,我们关注的是一个基于Java实现的彩色验证码源码。Java是一种跨平台的编程语言,以其强大、灵活和易用性而闻名,特别适合开发这种类型的应用。 验证码的生成通常包括以下几个步骤: 1. **随机字符生成*...

    JSP彩色验证码源码

    在Web开发中,JSP(JavaServer Pages)作为服务器端脚本语言,常被用来生成动态的彩色验证码。本源码就是一种实现JSP彩色验证码的方法,旨在帮助开发者快速构建具有高安全性和视觉吸引力的验证码功能。 首先,我们...

    java 彩色验证码

    Java 彩色验证码是一种用于网站安全验证的技术,其目的是防止自动化程序(如机器人或爬虫)进行非法操作,如批量注册、恶意登录等。验证码通常由随机生成的一组字符组成,用户需要正确输入这些字符才能完成操作。在...

Global site tag (gtag.js) - Google Analytics