java生成图片验证码

Java生成图形验证码,并传输至前端 前段时间想要做一个登录的验证码功能,在网上查找了许多资料后实现了,在此记录并巩固一下,其实原理很简单,就是让Java来充当“画笔的角色”来绘制图片,并将图片通过二进制流的方式传输至前端即可,废话不多说上代码 1.使用Java绘制图片 package com.wzh.util; import lombok.Data; import java.awt.*; import java.awt.... 阅读详情

/**

  • 获取验证码图片
  • @author

/
@Controller
public class GenerateImg {
/
获取验证码图片*/

@RequestMapping("/getVerifyCode")

public void getVerificationCode(HttpServletResponse response,HttpServletRequest request) throws IOException {

          try {

                   int width=176;

                   int height=44;
                 //生成对应宽高的初始图片
                   BufferedImage verifyImg=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);


	//单独的一个类方法,出于代码复用考虑,进行了封装。
     //功能是生成验证码字符并加上噪点,干扰线,返回值为验证码字符             
      String randomText = VerifyCode.drawRandomText(width,height,verifyImg);

		//保存到Key到session
		request.getSession().setAttribute("verifyCode", randomText);

          response.setContentType("image/png");//必须设置响应内容类型为图片,否则前台不识别

        OutputStream os = response.getOutputStream(); //获取文件输出流    

        ImageIO.write(verifyImg,"png",os);//输出图片流
        //ImageIO.write(verifyImg,"png", new File("d:/测试.jpg"));//保存本地测试
        os.flush();

        os.close();//关闭流

          } catch (IOException e) {

                   this.LOGGER.error(e.getMessage());

                   e.printStackTrace();

          }


}

}

public class VerifyCode {

public static  String drawRandomText(int width,int height,BufferedImage verifyImg) {
	 
    Graphics2D graphics = (Graphics2D)verifyImg.getGraphics();

    graphics.setColor(Color.WHITE);//设置画笔颜色-验证码背景色

    graphics.fillRect(0, 0, width, height);//填充背景

graphics.setFont(new Font(“微软雅黑”, Font.BOLD, 30));

//数字和字母的组合

String baseNumLetter= “123456789abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ”;

StringBuffer sBuffer = new StringBuffer();

int x = 5; //旋转原点的 x 坐标

String ch = “”;

Random random = new Random();

for(int i = 0;i < 4;i++){

        graphics.setColor(getRandomColor());

   //设置字体旋转角度

   int degree = random.nextInt() % 30;  //角度小于30度

   int dot = random.nextInt(baseNumLetter.length());

   ch = baseNumLetter.charAt(dot) + "";

   sBuffer.append(ch);

   //正向旋转

   graphics.rotate(degree * Math.PI / 180, x, 30);

   graphics.drawString(ch, x, 30);

   //反向旋转

   graphics.rotate(-degree * Math.PI / 180, x, 30);

   x += 30;

}

//画干扰线

for (int i = 0; i <6; i++) {

   // 设置随机颜色

        graphics.setColor(getRandomColor());

   // 随机画线

        graphics.drawLine(random.nextInt(width), random.nextInt(height),

                           random.nextInt(width), random.nextInt(height));

}

//添加噪点

for(int i=0;i<30;i++){

        int x1 = random.nextInt(width);

        int y1 = random.nextInt(height);

        graphics.setColor(getRandomColor());

        graphics.fillRect(x1, y1, 2,2);

        }

return sBuffer.toString();

}

/**

  • 随机取色
    */

private static Color getRandomColor() {

Random ran = new Random();

Color color = new Color(ran.nextInt(256),

       ran.nextInt(256), ran.nextInt(256));

return color;

}

}
返回在这里插入图片描述
返回的验证图片

js:
function getRandomString() {

	        var src = ctx+"/getVerifyCode.do?"+new Date().getTime(); //加时间戳,防止浏览器利用缓存
	        
	        $('.verifyCode').attr("src",src);      
	        
	    }

html:
在这里插入图片描述
—src里填控制器路径
—刷新按钮

Java实现图形验证码 本文生成图像验证码使用了Hutool官网 — 🍬A set of tools that keep Java sweet.图形验证码是一种用于验证用户身份的安全措施。它通过生成一张包含随机图像和文字的图片,要求用户进行识别并输入正确信息来证明其为真实用户而非计算机程序。旨在防止恶意行为,例如批量注册、登录、灌水等,以提高网站的安全性。图形验证码通常会包含随机生成的数字、字母或符号,并且还会加入一些干扰元素,如曲线、噪点或干扰线,以增加识别难度。 阅读详情

相关推荐

matlab电偶极子源码,电偶极子的MATLAB场模拟

电偶极子周围电场电势分布的MATLAB三维模拟Matlab可以用于模拟四维场的效果,本文以电偶极子的电场和电势场为例展示MATLAB在该方面领域的应用。摘要电偶极子由一个正电荷和一个负电荷组成,其电场和空间电势分布与单电荷相比具有一些重要的特性。本文将给出电场和电势场的近似表达式。这两个量的精确表达式是复杂的,不太常用,因此 MATLAB 被采用来操作精确值和绘制三维分布的远区域, 近区域和一侧区...

