JSP如何实现彩色验证码
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章给大家分享的是有关JSP如何实现彩色验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用h
千家信息网最后更新 2025年11月08日JSP如何实现彩色验证码
这篇文章给大家分享的是有关JSP如何实现彩色验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)
产生验证码图片的文件http://blog.itpub.net/9650775/viewspace-922495/image.jsp
| <%@ page="" contenttype="image/jpeg" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*"> <%! 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); } %> <% //设置页面不缓存 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); // 在内存中创建图象 int width=60, 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)); //画边框 //g.setColor(new Color()); //g.drawRect(0,0,width-1,height-1); // 随机产生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); } // 取随机产生的认证码(4位数字) String sRand=""; for (int i=0;i<4;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); } // 将认证码存入SESSION session.setAttribute("rand",sRand); // 图象生效 g.dispose(); // 输出图象到页面 ImageIO.write(image, "JPEG", response.getOutputStream()); %> |
使用验证码图片的文件a.jsp
| <%@ page="" contenttype="text/html;charset=gb2312"> | |
| 系统产生的认证码: | |
| 输入上面的认证码: | |
验证的页面check.jsp
| <%@ page="" contenttype="text/html; charset=gb2312" language="java" import="java.sql.*" errorpage=""> <% String rand = (String)session.getAttribute("rand"); String input = request.getParameter("rand"); %> 系统产生的认证码为: <%= rand=""> 您输入的认证码为: <%= input=""> <% if (rand.equals(input)) { %> 输入相同,认证成功! <% } else { %> 输入不同,认证失败! <% } %> |
感谢各位的阅读!关于"JSP如何实现彩色验证码"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
认证
验证
图象
输入
图片
数字
背景
页面
颜色
生成
彩色
相同
内容
文件
更多
篇文章
系统
不同
不错
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
青县服务器属于天津市吗
软件技术基础教材数据库部分
数据库管理师证书
多数据源数据库名
指导和管理网络安全工作的委员会
西班牙网络技术
协同软件开发有什么用
服务器管理的内容
网络安全宣传资料2021
服务器假人
网络安全起源和原理
高中网络安全教育话语
国家对网络安全政策优势
网络安全信息中心待遇
连接服务器要网络吗
深圳零基础培训软件开发
迅雷搜索软件开发
软件开发电商工资多少
网络安全里的审计
MSW服务器
微信朋友圈的数据库在哪
服务器端口被关闭不能上网
监控服务器要用专网吗
博野县网络安全宣传
广东企业云空间方案服务器
土壤普查点数据库
服务器要来的福气
软件开发公司拓客
山东富库网络技术
关于网络安全的诗歌四句