iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java web开发之servlet图形验证码功能的实现
  • 944
分享到

java web开发之servlet图形验证码功能的实现

javawebservlet 2023-05-30 20:05:26 944人浏览 八月长安
摘要

一 验证码的由来在WEB项目开发中,为了防止部分人使用自动工具(如:自动注册机)等进行批量的数据处理,在不同的功能节点部分,添加了验证码进行验证,达到对自动软件的屏蔽效果最经典的应用如:网站注册图形验证码;接下来,通过java技术,结合se

一 验证码的由来

WEB项目开发中,为了防止部分人使用自动工具(如:自动注册机)等进行批量的数据处理,在不同的功能节点部分,添加了验证码进行验证,达到对自动软件的屏蔽效果

最经典的应用如:网站注册图形验证码;接下来,通过java技术,结合servlet实现一个网站注册需要的图形验证码程序,提供大家参考。

二 实现注册页面图形验证码效果

创建web项目:java_servlet_verifyimg

创建自动生成图形验证码的控制器——VerifyImgServlet

package com.phome.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.Http.httpservlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class VerifyImgServlet extends HttpServlet {  private static final long serialVersionUID = 1L; // 设置随机字符字典。其中不包含0,o,1,I等难以辨认的字符 public static final char[] CHARS = { '2', '3', '4', '5', '6', '7', '8',   '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M',   'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a',   'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p',   'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' }; public static Random random = new Random(); // 随机数对象 public static String getRandomString() {  StringBuffer buffer = new StringBuffer(); // 字符串缓存  for (int i = 0; i < 6; i++) // 六次循环获取字符  {   buffer.append(CHARS[random.nextInt(CHARS.length)]); // 每次随机取一个字符  }  return buffer.toString(); } public static Color getRandomColor() {  return new Color(random.nextInt(255), random.nextInt(255),    random.nextInt(255)); } public static Color getReverseColor(Color c) {  return new Color(255 - c.getRed(), 255 - c.getGreen(),    255 - c.getBlue()); } public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  response.setContentType("image/jpeg"); // 设置输出类型 不可省略  String randomString = getRandomString(); // 调用生成随机字符串方法获取并接受随机字符串  request.getSession(true).setAttribute("randomString", randomString); // 将字符串存储到Session中  int width = 100; // 图片宽度  int height = 30; // 图片高度  Color color = getRandomColor(); // 获取随机颜色 用于背景色  Color reverse = getReverseColor(color); // 反色 用于前景色  BufferedImage bi = new BufferedImage(width, height,    BufferedImage.TYPE_INT_RGB); // 创建一个彩色图片  Graphics2D g = bi.createGraphics(); // 获取绘图对象  g.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16)); // 设置字体  g.setColor(color); // 设置颜色  g.fillRect(0, 0, width, height); // 绘制背景  g.setColor(reverse); // 设置颜色  g.drawString(randomString, 18, 20); // 绘制随机字符  for (int i = 0, n = random.nextInt(100); i < n; i++) // 画最多一百个噪音点  {   g.drawRect(random.nextInt(width), random.nextInt(height), 1, 1); // 随机噪音点  }  ServletOutputStream out = response.getOutputStream(); // 好像是获取输出流  JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); // 编码器  encoder.encode(bi); // 对图片进行编码  out.flush(); // 输出到客户端 } public void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  this.doGet(request, response); }}

--结束END--

本文标题: java web开发之servlet图形验证码功能的实现

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

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

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

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

下载Word文档
猜你喜欢
  • java web开发之servlet图形验证码功能的实现
    一 验证码的由来在web项目开发中,为了防止部分人使用自动工具(如:自动注册机)等进行批量的数据处理,在不同的功能节点部分,添加了验证码进行验证,达到对自动软件的屏蔽效果最经典的应用如:网站注册图形验证码;接下来,通过java技术,结合se...
    99+
    2023-05-30
    java web servlet
  • Java实现图片验证码功能
    简介 在实现登录功能时,一般为了安全都会设置验证码登录,为了防止某个用户用特定的程序暴力破解方式进行不断的尝试登录。常见验证码分为图片验证码和短信验证码,还有滑动窗口模块和选中指定物...
    99+
    2022-11-13
  • Java实战之用Spring开发条形码和验证码
    一、条形码 代码如下: import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage;...
    99+
    2022-11-12
  • 使用.Net Core实现的一个图形验证码功能
    SimpleCaptcha是一个使用简单,基于.Net Standard 2.0的图形验证码模块。它的灵感来源于Edi.Wang的这篇文章https://edi.wang/post/...
    99+
    2022-11-12
  • Laravel8 使用图形验证码做登录功能的实现
    一、 安装扩展包 composer require gregwar/captcha 二、定义路由 //路由分组 Route::group(['prefix'=>'admi...
    99+
    2022-11-12
  • node.js WEB开发中图片验证码的实现方法
    用node做web开发很多都可能碰到需要验证码的地方,之前在github上搜索,有一些比如node-captcha等的类库,都需要依赖第三方的图形处理库或者软件,像我之前安装cario这个图形库时,真是费了...
    99+
    2022-06-04
    验证码 方法 图片
  • Spring Security基于过滤器实现图形验证码功能
    目录前言一. 验证码简介二. 基于过滤器实现图形验证码1. 实现概述2. 创建新模块3. 添加依赖包4. 创建Producer对象5. 创建生成验证码的接口6. 自定义异常7. 创建...
    99+
    2022-11-12
  • 使用canvas怎么实现一个图形验证码功能
    本篇文章给大家分享的是有关使用canvas怎么实现一个图形验证码功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。<!DOCTYPE html><h...
    99+
    2023-06-09
  • java web开发之购物车功能实现示例代码
    之前没有接触过购物车的东东,也不知道购物车应该怎么做,所以在查询了很多资料,总结一下购物车的功能实现。查询的资料,找到三种方法:用cookie实现购物车;用session实现购物车;用cookie和数据库(购物车信息持久化)实现购物车;分析...
    99+
    2023-05-30
    java web 购物车
  • 利用java实现一个web页面校验验证码功能
    利用java实现一个web页面校验验证码功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。验证码生成器:import javax.imageio.ImageIO...
    99+
    2023-05-31
    java 验证码 ava
  • Java实现EasyCaptcha图形验证码的具体使用
    EasyCaptcha github地址: https://github.com/whvcse/EasyCaptcha 简介 Java图形验证码,支持gif、中文、算术等类型,...
    99+
    2022-11-12
  • Java如何实现发送短信验证码功能
    小编给大家分享一下Java如何实现发送短信验证码功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在J...
    99+
    2023-05-30
    java
  • Springboot +redis+谷歌开源Kaptcha实现图片验证码功能
    背景 注册-登录-修改密码一般需要发送验证码,但是容易被攻击恶意调⽤什么是短信-邮箱轰炸机手机短信轰炸机是批、循环给手机无限发送各种网站的注册验证码短信的方法。公司带来的损失短信1条...
    99+
    2022-11-13
  • Java web如何实现一个验证码权限登录功能
    今天就跟大家聊聊有关Java web如何实现一个验证码权限登录功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。所用到的开发工具为myeclipse10,MySQL数据库。首先,在m...
    99+
    2023-05-31
    javaweb 验证码 ava
  • 三分钟带你掌握Java开发图片验证码功能方法
    目录前端请求验证码后端生成验证码登录登录接口校验总结基本流程 细分一共有7步。 生成验证码:可以使用图形库生成一张随机验证码图片,然后将图片存储在服务器端。或者编码为base64方便...
    99+
    2023-02-13
    Java实现图片验证码 Java图片验证码 Java验证码
  • php如何实现发送验证码的功能
    这篇文章给大家分享的是有关php如何实现发送验证码的功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php实现发送验证码功能的方法:1、创建好HTML和js文件;2、创建“Msm.php”文件,内容为“publ...
    99+
    2023-06-25
  • php怎么实现发送验证码的功能
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php怎么实现发送验证码的功能PHP实现发送短信验证码:一、html代码<li> <span>手机号码:</span> <inp...
    99+
    2021-10-31
    php 验证码
  • Android开发中实现验证码倒计时功能的方法
    Android开发中实现验证码倒计时功能的方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体代码如下所示:private TimerTask timerTask; p...
    99+
    2023-05-31
    android roi
  • Java开发完整短信验证码功能的全过程
    目录前言闲扯使用技术所需知识储备实现步骤总结前言 现代互联网项目中,很多场景下都需要使用一种叫做验证码的技术,常用的有图片验证码,滑块验证码,短信验证码等,本文章描述的就是短信验证码...
    99+
    2022-11-12
  • Java开发之spring security实现基于MongoDB的认证功能
    本文实例讲述了Java开发之spring security实现基于MongoDB的认证功能。分享给大家供大家参考,具体如下:spring security对基于数据库的认证支持仅限于JDBC,而很多项目并非使用JDBC,比如Nosql数据库...
    99+
    2023-05-30
    java spring security
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作