weixin_35135480的博客 3151

JavaWeb项目实现图片验证码

一、什么是图片验证码? 可以参考下面这张图: 我们在一些网站注册的时候,经常需要填写以上图片的信息。 这种图片验证方式是我们最常见的形式,它可以有效的防范恶意攻击者采用恶意工具,调用“动态验证码短信获取”接口进行动态短信发送, 导致接入用户短信被刷,造成账号余额损失。同时这种动态发送方式会朝许多无关的手机用户,发送很多验证码短信,导致手机用户被骚扰,甚至引起用户投诉。这种恶意攻击究...

weixin_34160277的博客 1600

uniapp - 超详细 H5 网页利用 uni.downloadFile 下载 URL 文件流并调用浏览器下载功能效果,前台通过请求后端接口获取文件并下载保存到本地(支持电脑PC与手机移动端H5)

uniapph5网页下载文件,uniapp网站下载文件流,uniapp的移动端h5实现接口url文件下载,uniapph5页面在浏览器中如何下载指定url文件流文件并保存到本地,uniapp移动端h5调用后端接口保存文件到本地,uniapph5通过下载后获得临时路径怎么让浏览器弹出下载,uniapp怎么请求接口下载到文件,得到Blob临时路径对象后如何下载到本地,浏览器怎么下载blob对象,uniapp二进制文件流下载,uniapph5中的文件流下载和指定的url下载详细教程,uniappapp移

🏆 前端领域优质创作者 1万+

Java如何制作图片输入验证码

Java如何生成验证码,前端的验证码怎么制作。

jakelihua 1637

第42章:AI代码生成的质量标准——何时用AI、何时自己写

> - AI代码生成的质量分级标准:可用、稳定、安全、优雅 > - 一个决策矩阵:什么场景适合用AI,什么场景必须人工编写 > - 如何评估AI生成的代码质量(复杂度、可读性、安全性) > - 实战对比:同一需求下AI生成代码 vs 人工编写代码 > - 团队落地:将质量标准集成到Code Review和CI流程 > - 我如何将团队AI代码接受率从70%提升到90%

sfishfly的博客 162

突破Cloudflare 5秒盾:Python爬虫+GPT分析JS混淆,零基础也能爬

传统突破Cloudflare 5秒盾的门槛极高,需要精通JS逆向、浏览器指纹伪造、行为模拟,而本文的“Playwright+GPT”方案,彻底降低了门槛——无需懂逆向、无需手动改指纹、无需写复杂JS代码,只需3步就能突破大部分网站的防护。低门槛:新手1小时内就能上手,无需逆向工程知识;高成功率:覆盖80%+的普通防护网站,15%的中等防护网站;易扩展:适配不同类型网站,可结合代理、打码平台升级为高可用系统。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1165

Java实现图片验证码

Java实现图片验证码1.创建工具类2.调用工具类,返回验证码图片3.效果 1.创建工具类 代码如下 //生成验证码,并将验证码存入session中,以ip为key public class GetMessage { public static BufferedImage getMsg(HttpServletRequest request,String ip){ int width = 60 , height = 30; //创建一个图像,宽60 高30

sunmenglove的博客 5034

YOLOv11的嗅觉传感器数据关联-(特殊场景下的气味-视觉联合分析)

摘要 本文探讨了YOLOv11与嗅觉传感器融合的多模态感知技术。通过分析YOLOv11的架构特性与嗅觉传感器的数据特点,提出了三种融合策略:数据级、特征级和决策级融合。系统采用硬件同步方案实现时空对齐,包含视觉采集模块、嗅觉传感模块和边缘计算单元。环境配置基于Python 3.9和PyTorch 2.0,支持实时多模态数据处理。该技术可应用于环境监测、工业检测等场景,突破单一视觉感知的局限性。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 630

Java 生成 验证码图片

如何用JAVA生成随机验证码图片

刘伟佳的博客 9374

华南理工大学-大学物理实验-绪论作业

3.用公式测量某圆柱体铝的密度,测得直径=2.0420.003(cm),高=4.1260.004(cm),质量=36.4880.006(g)。计算铝的密度和测量的标准差,并以测量结果表达式表示之。(要求判别和剔除异常数据)(30分)(了解图解法的注意事项,大学物理实验众多实验数据处理采用这种方法,如PN结温度特性研究,光电效应与普朗克常数的测定,霍尔效应测磁场等等,注意规范作图)实验测得温度与对应的金属丝的长度的数据如下表所示。(了解异常数据的判断方法及具体判断过程,30分的题目n(*≧▽≦*)n)

mohen_777的博客 581

uniapp - 最新实现APP连接使用MQTT流程及源码教程,uniapp app端接入mqtt发布订阅和接收消息队列传送消息、断开重连等各种示例代码(完美兼容安卓Android与苹果ios手机)

