生成随机密码

编写一个函数,用于生成随机密码,入参为随机密码的长度,出参为生成的随机密码,要求生成的随机密码必须同时包含大写字母小写字母数字。

//生成随机码,参数为随机码长度,同时包含大小写字母和数字


     public String getRandomNum(int length){
     
    char[] c1 = {'0','1','2','3','4','5','6','7','8','9',
    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
     
    List<Character> list = new ArrayList<Character>();
    if(length<3)
    return "随机码长度必须大于等于3";
    else{
     
    Random random = new Random();
    // 1.从0-9中取一个  下标值: 0-9
    int index1 = random.nextInt(9);
    list.add(c1[index1]);
     
    //2.从A-Z中取一个  下标值:10-35
    int index2 = 10+random.nextInt(26);
    list.add(c1[index2]);
     
    //3.从a-z中取一个 下标值:36-61
    int index3 = 36+random.nextInt(26);
    list.add(c1[index3]);
     
    //4.任选剩余的全部下标
    for(int i=0;i<length-3;i++){
    int index4 = random.nextInt(62);
    list.add(c1[index4]);
    }
     
    //5.打乱顺序
    List<Integer> indexList = new ArrayList<Integer>();
    while(indexList.size() < length){
    //随机产生下标值
    int index = random.nextInt(length);
    if(!indexList.contains(index))
    indexList.add(index);
    }
     
    //6.按随机产生的下标值,将随机码组成字符串
    StringBuffer s = new StringBuffer();
    for(int i=0;i<length;i++){
    int index = indexList.get(i);      
    s.append(list.get(index));
    }
     
    return s.toString();
    }    
     }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值