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

数字验证码小图生成程序

    博客分类:
  • Java
阅读更多
做了一个登陆验证码的生成小程序,或许对大家有用。支持背景图和文字旋转
java 代码
 
  1. import java.awt.Color;  
  2. import java.awt.Font;  
  3. import java.awt.Graphics2D;  
  4. import java.awt.image.BufferedImage;  
  5. import java.io.File;  
  6. import java.io.IOException;  
  7. import java.util.Date;  
  8. import java.util.Random;  
  9.   
  10. import javax.imageio.ImageIO;  
  11. import javax.servlet.ServletException;  
  12. import javax.servlet.http.HttpServletRequest;  
  13. import javax.servlet.http.HttpServletResponse;  
  14.   
  15. import com.sun.image.codec.jpeg.JPEGCodec;  
  16. import com.sun.image.codec.jpeg.JPEGEncodeParam;  
  17. import com.sun.image.codec.jpeg.JPEGImageEncoder;  
  18.   
  19. /** 
  20. * Servlet implementation class for Servlet: ImageGenerator 
  21. * 
  22. */  
  23. public class ImageGenerator extends javax.servlet.http.HttpServlet implements  
  24. javax.servlet.Servlet {  
  25. protected void doGet(HttpServletRequest request,  
  26. HttpServletResponse response) throws ServletException, IOException {  
  27. response.setContentType("image/jpeg"); // 必须设置ContentType为image/jpeg  
  28. int length = 4// 设置默认生成4个数字  
  29. Date d = new Date();  
  30. long lseed = d.getTime();  
  31. Random r = new Random(lseed); // 设置随机种子  
  32. if (request.getParameter("length") != null) {  
  33. try {  
  34. length = Integer.parseInt(request.getParameter("length"));  
  35. catch (NumberFormatException e) {  
  36. }  
  37. }  
  38.   
  39. // 可以在此加入保存验证码的代码  
  40. // 创建内存图像  
  41. BufferedImage bi = ImageIO.read(new File(this.getServletContext().getRealPath("./imgc.jpg")));  
  42. //可以在上面读入一个背景图,然后在背景图上写数字  
  43.   
  44. Graphics2D g = bi.createGraphics();  
  45. g.setColor(Color.CYAN);  
  46. g.setFont(new Font(null, Font.BOLD, 15));  
  47. //旋转  
  48. double rot;  
  49.   
  50. for (int i = 0; i < length; i++) {  
  51. g.drawString(String.valueOf(r.nextInt(9)), bi.getWidth()/4 + i * 15, bi.getHeight()/2);  
  52. rot = r.nextDouble() * 0.1;  
  53. if(r.nextBoolean())  
  54. rot = -1 * rot;  
  55. g.rotate(rot);  
  56. }  
  57.   
  58. try {  
  59. // 使用JPEG编码,输出到response的输出流  
  60. JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response  
  61. .getOutputStream());  
  62. JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);  
  63. param.setQuality(1.0f, false);  
  64. encoder.setJPEGEncodeParam(param);  
  65. encoder.encode(bi);  
  66. catch (Exception ex) {  
  67. }  
  68. }  
  69. }  

自己配置一下背景图片的位置就可以了
分享到:
评论

