Java之简单随机验证码的生成

发表于:2021-1-08 10:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:等待的L先生    来源:CSDN

  生成一个有大小写字母和数字组成的4位验证码 如:87F5;
  我主要用了两种办法来实现:
  方法一:
  package com.qianfeng.day3.day3;
  import java.util.Random;
  public class HomeWork {
      public static  void main(String args[]){
          //生成一个有大小写字母和数字组成的4位验证码  如:87F5;
          rand();
      }
      public static void rand(){
          Random random =new Random();
          String res="";
          for(int i=0;i<4;i++){
              int choice=random.nextInt(3);//0 1  2
              int num= random.nextInt(10);
              int lower=random.nextInt(26)+97;//a-z   :97-122
              int power=random.nextInt(90-65+1)+65;//A-Z  : 65-90;
              switch (choice){
                  case 0://数字
                      res+=num;
                      break;
                  case 1:
                      res+=(char)lower;
                      break;
                  case 2:
                      res+=(char)power;
                      break;
                  default:
                      break;
              }
          }
          System.out.println("随机验证码:"+res);
      }
  }
  方法二:
  ```java
  package com.qianfeng.day3.day3;
  import java.util.Random;
  public class HomeWork2 {
      public  static  void main(String args[]){
          //随机验证码的第二种方法:
          //首先创建一个随机字符库,至少12个,最好是3和4的公倍数
          Random random =new Random();
          String str="";
          String randomStr="";
          for(int i=0;i<4;i++){
              int num=random.nextInt(10);
              randomStr+=num;
              int lower= random.nextInt(122-97+1)+97;
              randomStr+=(char)lower;
              int power=random.nextInt(90-65+1)+65;
              randomStr+=(char)power;
              //randomStr+=num+(char)lower+(char)power;
          }
          System.out.println("随机字符库:"+randomStr);
          for(int i=0;i<4;i++){
              //在随机字符库中随机取四个值
              int choice=random.nextInt(randomStr.length());
              str+=randomStr.charAt(choice) ;
          }
          System.out.println("随机字符串为:"+str);
      }
  }
  主要是看随机数的思想,逻辑;代码还是简单的!

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号