JSP如何实现彩色验证码
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章给大家分享的是有关JSP如何实现彩色验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用h
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
数据库恢复技术有
软件开发任务分配内容
模电数电对软件开发有影响吗
关于网络安全纪录片
淮南网络安全考试scse认证
南京专业led大屏服务器
普陀区网络软件开发创新服务
sql数据库怎么还原
报网络技术培训班有用吗
腾讯网络安全技术负责人
停电后游戏进不了服务器
互联互通服务器托管
北京企业软件开发制作
欣网互联网络科技工资待遇
我的世界服务器伪装种子
网络安全监管机构有哪些
呼叫平台软件开发商
软件开发企业的部门职责
服务器网络维护是什么
朋友圈广告 表单数据库
淮南网络安全考试scse认证
联想服务器rd450
认证服务器管理交换机
仿驾校一点通软件开发
新疆网络安全知识技能竞赛
直播软件开发架构
九台区有名的网络技术服务有哪些
史上最卷服务器
独立服务器租赁需要注意什么
服务器管理员的知识与技能