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

jsp生成随机图片的小程序(转)

    博客分类:
  • WEB
 
阅读更多

<%@ 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);
        }
%>
<%
//设置页面不缓存
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();

// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());


%>

分享到:
评论

相关推荐

    JSP 随机验证码

    总的来说,JSP生成的数字验证码结合了Java的强大功能和网页的交互性,提供了一种简单而有效的用户验证方法。在开发过程中,确保验证码的安全性和用户体验是至关重要的。通过对验证码的不断刷新和复杂化设计,我们...

    JSP随机验证码实例源码

    1. **生成随机字符串**: - 在Java中,`java.util.Random` 类可用于生成随机数,我们可以基于这个类创建一个包含字母和数字的随机字符串。例如,我们可以设定字符串长度为4,包含大小写字母和数字,这样生成的...

    JSP生成彩色验证码程序

    1. **生成随机字符串**:首先,我们需要在服务器端生成一个随机字符串,通常包含4-6个字母或数字。这可以通过Java的`Random`类和`StringBuilder`类实现。 2. **绘制验证码图像**:使用Java的`Graphics2D`类来绘制...

    JSP中利用Servlet生成验证码图片

    // 生成随机字符串并绘制到图片上 g.drawString(getRandomString(request), 5, 20); // 清理资源 g.dispose(); bi.flush(); // 输出流 OutputStream outPut = response.getOutputStream(); ...

    JSP生成图片验证码

    在这个特定的案例中,我们讨论的是如何使用JSP生成图片验证码,这是一种常见的安全机制,用于防止自动机器人或恶意用户进行非法操作。 验证码的主要目的是验证用户是否为真实的人,而不是机器。它通常是一串随机...

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

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

    生成验证码 jsp 图片验证码

    验证码通常包含一串随机生成的字母和数字,显示在一张图片上,用户需要输入看到的文字以证明他们不是计算机程序。这样,只有人类能够完成验证,而机器由于无法识别图片中的文本,因此无法自动完成任务。 在JSP...

    jsp验证码图片例子

    以上就是使用JSP生成验证码图片的基本原理和实现流程。在实际应用中,还可以结合其他安全措施,比如限制用户尝试次数、使用滑动验证等,进一步提高系统的安全性。同时,随着技术的发展,验证码的形式也在不断进化,...

    JSP实现验证码数字图片

    以上就是使用JSP生成数字验证码图片的基本流程。在实际应用中,可以根据需求进行优化,例如增加字母、大小写字母,或者使用更复杂的噪声模式。通过这种方式,我们可以创建出一个既安全又易于集成的验证码系统,有效...

    JSP生成文字验证码

    ### JSP生成文字验证码知识点详解 #### 一、概述 本文档主要介绍了一种使用Java Server Pages(JSP)技术生成文字验证码的方法。验证码是一种防止机器自动填写表单的有效手段,广泛应用于用户登录、注册等场景,以...

    教你如何使用jsp生成彩色汉字验证码的源码

    ### 如何使用JSP生成彩色汉字验证码的源码详解 #### 概述 在网站的安全验证环节中,验证码是常见的防止机器自动填写表单的一种手段。本文将详细介绍如何使用Java Server Pages (JSP) 技术来生成彩色的汉字验证码。...

    JSP_validate.rar_Go_ Go_ Go!_jsp_jsp 图片 验证_jsp 验证码_验证码

    1. **生成随机数字**:在服务器端,我们需要一个函数来生成4个随机数字。这可以通过Java的`Random`类来完成,生成指定范围内的整数。 2. **绘制数字图像**:使用Java的图形库(如`java.awt`和`javax.imageio`),...

    JSP上传图片

    3. **文件名重命名**:为上传的文件生成随机或唯一的新名称,防止文件覆盖或恶意利用已知文件名进行攻击。 4. **安全性扫描**:可以使用安全检测工具,如"扫描SQL注射与XSS攻击的牛B工具.exe",对上传的文件进行检查...

    java随机生成验证码

    验证码是一种安全机制,它要求用户输入显示在图片中的随机字符,以验证用户是真实的人而不是自动化程序。以下是一个简单的Java验证码生成的实现,包括了四个随机数字和杂乱背景的图片生成过程: 1. **设置页面类型...

    JSP编写的四位验证码

    - 定义了一个方法`getRandColor`用于生成随机颜色,通过给定的前背景色范围来创建颜色对象。 - 设置HTTP响应头,确保图像不会被浏览器缓存,以防止重复使用同一张验证码图片。 - 创建一个60x20像素大小的`...

    Java B/S 抽奖程序

    2. **抽奖逻辑模块**:这是程序的核心,负责生成随机结果。Java提供了`java.util.Random`类来生成随机数,开发者可以根据具体需求设定抽奖规则,如概率分配、限制次数等。 3. **数据库交互模块**:存储和管理参与者...

    JSP编程小技巧-已整理 (例:文件上传,图片验证码,JSP标准动作.....)

    在JSP中,可以结合Servlet和Java图形库(如Java2D)生成随机的字符组合,并将其转化为图片。服务器端会存储这个随机字符串作为用户输入验证的参考,客户端则显示图片并让用户输入看到的验证码。图片的刷新可以通过...

    一个jsp 数字验证码的代码

    - **随机数生成**:在JSP中,我们可以使用`java.util.Random`类来生成随机整数,作为验证码的数字部分。 - **图像创建**:使用Java的`java.awt`和`javax.imageio`包,可以创建一个新的图像并绘制数字到图像上。这...

    JSP随机验证图片如何制作

    首先,我们需要创建一个Java类来生成随机字符串和绘制图片。在这个例子中,`TokenUtil` 类是关键,它包含了生成随机字符串和创建BufferedImage对象的方法。`base` 变量包含了一个字符集,用于生成随机字符串。`...

    jsp文件动态验证码

    (1) **生成随机字符串**:首先,我们需要创建一个函数,该函数使用Java的`Random`类或`SecureRandom`类生成一组随机的字符串或数字。可以设定字符串的长度,通常为4-6位。 ```java String randomStr = ""; Random ...

Global site tag (gtag.js) - Google Analytics