<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="UTF-8" %>
<%!
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);
}
%>
<%
//设置页面不缓存
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);
// 图象生效
g.dispose();
// 输出图象到页面
out.clear();
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
发表评论
-
JDK1.5新特性介绍
2010-04-27 09:08 697本文引用:http://www.yesky.com/263 ... -
数据动态插入表格
2009-09-10 13:42 714<%@ page language="java ... -
js 发送邮件
2009-07-22 14:27 6983有时mailto 用起来不是很 ... -
页面分辨率问题
2009-07-22 14:10 1029今天需要给页面插入背景图片, 开始是1024*768 标准分 ... -
css 应用
2009-07-09 22:04 797用css控制的语法如下: <span styl ... -
框架说明
2009-06-25 15:05 643数据库底层交互接口,及实现类 ... -
java 按对象属性排序
2009-06-25 13:51 12531、为了尽可能少的交互数据库 2、工作中难免会遇到得到一个集 ... -
表格样式还不错
2009-06-25 13:45 722<table width="100%" ... -
js动态增加表格
2009-06-08 17:52 1267场景: 使用js 实现对表格记录的增删改 页面样式: ... -
数据类型不匹配
2009-06-08 17:42 2234报错信息: java.servlet.ServletExce ... -
物流静态网站
2009-01-16 11:59 679最近帮同事做了个静态网站,物流方面的,就当没事做着玩了 -
mysql 注意
2008-10-22 17:23 905MySql局域网连接慢的解决方法 skip-name-reso ... -
vb 发邮件
2008-10-22 15:22 1567vb 发信,代码如下 Dim sFileName ... -
jdk引入第三方jar
2008-10-22 11:52 1567要求:定时发信功能 细节:只允许装jdk 方案:定时用批处 ... -
mysql 注意
2008-09-03 09:30 723MySql局域网连接慢的解决方法 skip-name-reso ... -
js 应用
2008-08-05 14:28 678如附件1 如附件2 如附件3 -
爱上css
2008-08-04 18:15 714以前很不重视css,老板要做静态页面,时间空闲搞java开发的 ... -
编码问题
2007-07-19 17:18 1023"计算机 "转码 1. u ... -
格式化输出
2007-04-20 10:01 1364// 日期格式化输出字符串 Simple ... -
session listener
2007-02-06 17:41 1191java 代码 package com.l ...
相关推荐
.NET框架提供了一种高效的方法来生成验证码,以增强网站的安全性,防止自动化脚本或机器人进行非法操作。验证码(CAPTCHA)是一种通过图形图像显示随机字符的技术,要求用户手动输入这些字符以证明他们是人类,而...
在QT中实现随机生成验证码是一项常见的任务,通常用于用户登录验证、防止机器人操作等安全场景。验证码的目的是通过要求用户输入随机生成的一串字符或图像中的数字,来确保请求是由人类而非机器发起的。 验证码的...
页面JS生成验证码是一种常见的网页安全措施,用于防止恶意自动化脚本或机器人进行非法操作,如批量注册、恶意登录等。这种技术通常结合图像处理和JavaScript动态生成,使得每个用户看到的验证码都是独一无二的,需要...
在Java开发中,生成验证码是一项基本技能。本参考资料主要围绕Java生成中英文验证码展开,旨在帮助开发者理解并实现验证码功能。 首先,验证码的生成通常涉及到以下几个关键步骤: 1. **随机字符生成**:验证码由...
这个“随机生成验证码工具jar包”是一个Java编写的程序库,它能够帮助开发者快速地在他们的应用中集成验证码功能。让我们深入了解一下这个jar包以及与之相关的Java和jar文件的知识。 首先,Java是一个广泛使用的...
本篇将详细介绍如何在Asp.Net环境中生成验证码,以及提供的源码文件的功能。 验证码的核心原理是生成一串随机的字符串或数字,然后将其显示为图片,用户需要在输入框中正确输入图片中的内容以验证其为真人操作。Asp...
1. **随机生成验证码**:首先,我们需要创建一个函数,它能生成一个随机的字符串,长度通常为4-6位。这个字符串可以包含大小写字母和数字。可以使用Java的`Random`类和`StringBuilder`来实现。 2. **绘制图片**:...
在.NET框架中,生成验证码是一项常见的安全功能,用于防止自动化的机器人或恶意脚本进行非法操作,如批量注册、刷票等。验证码通常由一串随机的字母和/或数字组成,显示在一张图片上,用户需要正确输入才能通过验证...
验证码(CAPTCHA)是一种用于验证用户是否为人类的自动化测试技术。...以上就是使用Java生成验证码的基本流程和关键知识点。通过调整各种参数和细节,可以根据实际需求定制出更复杂、更难被机器识别的验证码系统。
本笔记将详细探讨如何使用Servlet来生成验证码。 一、验证码的原理与作用 验证码的主要目的是区分人类用户和自动化程序,通过要求用户输入图片上的文字或者完成简单的数学问题,来验证其为真实的人类。这有助于防止...
本教程主要讲解如何利用Servlet来实现动态生成验证码的功能,这对于防止机器人或恶意自动化程序在网站上进行非法操作至关重要。验证码通常由一串随机字符组成,用户需要正确输入才能完成特定操作,如注册、登录或...
在Web开发中,动态生成验证码是提高网站安全性的重要手段。JSP(JavaServer Pages)和Servlet是Java Web开发中的核心组件,它们可以协同工作来实现这个功能。 JSP是一种服务器端技术,它允许开发者将HTML代码与Java...
HTML实现,有随机生成的验证码+按钮+输入框
调用类自动生成验证码,可用于web项目的注册登录。详情看说明
在本示例中,我们关注的是使用Java编程语言来生成验证码的实践。这个"java生成验证码demo"提供了生成自定义验证码图片的方法,包括设置图片尺寸、验证码长度,以及添加各种视觉混淆元素,以增加机器识别的难度。 ...
本压缩包包含的"ASP.NET多种生成验证码方法源码"提供了多种创建验证码的技术,适用于登录验证和其他需要用户验证身份的场景。 验证码的主要目标是确保提交请求的是真实的人,而不是计算机程序。它通常要求用户输入...
在提供的文件"画验证码"中,可能包含了实现这个过程的代码示例,包括生成验证码图像的方法、绘制字符和干扰元素的逻辑,以及如何在WinForm界面中使用这些方法。分析和理解这些代码将有助于你亲手实现一个WinForm的...
在Web开发中,使用JSP(JavaServer Pages)来生成验证码图片是一种常见的方法。下面我们将详细讨论如何在JSP中实现验证码的生成。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机的字母和数字,有时...
### Struts2 生成验证码知识点解析 #### 一、引言 在Web应用程序开发中,验证码是一种常见的安全机制,用于防止自动化的恶意攻击,如垃圾邮件发送或非法登录尝试等。Struts2作为一款流行的Java Web应用框架,支持...
这个PHP动态随机生成验证码类旨在创建具有以下特点的验证码: 1. **动态生成**:验证码图片是每次请求时实时生成的,确保每次展示的验证码都是独一无二的,增加了破解的难度。 2. **纯白色填充**:背景通常采用纯...