lPsycongroo 2017-11-21 04:24 采纳率: 61.1%
浏览 2026
已结题

求一个java密码随机生成程序

要求:同时含有大小写字母,数字,特殊字符但不含有空格,8到32位,最好长度作为一个参数可调整

  • 写回答

6条回答 默认 最新

  • sinat_35938012 2017-11-21 04:35
    关注

    import java.util.Random;

    public class RandomPassword {

    public static void main(String[] args) {

        String password = getRandomPassword(8);  
        System.out.println(password);  
    }  
    
    //获取验证过的随机密码  
    public static String getRandomPassword(int len) {  
        String result = null;  
    
        /*if(len >= 6) { 
            for(result = makeRandomPassword(len);len >= 6;result = makeRandomPassword(len)){              
                if (result.matches(".*[a-z]{1,}.*") && result.matches(".*[A-Z]{1,}.*") && result.matches(".*\\d{1,}.*") && result.matches(".*[~!@#$%^&*\\.?]{1,}.*")) { 
                    return result; 
                }  
            } 
        }*/  
        while(len>=6){  
            result = makeRandomPassword(len);  
            if (result.matches(".*[a-z]{1,}.*") && result.matches(".*[A-Z]{1,}.*") && result.matches(".*\\d{1,}.*") && result.matches(".*[~!@#$%^&*\\.?]{1,}.*")) {  
                return result;  
            }   
            result = makeRandomPassword(len);  
        }  
        return "长度不得少于6位!";  
    }  
    //随机密码生成  
    public static String makeRandomPassword(int len){  
        char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*.?".toCharArray();  
        //System.out.println("字符数组长度:" + charr.length); //可以看到调用此方法多少次  
        StringBuilder sb = new StringBuilder();  
        Random r = new Random();  
    
        for (int x = 0; x < len; ++x) {  
            sb.append(charr[r.nextInt(charr.length)]);  
        }  
        return sb.toString();  
    }  
    

    }

    拿去随便改改

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题