生成指定位数随机密码,包含大小写特殊字符

    //传入想要生成的随机密码长度
	public String getRandomPassword(int len) {
	String result = null;
	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();
	}

 

你可能感兴趣的:(java)