uniapp app端接入mqtt示例代码教程,uni-app中使用mqtt,uniapp安卓app接入mqtt,uniApp苹果ios集成MQTT教程,uniapp vue3 mqtt app端的接入流程,uniapp开发安卓和ios如何在项目里集成mqtt,Mqtt协议,uniapp开发APP,主动连接mqtt,订阅消息,实现发布,订阅和接收消息,如何在uniapp项目中使用mqtt,uniapp mqtt的使用示例,mqtt连接报错,搭建MQTT通讯做聊天项目,uniapp与设备通信 通过mqtt实现

🏆 前端领域优质创作者 6574

Java图片验证码简单生成

生成验证码图片主要通过Java AWT中的Graphics对象画图操作,实际操作中,Controller接口可以接收前端随机参数,并保存该参数和生成的验证码的缓存关系,当提交表单时,用于校验表单中的随机码和验证码。 下面通过单元测试简单调试验证码图片的生成。 package com.study.demo.util; import org.junit.Test; import javax.ima...

小熙的博客 5万+

Python爬虫实战:绕过Cloudflare反爬的最新技术与完整代码详解

在互联网数据采集领域,越来越多的网站开始部署CDN和安全防护服务,其中 Cloudflare 是最为广泛使用的防护方案之一。它不仅为网站提供DDoS防护,还能通过JS挑战、验证码和行为分析来识别并拦截爬虫。这给爬虫工程师带来了极大挑战——如何在不违反网站服务条款的情况下,实现有效的数据采集?本文将分享Python领域绕过Cloudflare反爬的最新技术方法,结合最新流行库与自动化浏览器,帮助你攻克这一难题。绕过Cloudflare反爬不是一蹴而就,需结合多技术、多策略,持续迭代。

2201_76125261的博客 2628

java生成验证码图片

很久没写博客了,都快忘记这里有账号了。好了,不罗嗦,跟大家分享下生成验证码图片代码 import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOExce

HelloJava1234的专栏 1053

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java 验证码图片生成_java图片验证码生成教程详解

首先,我们先来看本地如何生成图片验证码的,再来写输出到网页的验证码如何实现。先来看最简单的―实现的功能是,将一个字符串变成图片写入到文件中实现代码:package cn.hncu.img;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.FileNotFoundException;import j...

weixin_42127937的博客 888

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java生成验证码图片

 Java生成验证码图片网络上存在的两种生成验证码的方法:1. ImageIO.write(); ImageIO.write(image4, "PNG", out); 缺点:太慢,生成很小的图片,需要800-2000毫秒;2. JPEGImageEncoder encoder.encode();//        JPEGImageEncoder encoder = JPEGCodec.cre

bohemia的专栏 4989

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java随机生成验证码图片

验证码        验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。作用防止恶意破解密码、刷票、论坛灌水、刷页。有效防止某个黑客对某一个特定注册...

苗苗 4019

java 验证码图片生成

/ 注意这里的参数顺序,先是图像,然后是格式,最后是输出流。// 在实际应用中,应该使用更合适的错误处理机制。// 确保你有一个Random实例可用。// 释放Graphics资源。// 将验证码字符串保存到会话中以便后续验证。// 生成随机验证码字符串。// 绘制验证码字符串。// 设置背景色并填充整个图像。// 将图像写入响应输出流。结果仅仅是权限的问题!

m0_73089490的博客 1261

JAVA实现生成图片验证码

大家先来看效果: 具体代码实现如下: import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; im...

LiQiangQiangIT的博客 543

Java使用 BufferedImage生成验证码图片简单使用Java生成验证码 使用Java生成验证码图片 java生成验证码图片

【代码】Java使用 BufferedImage生成验证码图片简单使用Java生成验证码 使用Java生成验证码图片 java生成验证码图片。

半只 603

java生成图片点击验证码_java生成图片验证码实例代码

关于java图片验证码的文章最近更新了不少,帮助大家掌握java验证码的生成技术,下文为大家分享了java生成图片验证码最简单的方法,供大家参考。现在各行业在定制系统时都会考虑到机器注册,现在最有效的方式就是输入验证。现在的验证方式有很多种:一、问题验证,其实也是图片验证,在图片上生成问题,然后输入框输入答案。二、图片验证,输入图片上展示的文字信息。三、短信验证,比较繁杂,用户也不怎么喜欢。四、还...

weixin_35408656的博客 226

用JAVA代码生成验证码图片

package testWeb13; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Random; import java.util.Scanner; import javax.imageio.ImageIO; public class Code

qq_42499475的博客 2565

JAVA生成图片验证码工具类

/** * 生成验证码 */ @RequestMapping(value = "/common/code.jpg") public void getVerify(HttpServletRequest request, HttpServletResponse response) { try { response.setContentT...

github_39325328的博客 1015

Java 生成图片验证码

Java生成图片验证码

技术老鸟 1650

java 生成图片验证码

java生成图片验证码

不管风吹浪打,胜似闲庭信步 3212
上一篇: 获取客户真实IP
下一篇: 各种时间转换和某天的开始结束时间及各类时间管理
无悔_人生
博客等级 码龄8年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无悔_人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值