生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)
原型参考ALIBABA http://china.alibaba.com/member/showimage
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{
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 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------------------------------------
认证码输入页面
系统产生的认证码:
输入上面的认证码:
-----------------验证的页面----------check.jsp
认证码验证页面
String rand = (String)session.getAttribute("rand");
String input = request.getParameter("rand");
%>
系统产生的认证码为:
您输入的认证码为:
if (rand.equals(input)) {
%>
输入相同,认证成功!
} else {
%>
输入不同,认证失败!
}
%>
上一篇:Java泛型与数据库应用实例详解下一篇:解决mybatis plus 一对多分页查询问题 热门搜索:
彩色验证码
利用Adodb.Stream制作彩色验证码
验证码验证
验证码
极验验证码
相关文章
JSP彩色验证码的实例代码
2021-11-12阅读(5900)评论(0)推荐()给定范围获得随机颜色,jsp实现
JSP验证码动态生成方法
2021-11-12阅读(3063)评论(0)推荐()这篇文章主要介绍了JSP验证码动态生成方法,写一个JSP页,动态生成一个验证码,感兴趣的朋友可以参考一下
jsp实现简单验证码的方法
2021-09-10阅读(6759)评论(0)推荐()这篇文章主要介绍了jsp实现简单验证码的方法,涉及简单的JSP验证码图片生成技巧,具有一定参考借鉴价值,需要的朋友可以参考下
JSP验证码简单生成方法
2021-11-12阅读(9177)评论(0)推荐()这篇文章主要介绍了JSP验证码简单生成方法,实例分析了jsp验证码图片的生成技巧,涉及jsp数学运算及图像处理方法,具有一定参考借鉴价值,需要的朋友可以参考下
Jsp生成页面验证码的方法[附代码]
2021-09-11阅读(7964)评论(0)推荐()jsp页面验证码demo
2021-10-12阅读(2745)评论(0)推荐()这篇文章主要为大家详细介绍了jsp页面验证码的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
JSP彩色验证码
2021-09-10阅读(4780)评论(0)推荐()取消
提交评论
© 2021 编程之家
工信部备案号:琼ICP备2022000316号
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。