返回顶部
首页 > 资讯 > 精选 >利用Java 编写一个随机生成验证码功能
  • 722
分享到

利用Java 编写一个随机生成验证码功能

javaava验证码 2023-05-31 15:05:06 722人浏览 泡泡鱼
摘要

这篇文章给大家介绍利用Java 编写一个随机生成验证码功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java 实现随机验证码功能简单实例现在许多系统的注册、登录或者发布信息模块都添加的随机码功能,就是为了避免自动注

这篇文章给大家介绍利用Java 编写一个随机生成验证码功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Java 实现随机验证码功能简单实例

现在许多系统的注册、登录或者发布信息模块都添加的随机码功能,就是为了避免自动注册程序或者自动发布程序的使用。

验证码实际上就是随机选择一些字符以图片的形式展现在页面上,如果进行提交操作的同时需要将图片上的字符同时提交,如果提交的字符与服务器session保存的不同,则认为提交信息无效。为了避免自动程序分析解析图片,通常会在图片上随机生成一些干扰线或者将字符进行扭曲,增加自动识别的难度。

在这里,我们使用servlet来实现随机验证码的实现。

 实现代码:

package com.servlet;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.util.Random;import javax.imageio.ImageIO;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;public class ValidateCodeServlet extends HttpServlet { private static final long serialVersionUID = 1L;  //验证码图片的宽度。  private int width=60;  //验证码图片的高度。  private int height=20;  //验证码字符个数  private int codeCount=4;      private int x=0;  //字体高度  private int fontHeight;    private int codeY;    char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',  'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',  'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };      public void init() throws ServletException {   //从WEB.xml中获取初始信息   //宽度 String strWidth=this.getInitParameter("width"); //高度 String strHeight=this.getInitParameter("height"); //字符个数 String strCodeCount=this.getInitParameter("codeCount");   //将配置的信息转换成数值 try {  if(strWidth!=null && strWidth.length()!=0)  {  width=Integer.parseInt(strWidth);  }  if(strHeight!=null && strHeight.length()!=0)  {  height=Integer.parseInt(strHeight);  }  if(strCodeCount!=null && strCodeCount.length()!=0)  {  codeCount=Integer.parseInt(strCodeCount);  } } catch(NumberFORMatException e) {}  x=width/(codeCount+1); fontHeight=height-2; codeY=height-4;  }    protected void service(HttpServletRequest req, HttpServletResponse resp)  throws ServletException, java.io.IOException {      //定义图像buffer BufferedImage buffImg = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); Graphics2D g = buffImg.createGraphics(); //创建一个随机数生成器类 Random random = new Random(); //将图像填充为白色 g.setColor(Color.WHITE); g.fillRect(0, 0, width, height); //创建字体,字体的大小应该根据图片的高度来定。 Font font = new Font("Fixedsys", Font.PLaiN, fontHeight); //设置字体。 g.setFont(font); //画边框。 g.setColor(Color.BLACK); g.drawRect(0, 0, width - 1, height - 1); //随机产生160条干扰线,使图象中的认证码不易被其它程序探测到。 g.setColor(Color.BLACK); for(int i = 0; i < 160; 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); } //randomCode用于保存随机产生的验证码,以便用户登录后进行验证。 StringBuffer randomCode = new StringBuffer(); int red = 0, green = 0, blue = 0; //随机产生codeCount数字的验证码。 for (int i = 0; i < codeCount; i++) {  //得到随机产生的验证码数字。  String strRand = String.valueOf(codeSequence[random.nextInt(36)]);  //产生随机的颜色分量来构造颜色值,这样输出的每位数字的颜色值都将不同。  red = random.nextInt(255);  green = random.nextInt(255);  blue = random.nextInt(255);  //用随机产生的颜色将验证码绘制到图像中。  g.setColor(new Color(red, green, blue));  g.drawString(strRand, (i + 1) * x, codeY);  //将产生的四个随机数组合在一起。  randomCode.append(strRand); } // 将四位数字的验证码保存到Session中。 HttpSession session = req.getSession(); session.setAttribute("validateCode", randomCode.toString()); // 禁止图像缓存。 resp.setHeader("Pragma", "no-cache"); resp.setHeader("Cache-Control", "no-cache"); resp.setDateHeader("Expires", 0); resp.setContentType("image/jpeg"); //将图像输出到Servlet输出流中。 ServletOutputStream sos = resp.getOutputStream(); ImageIO.write(buffImg, "jpeg", sos); sos.close(); }}

--结束END--

本文标题: 利用Java 编写一个随机生成验证码功能

本文链接: https://lsjlt.com/news/226696.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 利用Java 编写一个随机生成验证码功能
    这篇文章给大家介绍利用Java 编写一个随机生成验证码功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java 实现随机验证码功能简单实例现在许多系统的注册、登录或者发布信息模块都添加的随机码功能,就是为了避免自动注...
    99+
    2023-05-31
    java ava 验证码
  • 利用Java编写一个验证码生成功能
    本篇文章为大家展示了利用Java编写一个验证码生成功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体方法如下:package com.SM_test.utils; import java.awt...
    99+
    2023-05-31
    java ava
  • 使用java编写一个验证码生成功能
    使用java编写一个验证码生成功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java 验证码的生成实现所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片, 图片里...
    99+
    2023-05-31
    java ava
  • 利用Java如何实现一个随机生成动态验证码功能
    利用Java如何实现一个随机生成动态验证码功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言相对来说呢,jpg格式的相对来说容易破解一点,当然也取决于你的干扰元素,元素...
    99+
    2023-05-31
    java 动态 验证码
  • Python3 生成一个随机验证码
    '''设计一个八位随机验证码,验证码是由大写字母,小写字母和数字三种字符组成。定义一个范围只有1,2,3的随机数,如果这个随机数是1,则八位验证码的当前位置用大写字母;                            如果这个随机数是...
    99+
    2023-01-31
    验证码
  • 使用Java怎么生成一个随机验证码
    这篇文章将为大家详细讲解有关使用Java怎么生成一个随机验证码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。源代码:RandomGen.java(实现产生验证码功能的类)package ve...
    99+
    2023-05-31
    java ava
  • 利用java如何实现一个验证码生成功能
    利用java如何实现一个验证码生成功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、serialVersionUID    private...
    99+
    2023-05-31
    java 验证码 ava
  • js如何随机生成一个验证码
    这篇文章给大家分享的是有关js如何随机生成一个验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果:html代码:<p>验证码:</p>  ...
    99+
    2024-04-02
  • 利用Python生成随机4位验证码
    """            作者:白            时间:2018年1月8日            功能: 生成随机4位验证码(必须由两个2字母和2个数字组成) """ import  random def main():   ...
    99+
    2023-01-31
    验证码 Python
  • 利用Python生成随机验证码详解
    目录1.先搞环境2.开始码代码3. 加干扰4. 加入更多的干扰5. 验证码 + 随机字符6. 验证码保存本地(选)最近感觉被大数据定义成机器人了,随便看个网页都跳验证码。 怎么用p...
    99+
    2024-04-02
  • android端实现验证码随机生成功能
    本文实例为大家分享了android端生成随机验证码的具体代码,供大家参考,具体内容如下package com.nobeg.util; import java.util.Random; import android.graphics.Bi...
    99+
    2023-05-30
    android 验证码 roi
  • 如何在Java中利用patchca实现一个验证码生成功能
    本篇文章为大家展示了如何在Java中利用patchca实现一个验证码生成功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下: @RequestMapping(value = {"...
    99+
    2023-05-31
    java patchca ava
  • php怎么能随机生成验证码
    这篇文章给大家分享的是有关php怎么能随机生成验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:<phpclass functions{    ...
    99+
    2023-06-15
  • java实现随机验证码图片生成
    本文实例为大家分享了java生成随机验证码图片的具体代码,供大家参考,具体内容如下 1.controller @GetMapping(value = "/getRan...
    99+
    2024-04-02
  • java随机验证码生成实现实例代码
    java随机验证码生成实现实例代码摘要: 在项目中有很多情况下都需要使用到随机验证码,这里提供一个java的随机验证码生成方案,可以指定难度,生成的验证码可以很方便的和其他组件搭配之前要使用一个生成随机验证码的功能,在网上找了一下,有很多的...
    99+
    2023-05-31
    java 随机 验证码
  • 利用java实现验证码生成并完成验证
    利用java实现验证码生成并完成验证?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java 制作验证码并进行验证实例详解在注册、登录的页面上经常会出现验证码,为...
    99+
    2023-05-31
    java 验证码 ava
  • 利用java实现一个web页面校验验证码功能
    利用java实现一个web页面校验验证码功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。验证码生成器:import javax.imageio.ImageIO...
    99+
    2023-05-31
    java 验证码 ava
  • java怎么实现随机验证码图片生成
    这篇文章主要介绍“java怎么实现随机验证码图片生成”,在日常操作中,相信很多人在java怎么实现随机验证码图片生成问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么实现随机验证码图片生成”的疑惑有所...
    99+
    2023-06-25
  • JAVA怎么实现随机生成四位验证码
    Java可以使用Random类来实现随机生成四位验证码。下面是一个示例代码:```javaimport java.util.Rand...
    99+
    2023-08-09
    JAVA
  • Python使用PIL模块生成随机验证码
    Python生成随机验证码,需要使用PIL模块,具体内容如下 安装: pip3 install pillow 基本使用 1. 创建图片 from PIL import Image img = I...
    99+
    2022-06-04
    验证码 模块 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作