<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      后端返回驗證碼圖片與驗證機制實現

      后端返回驗證碼圖片與驗證機制實現

      驗證碼是一種防止惡意請求的機制,常用于注冊、登錄等功能中。我們可以通過后端動態生成圖片驗證碼并在前端展示,用戶輸入后由后端校驗。

      一、生成驗證碼圖片

      使用 Java 中的 BufferedImage 繪圖:

      public class CaptchaUtil {
      
          public static String generateCode(int length) {
              String chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
              Random rand = new Random();
              StringBuilder sb = new StringBuilder();
              for (int i = 0; i < length; i++) {
                  sb.append(chars.charAt(rand.nextInt(chars.length())));
              }
              return sb.toString();
          }
      
          public static BufferedImage createImage(String code) {
              int width = 120, height = 40;
              BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
              Graphics2D g = image.createGraphics();
      
              g.setColor(Color.WHITE);
              g.fillRect(0, 0, width, height);
              g.setColor(Color.BLACK);
              g.setFont(new Font("Arial", Font.BOLD, 28));
              g.drawString(code, 20, 30);
              g.dispose();
      
              return image;
          }
      }
      

      二、驗證碼接口返回圖片

      @GetMapping("/captcha")
      public void getCaptcha(HttpServletResponse response, HttpSession session) throws IOException {
          String code = CaptchaUtil.generateCode(5);
          session.setAttribute("captcha", code);
          BufferedImage image = CaptchaUtil.createImage(code);
          response.setContentType("image/png");
          ImageIO.write(image, "png", response.getOutputStream());
      }
      

      三、前端展示驗證碼

      <img id="captchaImg" src="/captcha" onclick="this.src='/captcha?'+Math.random()">
      

      四、提交校驗接口

      @PostMapping("/verify")
      public String verify(@RequestParam String input, HttpSession session) {
          String correct = (String) session.getAttribute("captcha");
          if (correct != null && correct.equalsIgnoreCase(input)) {
              return "驗證碼正確";
          } else {
              return "驗證碼錯誤";
          }
      }
      

      五、總結

      驗證碼圖片是阻止機器人腳本攻擊的重要手段。配合 Session 或 Redis,可以實現有效校驗和安全防護。

      posted @ 2025-06-03 20:08  元始天尊123  閱讀(37)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 99在线精品国自产拍中文字幕| 翁源县| 午夜家庭影院| 国产女人看国产在线女人| 亚洲欧洲日产国无高清码图片| 亚洲精品色无码AV试看| 亚洲成人av免费一区| 亚洲男人的天堂在线观看| 狠狠v日韩v欧美v| 人人做人人澡人人人爽| 欧美videosdesexo吹潮| 国产suv精品一区二区| 精品一卡2卡三卡4卡乱码精品视频| 亚洲国产成人精品综合色| 欧美亚洲另类制服卡通动漫| 麻豆一区二区中文字幕| 麻豆蜜桃伦理一区二区三区| 久久这里只精品国产免费9| 法库县| 亚洲欧洲一区二区综合精品| 日韩中文字幕亚洲精品| 在线播放亚洲成人av| 国产美女久久久亚洲综合| 377P欧洲日本亚洲大胆| 国产欧美精品区一区二区三区| 国产亚洲一区二区三区av| 67194熟妇在线直接进入| 一本色道久久综合亚洲精品| 亚洲avav天堂av在线网爱情| 成年女性特黄午夜视频免费看| 韩国精品一区二区三区在线观看| 亚洲综合久久精品国产高清| 国产精品国三级国产av| 日本乱子人伦在线视频| 香蕉久久夜色精品国产成人| 亚洲av尤物一区二区| 久久99热只有频精品8| 亚洲欧洲一区二区三区久久| 亚洲av无码专区在线亚| 清纯唯美人妻少妇第一页| 麻豆精品一区二区综合av|