<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
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);
//获取图形上下文
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));
//随机产生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();
//输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
out.clear();
out=pageContext.pushBody();
}catch(Exception ex){
System.out.println("哈哈!!");
}
%>
注:在进行调用时引用相应的src 的属性指向即可。
分享到:
相关推荐
"韩顺平Servlet生成验证码文件"这个主题涉及到的是在Java Web开发中使用Servlet来创建验证码的功能。 Servlet是Java编程语言中用于扩展服务器功能的接口,它可以在Web服务器上运行,处理HTTP请求并返回响应。在...
PHP 生成验证码文档。生成验证图,验证码类
首先,我们需要两个关键文件:一个ASP.NET网页(通常是.aspx文件)用于显示和生成验证码,以及一个后端处理代码(如.aspx.cs或.aspx.vb文件)用于生成随机字符串和图像。这两个文件将包含以下功能: 1. **生成随机...
本篇将详细介绍如何在Asp.Net环境中生成验证码,以及提供的源码文件的功能。 验证码的核心原理是生成一串随机的字符串或数字,然后将其显示为图片,用户需要在输入框中正确输入图片中的内容以验证其为真人操作。Asp...
页面JS生成验证码是一种常见的网页安全措施,用于防止恶意自动化脚本或机器人进行非法操作,如批量注册、恶意登录等。这种技术通常结合图像处理和JavaScript动态生成,使得每个用户看到的验证码都是独一无二的,需要...
这个“随机生成验证码工具jar包”是一个Java编写的程序库,它能够帮助开发者快速地在他们的应用中集成验证码功能。让我们深入了解一下这个jar包以及与之相关的Java和jar文件的知识。 首先,Java是一个广泛使用的...
在QT中实现随机生成验证码是一项常见的任务,通常用于用户登录验证、防止机器人操作等安全场景。验证码的目的是通过要求用户输入随机生成的一串字符或图像中的数字,来确保请求是由人类而非机器发起的。 验证码的...
本文介绍了 PHP 生成图形验证码的方法,包括验证码概念、生成验证码文件 code.php、验证码生成过程、图形验证码的优点等。图形验证码是一种简单 yet 有效的安全机制,可以防止机器人攻击和恶意攻击,提高网站或应用...
在Java开发中,生成验证码是一项基本技能。本参考资料主要围绕Java生成中英文验证码展开,旨在帮助开发者理解并实现验证码功能。 首先,验证码的生成通常涉及到以下几个关键步骤: 1. **随机字符生成**:验证码由...
在.NET框架中,生成验证码是一项常见的安全功能,用于防止自动化的机器人或恶意脚本进行非法操作,如批量注册、刷票等。验证码通常由一串随机的字母和/或数字组成,显示在一张图片上,用户需要正确输入才能通过验证...
在本主题中,我们将深入探讨如何使用Python来生成验证码图片。验证码图片是一种用于验证用户是否为人类的图像,通常包含随机生成的字母或数字,以防止机器自动操作。 首先,我们看到一个名为`codepicture.py`的文件...
例如,可能有一个`generate()`方法用于生成验证码,一个`getImageBytes()`方法用于获取验证码图像的字节数组,以及一个`validate(String input)`方法用于验证用户输入。 在提供的压缩包文件中,"cn"可能代表了包名...
在本项目中,我们可能会有一个名为`verifycode.lua`的脚本文件,其中包含了生成验证码的逻辑。Lua脚本可能包含生成随机字符串、绘制文本、颜色处理等操作。这些操作在C++中通常是复杂的,而Lua则提供了简洁的API。 ...
6. **保存和显示图像**:验证码图片可以保存为本地文件,也可以直接在Web页面上显示。对于本地保存,我们可以使用`bitmap.Save()`方法;如果要在Web应用中使用,通常会将其转换为Base64字符串。 ```csharp bitmap....
在提供的文件"画验证码"中,可能包含了实现这个过程的代码示例,包括生成验证码图像的方法、绘制字符和干扰元素的逻辑,以及如何在WinForm界面中使用这些方法。分析和理解这些代码将有助于你亲手实现一个WinForm的...
### Struts2 生成验证码知识点解析 #### 一、引言 在Web应用程序开发中,验证码是一种常见的安全机制,用于防止自动化的恶意攻击,如垃圾邮件发送或非法登录尝试等。Struts2作为一款流行的Java Web应用框架,支持...
在Web开发中,使用JSP(JavaServer Pages)来生成验证码图片是一种常见的方法。下面我们将详细讨论如何在JSP中实现验证码的生成。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机的字母和数字,有时...
java生成验证码图片的文件已完成测试
在本例中,我们讨论的是一个名为“生成验证码的DLL文件”的项目,其中包含一个DLL库(CheckCode.dll)和一个Readme.txt说明文件。DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它允许程序...
在C#中,这些功能可以封装成一个类,如`CaptchaGenerator`,包含`GenerateCaptcha`方法生成验证码图像和字符串,以及`ValidateCaptcha`方法进行验证。为了提高安全性,生成的验证码通常设置为一次性有效,即一旦被...