SpringMVC中使用patchca生成验证码
2016-06-23 14:46
645 查看
一、页面直接使用img标签
二、主要代码如下:
三、使用jar见附件
二、主要代码如下:
@RequestMapping @Controller public class IdentifyCodeController { private static ConfigurableCaptchaService ccs = new ConfigurableCaptchaService(); private static Random random = new SecureRandom(); static{ ccs.setColorFactory(new ColorFactory() { @Override public Color getColor(int n) { int[] c = new int[3]; int i = random.nextInt(c.length); for(int j=0;j<c.length;j++){ if(j == i){ c[j] = random.nextInt(71); }else{ c[j] = random.nextInt(256); } } return new Color(c[0], c[1], c[2]); } }); RandomWordFactory rwf = new RandomWordFactory(); rwf.setCharacters("23456789abcdefghigkmnpqrstuvwxyzABCDEFGHIGKLMNPQRSTUVWXYZ"); rwf.setMaxLength(4); rwf.setMinLength(4); ccs.setWordFactory(rwf); } @RequestMapping(value="/verify.html") public void verifyCode(HttpServletRequest request,HttpServletResponse response) throws IOException{ switch(random.nextInt(5)){ case 0: ccs.setFilterFactory(new CurvesRippleFilterFactory(ccs.getColorFactory())); break; case 1: ccs.setFilterFactory(new MarbleRippleFilterFactory()); break; case 2: ccs.setFilterFactory(new DoubleRippleFilterFactory()); break; case 3: ccs.setFilterFactory(new WobbleRippleFilterFactory()); break; case 4: ccs.setFilterFactory(new DiffuseRippleFilterFactory()); break; } HttpSession session = request.getSession(false); if(session == null){ session = request.getSession(); } setResponseHeaders(response); String token = EncoderHelper.getChallangeAndWriteImage(ccs, "png", response.getOutputStream()); session.setAttribute("captchaToken", token); System.out.println("当前的SessionID=" + session.getId() + ",验证码=" + token); } protected void setResponseHeaders(HttpServletResponse response){ response.setContentType("image/png"); response.setHeader("Cache-Control", "no-cache, no-store"); response.setHeader("Pragma", "no-cache"); long time = System.currentTimeMillis(); response.setDateHeader("Last-Modified", time); response.setDateHeader("Date", time); response.setDateHeader("Expires", time); } }
三、使用jar见附件
相关文章推荐
- java自动生成验证码插件-kaptcha
- 如何识别高级的验证码的技术总结第1/4页
- WinForm生成验证码图片的方法
- PHP 验证码不显示只有一个小红叉的解决方法
- asp汉字中文图片验证码
- asp.net生成字母和数字混合图形验证码
- PHP实现简单汉字验证码
- php生成动态验证码gif图片
- php生成验证码函数
- 基于JavaScript短信验证码如何实现
- php 验证码制作(网树注释思想)
- 基于C#实现12306的动态验证码变成静态验证码的方法
- 理解C#生成验证码的过程
- C#验证码识别基础方法实例分析
- javascript点击才出现验证码
- node.js WEB开发中图片验证码的实现方法
- 深入学习.net验证码生成及使用方法
- jQuery Real Person验证码插件防止表单自动提交
- 验证码的三个常见漏洞和修复方法
- php编程每天必学之验证码