生成图片验证码

JavaWeb生成图片验证码 在上网注册账号的时候一般都会有图片验证码的验证,防止恶意注册,最让人讨厌的莫过于12306的找你妹。。但是这也不失为一种好的办法,今天就用Javaweb的方式来生成一个图片验证码。大概流程图如下所示:  在myEclipse上新建一个web工程,创建一个Servlet类在doGet方法中实现上图中的方法:      1.在内存中构建出一个图片。 int width = 120; 阅读详情

login.jsp页面显示验证码图片

验证码:<s:textfield name="rand" size="5"></s:textfield>
<img src="random.action"  onclick="changeValidateCode(this)" title="点击图片刷新验证码"/> 
function changeValidateCode(obj){
  	//获取当前的时间作为参数,无具体意义   
  	var timenow = new Date().getTime();   
  	//每次请求需要一个不同的参数,否则可能会返回同样的验证码   
  	//这和浏览器的缓存机制有关系,也可以把页面设置为不缓存,这样就不用这个参数了。   
  	obj.src="random.action?date="+timenow;   
}
配置random.xml,设置图片流格式

<action name="random" class="com.action.RandomAction">     
		       <result type="stream">     
		            <param name="contentType">image/jpeg</param>     
		            <param name="inputName">inputStream</param>     
		       </result>  
		   </action>
RandomAction.java

public class RandomAction extends ActionSupport {
	private ByteArrayInputStream inputStream;
	//set get
	public String execute() throws Exception{   
		RandomNumUtil random = RandomNumUtil.Instance();   
		inputStream = random.getImage();//取得带有随机字符串的图片   
		ServletActionContext.getContext().getSession().put("random", random.getStr());//取得随机字符串放入HttpSession   
		return SUCCESS;   
	} 
}

Random工具类:RandomNumUtil.java

public class RandomNumUtil {
	private ByteArrayInputStream image;//图像   
	private String str;//验证码
	//set get
	public static RandomNumUtil Instance() {
		return new RandomNumUtil();
	}
	public RandomNumUtil() {
		init();
	}
	private void init() {
		// 在内存中创建图象   
		int width=85, height=20;   
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   
		// 获取图形上下文   
		Graphics g = image.getGraphics();   
		// 生成随机类   
		Random random = new Random();   
		// 设定背景色   
		g.setColor(getRandColor(200,250));   
		g.fillRect(0, 0, width, height);   
		// 设定字体   
		g.setFont(new Font("Times New Roman",Font.PLAIN,18));   
		// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到   
		g.setColor(getRandColor(160,200));   
		for (int i=0;i<155;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);   
		}   
		// 取随机产生的认证码(6位数字)   
		String sRand="";   
		for (int i=0;i<6;i++){   
		String rand=String.valueOf(random.nextInt(10));   
		sRand+=rand;   
		// 将认证码显示到图象中   
		g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));   
		// 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成   
		g.drawString(rand,13*i+6,16);   
		}  
		//赋值验证码  
		str = sRand;   	  
		//图象生效   
		g.dispose();   
		ByteArrayInputStream input=null;   
		ByteArrayOutputStream output = new ByteArrayOutputStream();   
		try{   
		ImageOutputStream imageOut = ImageIO.createImageOutputStream(output);   
		ImageIO.write(image, "JPEG", imageOut);   
		imageOut.close();   
		input = new ByteArrayInputStream(output.toByteArray());   
		}catch(Exception e){   
		System.out.println("验证码图片产生出现错误:"+e.toString());   
		}   
		  
		image=input;/* 赋值图像 */   
	}
	private Color getRandColor(int fc, int bc) {
		Random random = new Random();   
		if(fc>255) fc=255;   
		if(bc>255) bc=255;   
		int r=fc+random.nextInt(bc-fc);   
		int g=fc+random.nextInt(bc-fc);   
		int b=fc+random.nextInt(bc-fc);   
		return new Color(r,g,b);   
	}	
}