相关推荐

    一个小的验证码图片生成程序

    这个"一个小的验证码图片生成程序"是为VC6.0编写的,VC6.0是Microsoft Visual C++ 6.0的简称,是一款经典的Windows平台下的C++集成开发环境。 验证码图片生成程序的核心原理在于创建随机且难以被机器识别的图像。...

    JSP生成数字验证码程序例子

    在这个"JSP生成数字验证码程序例子"中,我们将探讨如何利用JSP来生成一种常见的安全机制——数字验证码。 验证码的主要目的是防止自动化程序(如机器人或爬虫)进行非法操作,比如注册、登录或提交表单。它们通常...

    Windows版验证码生成程序

    本程序是采用Windows GDI+技术模拟Web上的验证码生成而设计的一款Windows版验证码随机生成程序,利用GDI+图形图像处理技术,可随机生成强验证码(即汉字验证码)或弱验证码(即数字和字母组合验证码),支持验证码的...

    验证码随机生成数字类

    通过理解和使用这个类,开发者可以快速集成安全的随机数字验证码到自己的应用程序中,增强系统的安全性。 总的来说,验证码随机生成数字类涉及了随机数生成、图像处理、颜色操作以及网络通信等多个方面的知识。理解...

    验证码图片生成器,java源码

    数字验证码通常由纯数字组成,字母验证码包含大小写字母,数字字母混合验证码则是两者的组合,而图形验证码则是在一张图片上嵌入随机字符,用户需要识别并输入字符内容。这种Java验证码生成器可能支持这些不同的...

    自动生成验证码的小程序 VB

    【VB实现验证码生成小程序】 验证码(CAPTCHA)是一种防止机器自动操作的安全机制,通常用于网站登录、注册等场景,防止恶意脚本或机器人攻击。在VB(Visual Basic)环境中,我们可以利用图形处理技术来创建一个...

    PHP验证码图片生成程序

    在PHP中,我们可以创建一个验证码图片生成程序来实现这一功能。下面将详细介绍PHP验证码图片生成的核心知识点以及如何实现。 1. **随机字符串生成** - 在验证码程序中,首先需要生成一组随机的字符序列,通常包含...

    VC数字验证码识别程序

    在数字验证码中,通常会显示一串随机生成的数字,用户需要正确输入这些数字才能继续操作。由于这些数字通常会被扭曲、倾斜或添加噪声,因此对计算机来说识别起来具有一定的挑战性。 神经网络在验证码识别中的应用...

    随机验证码的生成程序

    在ASP.NET框架中,C#语言被广泛用于编写这种验证码生成器。本篇文章将深入探讨验证码的生成原理、实现方式以及涉及到的相关知识点。 首先,验证码的核心是生成不可预测的、难以被机器识别的字符串。在描述中提到,...

    易语言验证码图片生成

    验证码图片生成技术是一种常见的安全措施,...在实际应用中,开发者可能会结合这些基本功能,编写出符合项目需求的完整验证码生成程序。通过易语言,初学者也能快速理解验证码的生成原理,并动手实现自己的验证码系统。

    C++ 调用 lua生成验证码图片 简单控制台程序(vs2008编译)

    总结来说,这个项目提供了C++与lua结合的实例,展示了如何在C++控制台程序中调用lua脚本生成验证码图片,对理解两者之间的交互机制以及验证码生成原理有很好的实践意义。对于学习者,这是一个动手实践的好机会,可以...

    基于MATLAB的数字验证码识别系统设计与实现

    数字验证码识别系统旨在通过算法自动识别这些随机生成的数字组合,这对于机器学习和计算机视觉领域具有重要意义。 在构建基于MATLAB的数字验证码识别系统时,我们首先需要进行以下几个关键步骤: 1. **数据预处理*...

    .net 生成 验证码 验证图片

    可以通过定义字符集(包含大小写字母和数字)并从中随机选取来创建验证码字符串。 2. **创建图片**:使用`System.Drawing`命名空间中的`Bitmap`类创建一个新的图片对象。设置图片的宽度和高度,通常验证码图片的...

    php 随机生成数字验证码

    在PHP中,生成随机数字验证码是一项常见的功能,用于网站的安全验证,例如登录、注册或防止自动机器人操作。验证码的主要目的是确保用户是人类而非自动化程序。接下来,我们将详细探讨如何使用PHP来实现这一功能。 ...

    c#生成图形验证码 一图片的形式生成验证码

    在C#编程语言中,我们可以创建自己的图形验证码生成器。下面我们将详细探讨如何用C#来实现这一功能。 首先,我们需要引入必要的库。在C#中,我们通常会使用System.Drawing命名空间,因为它包含了创建和操作图像所需...

    数字验证码练习工具.rar

    《Java数字验证码练习工具详解与应用》 在信息技术领域,验证码是一种常见的安全机制,用于防止自动化的机器人程序或恶意攻击者进行非法操作。本篇将详细介绍一个基于Java开发的数字验证码练习工具,它旨在帮助用户...

    简单的验证码生成程序

    根据给定的信息,本文将详细解释一个简单的验证码生成程序的核心逻辑与实现方法。该程序主要应用于Web应用中,用于防止机器人的自动填写表单或进行其他自动化操作。 ### 验证码生成程序概述 该程序名为`...

    .net 生成验证码 代码 页面

    例如,生成一个4位数字验证码的代码可能如下所示: ```csharp Random random = new Random(); string captchaText = ""; for (int i = 0; i ; i++) { captchaText += random.Next(10).ToString(); } ``` 2. **...

    生成java登陆验证码的小程序

    在Java编程语言中,我们可以创建一个小程序来生成登录页面的验证码。这个程序通常涉及到几个关键知识点,包括图像处理、随机数生成、字符编码以及与Web交互。 1. 图像处理: - `java.awt` 和 `java.awt.image` 包...

    随机生成验证码,支持大小写字母、数字

    java随机产生验证码,可以随机生成数字、大写字母、小写字母。还可以随机生成文字字体、及大小。在图片上面可能字体都不不同、大小不等。

Global site tag (gtag.js) - Google Analytics