iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >利用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://www.lsjlt.com/news/226696.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用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+
    2022-10-19
  • android端实现验证码随机生成功能
    本文实例为大家分享了android端生成随机验证码的具体代码,供大家参考,具体内容如下package com.nobeg.util; import java.util.Random; import android.graphics.Bi...
    99+
    2023-05-30
    android 验证码 roi
  • 利用Python生成随机验证码详解
    目录1.先搞环境2.开始码代码3. 加干扰4. 加入更多的干扰5. 验证码 + 随机字符6. 验证码保存本地(选)最近感觉被大数据定义成机器人了,随便看个网页都跳验证码。 怎么用p...
    99+
    2022-11-13
  • 利用Python生成随机4位验证码
    """            作者:白            时间:2018年1月8日            功能: 生成随机4位验证码(必须由两个2字母和2个数字组成) """ import  random def main():   ...
    99+
    2023-01-31
    验证码 Python
  • 如何在Java中利用patchca实现一个验证码生成功能
    本篇文章为大家展示了如何在Java中利用patchca实现一个验证码生成功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下: @RequestMapping(value = {"...
    99+
    2023-05-31
    java patchca ava
  • 利用java实现一个web页面校验验证码功能
    利用java实现一个web页面校验验证码功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。验证码生成器:import javax.imageio.ImageIO...
    99+
    2023-05-31
    java 验证码 ava
  • 使用java如何生成一个验证码图片
    本文章向大家介绍使用java如何生成一个验证码图片的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程...
    99+
    2023-06-06
  • 使用Spring Boot怎么样实现一个验证码生成功能
    这篇文章给大家介绍使用Spring Boot怎么样实现一个验证码生成功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、验证码生成类import java.awt.*;import java.awt.image.Bu...
    99+
    2023-05-31
    springboot spring boo
  • 利用java编写一个留言板功能
    本篇文章为大家展示了利用java编写一个留言板功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JSP+JavaBean的留言板技术<span >Messages.html <HT...
    99+
    2023-05-31
    java 留言板 ava
  • 利用Java怎么实现一个验证身份证功能
    这期内容当中小编将会给大家带来有关利用Java怎么实现一个验证身份证功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:package org.cxy.csdn.example;import ja...
    99+
    2023-05-31
    java ava
  • Python利用wxPython制作一个有趣的验证码生成器
    目录1.引言2.正文3.实例分析4.总结1.引言 2.正文 CAPTCHA的应用场景主要是在需要验证用户身份或者防止恶意攻击的场景中,下面列举几个常见的应用场景: 用户登录验证:在...
    99+
    2023-05-18
    Python wxPython制作验证码生成器 Python 验证码生成器 Python 验证码 Python wxPython
  • 利用Swing如何实现一个动态验证码功能
    利用Swing如何实现一个动态验证码功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。code代码如下:import java.awt.Color; import java...
    99+
    2023-05-31
    swing 验证码
  • 利用Java怎么编写一个倒计时功能
    利用Java怎么编写一个倒计时功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.简易方式实现 import java.util.*; import java...
    99+
    2023-05-31
    java ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作