如何生成随机验证码图片 一个简单的登录页面除了登录账号,密码,按钮等这些,想要显得复杂一些可以做一个验证码,防止机器人登录。 下面开始做一个验证码 1,新建一个class文件。 2,编写随机生成字符的方法 public static String randString(int count){ //count 生成字符的个数 StringBuilder builder=new StringBuilder(); String str="0123456789abcdefghi 阅读详情

相关推荐

Python 生成验证码图片

使用pillow生成验证码图片 其中的Arial.ttf可以百度下载 from PIL import Image,ImageDraw,ImageFont,ImageFilter import random def getChar(): return chr(random.randint(65,90)) def getColor(): return (random.ra...

做一个好人 5426

springboot——kaptcha

导入包: <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </dependency> 配置类: p...

少说,多做。 3728

若依源码解析:图片验证码生成

若依通过合理的验证码生成流程和相应的代码实现,为应用程序提供了生成图片验证码和基于数学运算的验证码文本的功能,以增加系统的安全性和防护能力。本文讨论了若依(Ruoyi)生成图片验证码的过程以及相关代码。首先,我们了解了生成图片验证码的基本步骤,包括生成随机字符串、创建图片对象、绘制背景和文本、添加干扰线等。接下来,我们分析了若依中的验证码生成控制器,它根据配置的验证码类型,在后台生成对应类型的验证码,并将验证码图片以Base64编码的形式返回给前端页面。

程序员诚哥 3884

Kaptcha——图片验证码生成工具

Kaptcha 是一个Google开源、可自由配置的图片验证码生成工具,可以根据属性来设置自己想要的基本意义上的验证码

weixin_61974247的博客 2306

基于单片机的继电器参数测试系统设计

由于原有测试系统在参数设置上过于单一,在对继电器测试过程中需要多次进行器件连接,导致对其测试准确度下降,会造成继电器的二次损伤,基于单片机研究继电器参数测试系统的设计方法。在硬件设计上,构建二级模式集散控制框架,利用单片机进行数据采集和处理,满足实时继电器参数数据的同步控制;设计双极性反向比例输出电路,分别利用电极电阻对继电器两侧电压进行放大,实现继电器实时电压的检测。实验结果:以两组类型断电器为测试对象,分别连接示波器进行真实数据采集,在本文系统的应用下所得参数测试结果,与真实的数据相一致,具有实际应用效

weixin_45905610的博客 1438

Ribo测序翻译效率计算及可视化

本文介绍了一个计算翻译效率(TE)和分析转录-翻译相关性的生物信息学流程。首先通过Python脚本从标准化表达量矩阵(TPM/FPKM)计算TE值,该脚本自动匹配转录组(RNA)和翻译组(Ribo)样本进行比值运算。然后使用R语言进行相关性分析,通过ggplot2绘制样本间转录-翻译表达量的散点图,添加线性回归线和相关系数标注,支持PNG/PDF格式输出。整个流程实现了从原始数据处理到可视化分析的全过程。

Tiaoxiaobai的博客 553

Python 生成随机图片验证码

本篇博客介绍了如何使用Python生成随机的图片验证码。通过使用Python的Pillow库,我们可以生成包含数字和字母的随机验证码。在本文中,我们详细介绍了如何使用Pillow库创建和修改图片。接着,我们使用随机数生成器来生成随机的验证码,并将其添加到一个新的图片中,最后保存为PNG格式。此外,我们还介绍了如何对验证码进行扭曲和噪声处理,提高了验证码的安全性和可读性。最后,我们还给出了完整的Python代码和结果展示。

小L的博客 3838

大白话讲解Numpy中什么是一维、二维、三维数组,以及5种创建方式

NumPy中提供了多种创建数组的方式,其中最基本的方式就是通过array()函数创建数组在使用该函数时直接传入列表或元组即可。 通过array()函数分别创建一维数组、二维组和三维数组,那么什么是维度呢?一维、二维、三维有什么区别? 1、什么是维度? 维度可以理解为描述数据的一种 “方向” 或者 “层次”。在数组中,维度的数量决定了我们需要用多少个索引来访问一个元素 2、一维、二维、三维的区别? (1)一维:一维数组就像是一条直线上排列的一组数据,例如: a = np.array([1, 2

1365

图片验证码生成及常见库

这种可能会被软件破解识别。可以加一些颜色或者线条的混淆来 降低识别率来,一定程度上防止被破解。以下采集了来自网络上常用的验证码库:Java验证码生成库 JCaptcha Struts验证码插件 JCaptcha4Struts2 Java图形验证码 SimpleCaptcha Java验证码 kaptcha Java验证码 patchca Java验证码生成库 imageRandom iCaptcha Java图片验证库SkewPassImage Java 验证码 CagePython pycapt PHP

we 1302

手眼标定搞定了,手眼矩阵不知道怎么用?快戳!!

手眼标定得到手眼矩阵到底该咋用? 大家好,我是小鱼。上几期给大家分享了关于手眼标定的方法,如果还有不清楚如何让进行手眼标定的同学可以参考下面的文章: 机器人手眼标定都能搞不定?快戳,最好用的手眼标定库!!! 很多同学做完了手眼标定之后得到了手眼矩阵,但是不知道怎么用于程序当中去,还有很多同学搞不清楚各个坐标系之间的关系,今天小智就给大家讲讲手眼矩阵的使用问题。 一、手眼矩阵为什么会长的不一样? 做完手眼标定,得到的手眼矩阵,有可能会长的不一样,这是因为旋转变换是有很多种表示方法的。 1.旋转的表

生活不止眼前的苟且 5343

2024.12.29 【RNA-seq】Rawdata数据缺失问题与解决方案

Fastq格式是一种用于存储高通量测序数据的文件格式,包含序列和相应的质量信息。第一行以开头,后接序列标识符;第二行是测序的DNA序列;第三行以开头,可能会跟随序列标识符;第四行是对应的质量值,以ASCII字符表示。Rawdata的数据完整性通常情况下是没有问题的,但我们仍然需要对下机数据进行验证,确保后续分析的正常进行,好的分析习惯可以提高整体的分析效率,避免很多不必要的麻烦。

1112

如何生成验证码图片

开发工具与关键技术:Visual Studio + C# 撰写时间:2019.6.16 在我们日常生活中所使用到的登录页面,经常会遇到需要输入验证码登录,根据生成的验证码图片输入正确的字符串(一般都是字母+数字)进行验证,验证码不正确则无法验证登陆。那么我们是如何去随机生成不同的验证码图片的呢?下面就来进行简要的介绍。 如下图,是我们经常看到的登陆界面的验证部分,如果...

weixin_44541136的博客 1万+

【机器学习-09】特征工程

特征工程是机器学习模型构建的初步工作,但它的重要性却贯穿整个模型生命周期。在进行特征工程时,我们需要充分利用数据科学的知识和技巧,结合具体的应用场景和业务需求,来制定出最合适的特征提取和转换策略。只有这样,我们才能为机器学习模型提供最有价值的输入,从而使其发挥出最大的潜力。总之,特征工程是机器学习中的一项关键任务,它需要我们用心去探索、去实践、去创新。只有不断地优化和完善特征工程的过程,我们才能构建出更加准确、更加可靠的机器学习模型,为实际应用带来更大的价值。

qq_38614074的博客 2万+

Java 生成 验证码图片

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

刘伟佳的博客 9371

ABAP Platform 2025 到来之后,我们该怎样重新理解 SAP S/4HANA 2025 的开发边界

2025年10月,SAP正式发布S/4HANA Cloud Private Edition 2025及S/4HANA 2025,其技术底座ABAP Platform 2025全面支持SAP HANA数据库。新版平台强调Clean Core理念升级为四级成熟度模型,推动ABAP Cloud成为扩展开发首选方案。AI能力正式融入ABAP开发全流程,包括代码生成、迁移辅助等场景。RAP框架显著增强,支持跨业务对象协作、树形视图等复杂业务场景。ADT开发工具持续进化,新增内存分析、单元测试等专业功能,形成完整开发工

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 308

Yolov8-pose关键点检测:loss优化 | LRM loss困难样本挖掘,提升难样本、遮挡物等检测精度

LRM loss应用到能够大幅提升pose遮挡物性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1715

验证码图片生成和验证

开发工具与关键技术:VS 验证码 作者:听民谣的老猫 撰写时间:2019/6/7 13:10 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609185843868.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG...

猫老爷 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

最近在用ssm框架做一个管理系统,做到登录验证时,使用了下面的代码生成图片验证码,最终的效果如下图。 Java类 public class RandomValidateCode { public static final String RANDOMCODEKEY = "randomcode_key";//放到session中的key private Random random =...

linyuguang666的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

生成登录验证码,点击更换验证码图片

验证码最终效果: 直接上代码: 1、 service层代码 /* * 生成验证码 并将验证码转化为图片的业务 * */ public class VerificationCodeService { public VerificationCodeService() { } // 生成验证码字符串 -- 随机数 public String createRandomCode() { String str = "ABCDEFGHIJKLMNOPQRSTUVWX

Java小皮孩 4170

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python 生成图片验证码

生成 4 位验证码,返回图片的 base64。随机生成10张二维码图片。

1377

android验证码生成,Android实现图片验证码

最近项目上用到了随机生成图片验证码的功能,实现如下:CodeUtils.javapackage com.jackie.countdowntimer;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Co...

weixin_30145205的博客 904

生成验证码图片

开发工具与关键技术:Visual Studio 2015 作者:徐晶旗 撰写时间:2019年4月19日 我们在登陆某个系统时除了要输入账号和密码之外,还通常要涉及到验证码。那验证 码有什么作用呢?接下来就来简单的介绍一下验证码。 首先验证码是于服务端生成,发送给客户端,并以图像格式显示,所以验证码也是一 张图片,验证码的全称是”全自动区分电脑和人类的图灵测试”,就是由机器向操作者提问, 从而鉴...

weixin_44543252的博客 1587

java生成图片点击验证码_java之生成图片验证码

由于自己的项目登录需要验证码,于是便谢了一个图片验证码生成类。图片验证实体类 ImageVerification.javaclass="java">package com.jynine.model;import java.awt.image.BufferedImage;import java.io.Serializable;/*** 图片验证类* @ClassName: ImageVerif...

weixin_34695463的博客 223

【Python 图片验证码】——生成随机图片验证码 并打印验证码的值

使用python生成一个图片验证码,随机的,可以由于验证人机和别的啊,很方便很简单 点个赞留个关注吧!! 导入模块 import random from PIL import Image,ImageFont,ImageDraw 生成随机验证码 def rndtxt(): txt_list = [] # 大写字母 txt_list.extend([i for i in range(65,90)]) # 小写字母 txt_list.extend([i f

₰₯₮ 的博客 10万+
上一篇: 未登录用户自动跳回登陆界面——拦截器interceptor
下一篇: JS 时间倒计时
learnTech
博客等级 码龄14年 10粉丝 73原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值