博客
关于我
验证码的简单实现
阅读量:359 次
发布时间:2019-03-04

本文共 1119 字,大约阅读时间需要 3 分钟。

图片验证码实现

图片验证码是一种常见的防止恶意表单注册的技术,通过生成随机图片并结合时间戳来避免浏览器缓存,从而实现验证效果。

以下是实现方法:

基本实现

1. 创建图片对象

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

2. 美化图片

- 填充背景色g.setColor(Color.PINK); g.fillRect(0, 0, width, height);- 画边框g.setColor(Color.BLUE); g.drawRect(0, 0, width - 1, height - 1);- 生成随机字符并绘制验证码Random ran = new Random(); for (int i = 1; i <= 4; i++) { char ch = str.charAt(ran.nextInt(str.length())); g.drawString(ch + "", width/5*i, height/2); }- 添加干扰线g.setColor(Color.GREEN); for (int i = 0; i < 10; i++) { int x1 = ran.nextInt(width); int x2 = ran.nextInt(width); int y1 = ran.nextInt(height); int y2 = ran.nextInt(height); g.drawLine(x1, y1, x2, y2); }

3. 输出图片

ImageIO.write(image, "jpg", response.getOutputStream());

HTML表单配合

为了实现图片的自动更换,可以通过以下方式绑定点击事件:

1. 给图片绑定点击事件

img.onclick = function() { var time = new Date().getTime(); img.src = "/checkCodeServlet?" + time; }

2. 给文字链接绑定点击事件

change.onclick = function() { var time = new Date().getTime(); img.src = "/checkCodeServlet?" + time; }

注意事项:

- 点击图片或文字会触发图片刷新,防止浏览器缓存导致的重复验证问题- 使用时间戳确保每次请求都是唯一的临时链接

通过上述方法,可以实现图片验证码的自动更换功能,同时有效防止恶意表单注册。

转载地址:http://lxxr.baihongyu.com/

你可能感兴趣的文章
python vue3实现大文件分段续传(断点续传)--带暂停和继续功能
查看>>
Python WebDriver如何打印整个页面源(html)
查看>>
Python WebSocket自动化测试:构建高效接口测试框架
查看>>
Python Web开发
查看>>
Python 优化提速的 8 个小技巧
查看>>
Python 余弦相似度与皮尔逊相关系数 计算
查看>>
python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
查看>>
python 使用filetype校验文件
查看>>
Python 使用flush函数将缓冲区数据立即写磁盘
查看>>
python 使用in判断不准确,in不好使
查看>>
Python 使用pandas 进行查询和统计详解
查看>>
Redis 配置文件redis.conf详细解释
查看>>
python网络爬虫(2)——scrapy框架的基础使用
查看>>
python 倒计时 9,8,7,。。。。。。0
查看>>
Python 内嵌函数:它们有什么用处?
查看>>
Python 基础语法:基本数据类型(集合)
查看>>
python 复习计划
查看>>
Python 多处理 apply_async 永远不会在 Windows 7 上返回结果
查看>>
Python 多处理 Numpy 随机
查看>>
Python 多处理 >= 125 列表永远不会完成
查看>>