`
zjx2388
  • 浏览: 1331169 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

一种彩色验证码的代码

    博客分类:
  • J2EE
阅读更多

<%@ page contentType="image/jpeg;charset=GBK" %>
<%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%>
<%@ page import="com.sun.image.codec.jpeg.*"%>

<%!
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);
}
%>

<%

out.clear(); //加上这句
out = pageContext.pushBody(); //还有这句就OK了
//设置页面不缓存
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);

// 获取图形上下文
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(new Color());
//g.drawRect(0,0,width-1,height-1);


// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
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);
}

// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
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*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
//打印显示的验证码
System.out.println(sRand);

// 图象生效
g.dispose();
// 输出图象到页面
//ImageIO.setUseCache(true);
ServletOutputStream stream = null ;
stream = response.getOutputStream();
ImageIO.write(image, "JPEG",stream);


%>

分享到:
评论

相关推荐

    .net下的彩色验证码源代码

    .NET下的彩色验证码源代码主要涉及的是网络安全领域中的用户验证技术,特别是防止自动化程序(如机器人)非法操作的机制。验证码通常由随机生成的一串字符或数字组成,用户需要正确输入才能完成登录、注册等操作,...

    java彩色验证码例子

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

    JSP彩色验证码的实现

    本文将详细介绍如何在JSP环境中实现一种彩色验证码的功能。 #### 二、技术栈与环境 - **后端技术**:JSP(Java Server Pages) - **服务器环境**:如Tomcat等支持JSP的服务器 - **前端展示**:通过浏览器展示生成...

    JSP实现彩色验证码

    1. **JSP基础**:JSP是Java Web开发的一种技术,它允许开发者在HTML页面中嵌入Java代码,以动态生成网页内容。在JSP中,我们通常使用脚本元素(Scriptlets)、表达式、声明和指令等元素来编写程序逻辑。 2. **...

    优化过的 c# 彩色验证码

    "优化过的C#彩色验证码"是指使用C#编程语言实现的一种经过优化的彩色图像验证码。这个话题涵盖了几方面的技术,包括图像处理、随机数生成、颜色应用以及字符混淆等。 1. **C#编程语言**:C#是由微软开发的一种面向...

    JSP实现彩色验证码源代码

    在压缩包中的"JSP实现彩色验证码源代码"可能包含以下文件: - `ColorCodeServlet.java`:这是主处理类,包含了上述步骤的实现。 - `Web.xml`:部署描述符,配置了Servlet的映射和初始化参数。 - `jsp`文件:展示...

    JSP彩色验证码源码

    本源码就是一种实现JSP彩色验证码的方法,旨在帮助开发者快速构建具有高安全性和视觉吸引力的验证码功能。 首先,我们需要了解JSP的基本概念。JSP是Java Servlet技术的一种简化,它允许将HTML代码与Java代码混合...

    C#彩色验证码(数字和字母)

    验证码是一种常用的网络安全机制,用于防止自动化程序(如机器人或爬虫)进行非法操作。在C#和ASP.NET中实现彩色的数字和字母验证码,开发者通常会利用图像处理技术来生成随机且难以辨认的字符串,同时加入干扰元素...

    ASP.NET有彩色背景的验证码代码

    ASP.NET是一种基于.NET Framework的服务器端编程模型,用于构建动态Web应用程序。在这个场景中,我们需要创建一个具有彩色背景的验证码代码,它不仅提高了网站的安全性,还能为用户提供更友好的视觉体验。验证码的...

    asp彩色验证码源码

    ASP(Active Server Pages)是一种微软开发的服务器端脚本语言,常用于构建动态网页应用。在Web开发中,验证码(CAPTCHA)是一个重要的安全机制,它用于防止自动化的机器人或恶意软件进行非法操作,比如垃圾邮件发送...

    5种JSP验证码的源代码

    在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它允许开发者将Java代码嵌入到HTML页面中,以实现服务器端的逻辑处理。验证码是网络安全中常见的一个组件,用于防止自动机器人和恶意攻击,确保...

    JSP自动生成彩色验证码

    在IT领域,验证码是一种常见的安全机制,用于防止自动化的机器人或恶意软件进行非法操作,如批量注册、恶意登录等。本项目重点在于使用JSP(Java Server Pages)技术自动生成彩色验证码,为用户提供一个视觉上更友好...

    jsp 彩色 验证码 myeclipse工程 非数据库 源代码 下载

    本项目提供了一个基于JSP实现的彩色验证码源代码,适用于MyEclipse开发环境,无需依赖数据库,方便直接使用和学习。 **JSP(JavaServer Pages)基础** JSP是Java的一种动态网页技术,它允许开发者在HTML或XML文档...

    JSP为登录生成彩色验证码

    JSP是Java的一种动态网页技术,允许开发者将Java代码嵌入到HTML或XML文档中,以便在服务器端处理数据并返回动态生成的页面给客户端。在生成验证码的过程中,我们将利用JSP结合Java来完成图像的绘制。 验证码的生成...

    彩色验证码的实现

    验证码(CAPTCHA)是一种用于验证用户是否为人类的在线安全技术。它通常出现在网页表单中,用于防止自动化的机器人程序进行恶意操作,如垃圾邮件发送、账户注册或投票欺诈。彩色验证码的实现是通过创建难以由计算机...

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

    Java JSP技术是一种服务器端脚本语言,常用于构建动态网页。在这个提供的压缩包中,包含的是一个基于Java实现的彩色验证码生成与验证的功能代码,适用于网页安全验证,防止自动机器人或恶意攻击。验证码通常由随机...

    JSP生成彩色验证码程序

    JSP(JavaServer Pages)是一种基于Java的技术,用于创建动态网页。在Web开发中,验证码是一种常见的安全机制,用于防止自动化的机器人或者恶意用户进行非法操作,如注册、登录、投票等。本教程将深入讲解如何使用...

    struts ajax 彩色验证码

    Ajax,全称为Asynchronous JavaScript and XML,是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。在这个场景下,Ajax可能被用来实现在用户输入用户名后,异步地向服务器发送请求,检测该用户名是否已经...

    JSP彩色验证码Md5类

    总的来说,“JSP彩色验证码--Md5类”是一个结合了动态网页技术、色彩设计和安全哈希的解决方案,用于提供一种可靠的用户验证方法。理解并掌握这种技术有助于提升Web应用的安全性,防止恶意自动化行为。

    一个非常好用的asp彩色验证码

    ASP彩色验证码是一种在Web开发中用于验证用户身份的安全机制,主要应用于防止自动化程序(如机器人)进行非法操作,比如注册、登录或者提交表单。在ASP(Active Server Pages)环境中,这种验证码通常由服务器端生成...

Global site tag (gtag.js) - Google Analytics