java 密码规则长度8-12,包含大小写字母、数字、特殊符号

public static String pwd(){
    int i = (int)(8+Math.random()*(12-8+1)) ;
    return getRandomPassword(i);
}


public static String getRandomPassword(int len) {
    String result = null;
    while(len>=8){
        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 "长度不得少于8位!";
}


public static String makeRandomPassword(int len){
    char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*.?".toCharArray();
    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();
}

你可能感兴趣的:(java)