随机产生密码

  • Post author:
  • Post category:其他


题目:随机产生一个密码,要求同时包含大小写以及数字这三种字符。

import java.util.Arrays;

/**
 * Created by l13560 on 2016/11/14.
 */
public class RandomPasswd {
    public static String randomPasswd(int n){
        if(n<3){
            return null;
        }
        //先把前三位分别给一个小写,一个大写,一个数字,这样后面的就可以完全随机,不用担心没有大小写或者数字了
        char[]passwd=new char[n];
        int ran=(int)(Math.random()*26);
        passwd[0]= (char) ('A'+ran);
        ran=(int)(Math.random()*26);
        passwd[1]=(char) ('a'+ran);
        ran=(int)(Math.random()*10);
        passwd[2]=(char) ('0'+ran);
        for(int i=3;i<n;i++){
            //设置一个随机变量,当随机数等于0时,产生小写,等于1时,产生大写,,
            int rand=(int)(Math.random()*3);
            if(rand==0){
                ran=(int)(Math.random()*26);
                passwd[i]= (char) ('A'+ran);
            }
            if(rand==1){
                ran=(int)(Math.random()*26);
                passwd[i]= (char) ('a'+ran);
            }
            if(rand==2){
                ran=(int)(Math.random()*10);
                passwd[i]= (char) ('0'+ran);
            }
        }
        String randompwd= new String(passwd);
        return randompwd;
    }

    public static void main(String[] args) {
        System.out.println(randomPasswd(10));
    }
}



版权声明:本文为u014082714原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。