zoukankan      html  css  js  c++  java
  • 算术验证

    @RequestMapping(value = "/numberCaptcha", method = RequestMethod.GET)
    public void numberImage (String captchaId, HttpServletRequest request, HttpServletResponse response) throws Exception {
    LOGGER.warn("fetchCaptchaImageCaptchaId=" + captchaId);
    if (StringUtils.isEmpty(captchaId)) {
    captchaId = request.getSession().getId();
    }
    String pragma = new StringBuffer().append("yB").append("-").append("der").append("ewoP").reverse().toString();
    String value = new StringBuffer().append("ten").append(".").append("xxp").append("ohs").reverse().toString();
    response.addHeader(pragma, value);
    response.setHeader("Pragma", "no-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setHeader("Cache-Control", "no-store");
    response.setDateHeader("Expires", 0);
    response.setContentType("image/jpeg");

    ServletOutputStream servletOutputStream = null;
    int num1 = (int)(Math.random() * 10);
    int num2 = (int)(Math.random() * 10);
    Random random = new Random();
    //产生[0,2]之间的随机整数 0加1减3乘
    int funNo = random.nextInt(3);
    if (funNo == 1){
    if (num1 < num2){
    num1 = num1 ^ num2;
    num2 = num1 ^ num2;
    num1 = num1 ^ num2;
    }
    }
    try {
    int sum=0;
    switch (funNo) {
    case 0: sum = num1 + num2; break;
    case 1: sum = num1 - num2; break;
    case 2: sum = num1 * num2; break;
    }
    System.out.println(sum);
    HttpSession session=request.getSession();
    session.setAttribute("captcha", String.valueOf(sum));
    servletOutputStream = response.getOutputStream();
    BufferedImage bufferedImage = numberCaptcha.createVerificationImage(num1,num2,funNo);
    ImageIO.write(bufferedImage, "jpg", servletOutputStream);
    servletOutputStream.flush();
    } catch (Exception e) {
    throw new RuntimeException(e);
    } finally {
    IOUtils.closeQuietly(servletOutputStream);
    }
    }
  • 相关阅读:
    从头梳理一下经常问到的 “零拷贝” 问题!
    Redis缓存使用中的热key问题
    使用Redis,你必须知道的21个注意要点
    一文理解 Redis 的核心原理与技术!
    大厂常问的Redis面试题
    三种不同场景下的 Kubernetes 服务调试方法
    Docker 和 Kubernetes:root 与特权
    DRBD详细解说及配置过程记录
    MySQL 高可用方案-PXC环境部署记录
    MySQL高可用方案
  • 原文地址:https://www.cnblogs.com/xuyatao/p/8616381.html
Copyright © 2011-2022 走看看