zoukankan      html  css  js  c++  java
  • 0914作业-----改进后的验证码生成器---生成4-8位可重复验证码

     1 import java.util.Scanner;
     2 import java.util.Random;
     3 public class Text1
     4 {
     5     public static void main(String[] args)
     6     {
     7         Code code=new Code();
     8         code.start();
     9     }
    10 }
    11 class Code
    12 {
    13     char[] range=new char[62];    //定义验证码取值范围的数组
    14     char[] code;            //定义验证码保存数组
    15     String codeRange;        //定义用于保存验证码取值范围的变量
    16     String myCode;            //定义存放验证码字符串的变量
    17     int state=1;            //定义递归控制变量
    18             
    19     //获取验证码取值范围的方法实现
    20     public void range()
    21     {
    22         char a1='0';
    23         char a2='a';
    24         char a3='A';
    25         for(int i=0;i<range.length;i++)
    26         {
    27             if(i<10)
    28             {
    29                 range[i]=a1;    //验证码取值0-9
    30                 a1++;
    31             }
    32             if(i>=10&&i<36)
    33             {
    34                 range[i]=a2;    //验证码取值a-z
    35                 a2++;
    36             }
    37             if(i>=36)
    38             {
    39                 range[i]=a3;    //验证码取值A-Z
    40                 a3++;
    41             }
    42         }
    43     }
    44     //获取m-n范围内的随机数的方法实现,包含m,n本身
    45     public int randomRange(int m,int n)
    46     {
    47         Random random=new Random();
    48         int value=random.nextInt(n-m)+m;
    49         return value;
    50     }
    51     //获取验证码
    52     public void code()
    53     {
    54         for(int i=0;i<code.length;i++)
    55         {
    56             code[i]=codeRange.charAt(randomRange(0,61));
    57         }
    58     }
    59     //获取用户输入并比较
    60     public void compare()
    61     {    
    62         
    63         code=new char[randomRange(4,8)];    //生成4-8随机数量的验证码保存数组
    64         
    65         code();                    //生成验证码并保存到code数组
    66         myCode=new String(code);  //将验证码转换为字符串,以方便比较
    67         
    68         System.out.println("验证码为:"+myCode);
    69         System.out.print("请按照上图中显示的字符输入验证码:");
    70 
    71         if(myCode.equals(new Scanner(System.in).nextLine()))
    72         {
    73             System.out.println("您的验证码输入正确");
    74         }else if(state!=5)
    75         {    
    76             System.out.println("您的验证码输入错误,您还有"+(5-state)+"次机会");
    77             state++;
    78             compare();
    79         }else if(state==5)
    80         {
    81             System.out.println("笨蛋,一次都不对!");
    82         }
    83     }
    84     //程序总开关
    85     public void start()
    86     {
    87         range();            //获取到验证码取值范围并保存到数组
    88         codeRange=new String(range);    //将获取到的验证码取值范围转换为字符串,以方便截取
    89         compare();            //功能实现
    90     }
    91 }
  • 相关阅读:
    【Other】申请免费的SSL证书及部署Https协议
    【MySql】mysql-5.7.20-winx64安装配置
    【CSharp】C#程序使用.NET Reactor进行混淆加壳
    【Linux】Ubuntu安装Python3
    【Linux】Ubuntu安装Googlepinyin中文输入法
    【Linux】Ubuntu修改默认源
    【C/S】FIPS安全验证问题
    【Android】apk文件反编译
    笔记之《用python写网络爬虫》
    memcache (持续了解ing...)
  • 原文地址:https://www.cnblogs.com/kaililikai/p/5877841.html
Copyright © 2011-2022 走看看