Captcha 验证码Example
maven依赖
防止和spring中的servlet冲突
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version> <exclusions>
<exclusion>
<artifactId>javax.servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
</exclusions> </dependency>
后端代码
/**
* 获取验证码图片
* @param request
* @param response
* @return
* @throws Exception
*/
@RequestMapping("/captcha-image")
public ModelAndView handleRequest
(HttpServletRequest request, HttpServletResponse response) { ServletOutputStream out = null;
try {
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
response.setHeader("Pragma", "no-cache");
response.setContentType("image/jpeg");
String capText = captchaProducer.createText(); //将验证码存入session “Constants.KAPTCHA_SESSION_KEY“是Key
request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
// create the image with the text
//System.out.println(request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY));
BufferedImage bi = captchaProducer.createImage(capText);
out = response.getOutputStream();
// write the data out
ImageIO.write(bi, "jpg", out);
out.flush();
logger.info("*****服务端验证码:*******" + capText);
} catch (IOException e) {
logger.info("*****服务端验证码异常*******" + e.getMessage());
e.printStackTrace();
}
finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
logger.info("*****关流失败*****"+e.getMessage());
}
}
return null;
}
前端
直接访问映射验证码路径即可
后台校验
获取session中的验证码校验即可 Constants.KAPTCHA_SESSION_KEY为验证码的key
欢迎指正,交流沟通,共同进步!
Captcha 验证码Example的更多相关文章
- 使用深度学习来破解 captcha 验证码(转)
		
使用深度学习来破解 captcha 验证码 本项目会通过 Keras 搭建一个深度卷积神经网络来识别 captcha 验证码,建议使用显卡来运行该项目. 下面的可视化代码都是在 jupyter not ...
 - 阿里云 windows 2008 使用Thinkphp5 captcha验证码不显示问题
		
第一次使用Thinkphp5在阿里云上面运行,后台验证码竟然显示不出来!有种要吐血的感觉...找了半天,终于找到类似解决办法 thinkphp,onethink和thinkox中验证码不显示的解决方法 ...
 - 安全性测试入门 (五):Insecure CAPTCHA 验证码绕过
		
本篇继续对于安全性测试话题,结合DVWA进行研习. Insecure Captcha不安全验证码 1. 验证码到底是怎么一回事 这个Captcha狭义而言就是谷歌提供的一种用户验证服务,全称为:Com ...
 - Django学习系列之captcha 验证码插件
		
安装部署 安装captcha pip3. install django-simple-captcha== settings.py中引入captcha INSTALLED_APPS = [ 'djang ...
 - Spring MVC Captcha 验证码
		
本文专为不想一遍遍手写验证码代码的”懒猿“而生,只需要添加部分配置文件,拷贝一个控制层代码,就能在页面中方便使用.话不多说,进入主题: 一. Spring MVC 环境实现方式: 1.1 spring ...
 - [验证码实现] Captcha 验证码类,一个很个性的验证码类 (转载)
		
点击下载 Captcha.zip /// <summary> /// 类说明:条码生成类 /// 编 码 人:苏飞 /// 联系方式:361983679 /// 更新网站:[url=htt ...
 - 使用.Net Core 2.1开发Captcha图片验证码服务
		
更新后续篇:Captcha服务(后续1) 使用.Net Core 2.1开发Captcha验证码服务 开发工具:Visual Studio 2017 15.7.3 开发平台:64位 Windows 1 ...
 - Thinkphp5 captcha扩展包安装,验证码验证以及点击刷新
		
首先下载 captcha扩展包,↓ 下载附件,解压到vendor目录下: 然后进入application/config.php添加配置信息: //验证码 'captcha' => ...
 - Python&selenium&tesseract自动化测试随机码、验证码(Captcha)的OCR识别解决方案参考
		
在自动化测试或者安全渗透测试中,Captcha验证码的问题经常困扰我们,还好现在OCR和AI逐渐发展起来,在这块解决上越来越支撑到位. 我推荐的几种方式,一种是对于简单的验证码,用开源的一些OCR图片 ...
 
随机推荐
- 【luogu P1993 小K的农场】 题解
			
题目链接:https://www.luogu.org/problemnew/show/P1993 1.差分约束: 对于a - b <= c 有一条 b-->a 权值为c 对于a - b & ...
 - AngularJS 控制器属性
			
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
 - deep learning学习记录二
			
接着我的微博继续八卦吧 微博里问了几个人,关于deep learning和cnn的区别,有不少热心网友给了回答,非常感谢.结合我听课和看文章的理解,我大胆大概总结一下: 在上世纪90年代,neural ...
 - 前端html,css基础总结
			
0.1.css引入界面的方式: 内联式:通过标签的style属性,在标签上直接写样式. <div style="width:100px; height:100px; backgroun ...
 - TensorFlow安装环境的误区
			
安装py一定要注意安装的版本,我一开始安装的3.7版本的,现在还没有支持,另外,看清楚自己电脑是32位还是64位的
 - rank() over,dense_rank() over,row_number() over的区别
			
rank() over,dense_rank() over,row_number() over的区别 1.rank() over:查出指定条件后的进行排名.特点是,加入是对学生排名,使用这个函数,成绩 ...
 - Oracle system 忘记密码,怎么修改密码
			
1.win键+R键,输入cmd,打开命令提示符.(小黑窗) 2.输入:sqlplus /nolog 3.输入conn /as sysdba(以超级管理员身份登录 4.输入alter user syst ...
 - Windows无法安装到这个磁盘 选中的磁盘具有MBR分区表解决方法
			
在安装 win10的时候,会出现这种提示:Windows 无法安装到这个磁盘.选中的磁 盘具有 MBR 分区表.在 EFI 系统上, Windows 只能安装到 GPT 磁盘.出现这种 情况主要是因为 ...
 - 选择客栈(noip2011 day1 t2)
			
题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 nn n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k−1 表示),且每家客栈都设有一家咖啡店,每 ...
 - MySQL快速生成连续整数
			
很多时候需要用到连续的id进行数据对比,如判断是否连续等问题.那么,生成连续整数的方式有多种,首先容易想到的是逐步循环,如果想生成1kw条记录,则需要循环1kw次进行插入,那么有没有其他方式呢,效率相 ...