`
- 浏览:
64123 次
-
很早以前用的,为了防止忘记,做个记录
java 代码
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.ServletOutputStream;
-
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
-
- import com.sun.image.codec.jpeg.JPEGCodec;
- import com.sun.image.codec.jpeg.JPEGImageEncoder;
-
- import java.awt.*;
- import java.awt.image.*;
- import java.util.*;
-
- public class ImageServlet
- extends HttpServlet {
-
- public void doGet(HttpServletRequest request, HttpServletResponse response) throws
- ServletException, IOException {
- response.reset();
- response.setContentType("image/jpeg");
- response.setHeader("Pragma", "No-cache");
- response.setHeader("Cache-Control", "no-cache");
- response.setDateHeader("Expires", 0);
-
-
- int width = 58, height = 18;
- BufferedImage image = new BufferedImage(width, height,
- BufferedImage.TYPE_INT_RGB);
-
-
- Graphics g = image.getGraphics();
-
-
- Random random = new Random();
-
-
- g.setColor(new Color(201 + random.nextInt(50), 201 + random.nextInt(50),
- 201 + random.nextInt(50)));
- g.fillRect(0, 0, width, height);
-
-
- g.setFont(new Font("Times new Roman", Font.PLAIN, 18));
-
-
-
-
-
-
- g.setColor(new Color(160 + random.nextInt(41), 160 + random.nextInt(41),
- 160 + random.nextInt(41)));
- 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 i = 0; i < 4; i++) {
- String rand = String.valueOf(random.nextInt(10));
- sRand += rand;
-
-
- g.setColor(new Color(20 + random.nextInt(111), 20 + random.nextInt(111),
- 20 + random.nextInt(111)));
-
-
- g.drawString(rand, 13 * i + 6, 16);
- }
- HttpSession session = null;
-
- session = request.getSession(true);
-
-
- session.setAttribute("rand", sRand);
-
-
- g.dispose();
-
-
-
-
- ServletOutputStream out = response.getOutputStream();
- JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
- encoder.encode(image);
- out.close();
- }
- }
-
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本项目重点在于使用JSP(Java Server Pages)技术自动生成彩色验证码,为用户提供一个视觉上更友好的验证体验。下面我们将深入探讨这个主题。 首先,验证码通常由一组随机字符组成,这些字符可以是数字、字母或其他...
总之,Java生成彩色验证码涉及图像处理、随机数生成、颜色操作以及安全性设计等多个方面,是Web开发中一个有趣的实践案例。通过不断优化验证码的复杂度和安全性,我们可以有效防止自动化攻击,保护用户的账户安全。
**JSP为登录生成彩色验证码** 在Web应用中,验证码是一种常见的安全机制,用于防止自动化的机器人或恶意软件进行非法操作,例如批量注册、频繁登录等。本篇将详细介绍如何在JSP环境下创建一个彩色的验证码,以提高...
在这个提供的压缩包中,包含的是一个基于Java实现的彩色验证码生成与验证的功能代码,适用于网页安全验证,防止自动机器人或恶意攻击。验证码通常由随机字符组成,目的是确保用户是人类而非自动化程序。 1. **彩色...
在这个"JSP生成彩色验证码程序例子"中,我们将深入探讨如何利用JSP实现一个功能丰富的彩色验证码生成器。 验证码的主要目的是为了防止自动机器人或恶意脚本进行非法操作,例如防止垃圾邮件、注册机等。它通过显示一...
在类中定义了图像的宽度和高度,并在`service`方法中初始化了一个`BufferedImage`对象,用以存储生成的彩色验证码图片。 ```java private int width = 60; private int height = 20; protected void service...
彩色验证码: 1.原理:随机生成一个包含字符串的图片,用户读取图片中的字符信息,将其输入到指定文本框中,随着登录或者注册功能的提交将其传递给服务器进行验证处理。 2.作用:防止通过程序进行批量注册或者暴力...
2. **图像处理**:生成彩色验证码需要对图像进行处理。这包括创建一个随机的字符串(通常包含字母和数字),将这些字符以特定方式绘制到图像上,使用不同的颜色、字体和旋转角度以增加识别难度。 3. **色彩选择**:...
在Web开发中,JSP(JavaServer Pages)作为服务器端脚本语言,常被用来生成动态的彩色验证码。本源码就是一种实现JSP彩色验证码的方法,旨在帮助开发者快速构建具有高安全性和视觉吸引力的验证码功能。 首先,我们...
标题"jcaptcha做jsp彩色验证码"即指使用jCaptcha库在JSP应用中生成彩色的验证码图片。 首先,我们需要引入jCaptcha的相关依赖。在这个案例中,我们看到压缩包内的"jcaptcha-all-1[1].0-RC6.jar"就是jCaptcha的核心...
以下是一个简单的示例代码,展示如何使用Jcaptcha生成一个彩色验证码: ```java import com.octo.captcha.component.image.backgroundgenerator.RandomListBackgroundGenerator; import ...
验证码的作用:有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,腾讯的QQ社区),我们利用比较简易的方式...
2. **颜色生成**:为了创建彩色验证码,我们需要为每个字符分配一个随机的颜色。Java的`Color`类可以用来创建不同颜色的对象,通过设置红色、绿色和蓝色分量的随机值。 3. **图像创建**:使用Java的`BufferedImage`...
在本文中,我们将深入探讨两种重要的Web开发技术:JSP分页和彩色验证码。JSP(JavaServer Pages)是Java平台上的动态网页技术,而这两项功能是提高用户体验和网站安全性的关键要素。 首先,我们来关注JSP分页技术。...
在这个验证码项目中,JSP用于生成和展示彩色验证码图像。 **验证码的实现原理** 1. **随机生成数字或字母**:首先,我们需要生成一个随机的字符串,这个字符串将作为验证码的内容。可以使用Java的`Random`类配合...
综上所述,JSP彩色验证码的实现结合了JSP的动态页面生成能力,Java的图形处理技术以及随机数生成,旨在提供一个安全的用户验证机制,防止自动化攻击。理解和掌握这些知识点,对于进行Web开发和提升网站安全性至关...
总结来说,"jsp彩色文字验证码"是使用JSP和Java图形处理技术创建的一种安全机制,通过随机生成彩色、扭曲的文字来防止恶意自动化操作。开发者需要理解图形库的使用、随机数生成、字体处理以及服务器端验证等概念,...
本项目“Jsp-color-code.rar”关注的是使用Java和JSP技术生成彩色汉字验证码,这涉及到多个关键知识点,下面将详细阐述。 首先,Java验证码的实现通常基于Servlet和JSP技术。Servlet是Java服务器端编程的基础,可以...
本文将深入探讨如何在JSP中生成一种混合数字和字母的彩色验证码。 首先,验证码的核心在于生成随机字符串。在Java中,我们可以使用`java.util.Random`类生成随机数,结合`Character`类来获取随机的字母和数字。通常...
首先,第一种验证方法是英文、数字和中文混合的彩色验证码。这种验证码设计考虑了多种字符类型,增加了机器识别的难度,因为机器学习算法对于中文字符的识别通常比英文和数字更困难。同时,彩色的背景和字符增加了...