/** * Copyright (c) 2018 人人开源 All rights reserved. * * https://www.renren.io * * 版权所有,侵权必究! */ package com.zt.security.service; import com.wf.captcha.ArithmeticCaptcha; import com.zt.common.utils.CacheUtils; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 验证码 * * @author Mark sunlightcs@gmail.com */ @Service public class CaptchaService { /** * 图片验证码 */ public void create(HttpServletResponse response, String uuid) throws IOException { response.setContentType("image/gif"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); // 生成验证码 ArithmeticCaptcha captcha = new ArithmeticCaptcha(150, 40); captcha.setLen(2); captcha.getArithmeticString(); captcha.out(response.getOutputStream()); // 保存到缓存 CacheUtils.put("captchaCache", uuid, captcha.text()); } /** * 验证码效验 * * @param uuid * uuid * @param code * 验证码 * @return true:成功 false:失败 */ public boolean validate(String uuid, String code) { // 获取验证码 String captcha = (String) CacheUtils.get("captchaCache", uuid); // 效验成功 if (code.equalsIgnoreCase(captcha)) { return true; } return false; } }