자바 인증 코드

22398 단어 자바
  • 먼저 인증 코드 를 써 서 도움말 류 를 만 들 고 무 작위 알파벳
  • 을 그립 니 다.
  • 그림 크기 를 고정 시 키 고 인증 코드 의 사용 장면 을 처리 하 며 캡 처 페이지 에서 생 성 된 인증 코드 (캡 처 된 QR 코드 는 사용자 가 입력 한 인증 코드 와 일치 해 야 통과 할 수 있 습 니 다)
  • HTML 등록 페이지 를 검사 하 는 데 사용 합 니 다
  • 페이지 새로 고침
  • 자바 단장
    1
    import java.awt.Color;  
    import java.awt.Font;  
    import java.awt.Graphics;  
    import java.awt.image.BufferedImage;  
    import java.io.IOException;  
    import java.io.OutputStream;  
    import java.util.Random;  
    
    import javax.imageio.ImageIO;  
    
    public final class GraphicHelper {  
    
       /** 
        *               ,         
        *  
        * @param width 
        *                  
        * @param height 
        *                  
        * @param imgType 
        *                  
        * @param output 
        *                  (          ) 
        * @return          (   ) 
        */  
       public static String create(final int width, final int height, final String imgType, OutputStream output) {  
        StringBuffer sb = new StringBuffer();  
       Random random = new Random();  
    
       BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  
       Graphics graphic = image.getGraphics();  
    
       graphic.setColor(Color.getColor("F8F8F8"));  
       graphic.fillRect(0, 0, width, height);  
    
       Color[] colors = new Color[] { Color.BLUE, Color.GRAY, Color.GREEN, Color.RED, Color.BLACK, Color.ORANGE,  
            Color.CYAN };  
       //   "  "        ( 50      )  
       for (int i = 0; i < 50; i++) {  
           graphic.setColor(colors[random.nextInt(colors.length)]);  
           final int x = random.nextInt(width);  
           final int y = random.nextInt(height);  
           final int w = random.nextInt(20);  
           final int h = random.nextInt(20);  
           final int signA = random.nextBoolean() ? 1 : -1;  
           final int signB = random.nextBoolean() ? 1 : -1;  
           graphic.drawLine(x, y, x + w * signA, y + h * signB);  
       }  
    
       //   "  "       
       graphic.setFont(new Font("Comic Sans MS", Font.BOLD, 30));  
       for (int i = 0; i < 6; i++) {  
           final int temp = random.nextInt(26) + 97;  
           String s = String.valueOf((char) temp);  
           sb.append(s);  
           graphic.setColor(colors[random.nextInt(colors.length)]);  
           graphic.drawString(s, i * (width / 6), height - (height / 3));  
       }  
       graphic.dispose();  
       try {  
           ImageIO.write(image, imgType, output);  
       } catch (IOException e) {  
           e.printStackTrace();  
       }  
       return sb.toString();  
       }  
    
    }

    2
    import java.io.IOException;  
    import java.io.OutputStream;  
    
    import javax.servlet.ServletException;  
    import javax.servlet.annotation.WebServlet;  
    import javax.servlet.http.HttpServlet;  
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
    import javax.servlet.http.HttpSession;  
    
    @WebServlet(urlPatterns = "/verify/regist.do" )  
    public class VerifyCodeServlet extends HttpServlet {  
    
       private static final long serialVersionUID = 3398560501558431737L;  
    
       @Override  
       protected void service(HttpServletRequest request, HttpServletResponse response)  
           throws ServletException, IOException {  
    
       //                   
       HttpSession session = request.getSession();  
    
       //        URI (         )  
       String uri = request.getRequestURI();  
       System.out.println("hello : " + uri);  
    
       final int width = 180; //       
       final int height = 40; //       
       final String imgType = "jpeg"; //        (   MIME  )  
       final OutputStream output = response.getOutputStream(); 
       //                   
                                   // (   )  
       //                    
       String code = GraphicHelper.create(width, height, imgType, output);  
       System.out.println("     : " + code);  
    
       //    uri               (               )  
       session.setAttribute(uri, code);  
    
       System.out.println(session.getAttribute(uri));  
    
       }  
    
    }

    3 html
      
    <html>  
    <head>  
       <meta charset="UTF-8">  
       <title>  title>  
       <link rel="stylesheet" href="styles/general.css">  
       <link rel="stylesheet" href="styles/cell.css">  
       <link rel="stylesheet" href="styles/form.css">  
       <script type="text/javascript" src="js/ref.js">script>  
       <style type="text/css" >  
    
           .logo-container {  
               margin-top: 50px ;  
           }  
           .logo-container img {  
               width: 100px ;  
           }  
    
           .message-container {  
               height: 80px ;  
           }  
    
           .link-container {  
               height: 40px ;  
               line-height: 40px ;  
           }  
    
           .link-container a {  
               text-decoration: none ;  
           }  
    
       style>  
    
    head>  
    <body>  
    <div class="container form-container">  
       <form action="/wendao/regist.do" method="post">  
           <div class="form">   
               <div class="form-row">  
                  <span class="cell-1">  
                    <i class="fa fa-user">i>  
                  span>  
                  <span class="cell-11" style="text-align: left;">  
                    <input type="text" name="username" placeholder="      ">  
                  span>  
               div>  
    
             <div class="form-row">  
                  <span class="cell-1">  
                    <i class="fa fa-key">i>  
                  span>  
                  <span class="cell-11" style="text-align: left;">  
                    <input type="password" name="password" placeholder="     ">  
                  span>  
             div>  
    
             <div class="form-row">  
               <span class="cell-1">  
                 <i class="fa fa-keyboard-o">i>  
               span>  
               <span class="cell-11" style="text-align: left;">  
                 <input type="password" name="confirm" placeholder="     ">  
               span>  
             div>  
    
               <div class="form-row">  
                  <span class="cell-7">  
                    <input type="text" name="verifyCode" placeholder="      ">  
                  span>  
                  <span class="cell-5" style="text-align: center;">  
                    <img src="/demo/verify/regist.do" onclick="myRefersh(this)">  
                  span>  
               div>  
    
               <div class="form-row" style="border: none;">  
                 <span class="cell-6" style="text-align: left">  
                    <input type="reset" value="  ">  
                 span>  
                 <span class="cell-6"  style="text-align:right;">  
                    <input type="submit" value="  ">  
                 span>  
               div>  
    
           div>   
       form>  
    div>  
    
    body>  
    html>

    4. 리 셋
    function myRefersh( e ) {  
    
       const source = e.src ; //       src       
       //console.log( "source : " + source  ) ;  
    
       var index = source.indexOf( "?" ) ;  //   source     ?          (         -1 )  
        //console.log( "index : " + index  ) ;  
    
       if( index > -1 ) { //       ?         
           var s = source.substring( 0 , index ) ; //   source     index       ( index    index           )  
            //console.log( "s : " + s  ) ;  
    
           var date = new Date(); //      Date            
           var time = date.getTime() ; //        Date                   
           e.src = s + "?time=" + time ; //                    src    
    
           //console.log( e.src ) ;  
       } else {  
           var date = new Date();  
           e.src = source + "?time=" + date.getTime();  
       }       
    }

    좋은 웹페이지 즐겨찾기