java 随机密码

import java.util.Random;

public class RandomPassword {

	public static void main(String[] args) {
//		int i =(int)(8+Math.random()*(20-8+1));
		int i=8;
		RandomPassword rp = new RandomPassword();
		String pd = rp.getRandomPassword(i);
		System.out.println(pd);
	}
	
	public String getRandomPassword(int len){
		String result = null;
			result=this.makeRandomPassword(len);
			if (result.matches(".*[a-z]{1,}.*")&&
				result.matches(".*[A-Z]{1,}.*")&&
				result.matches(".*\\d{1,}.*")&&
				result.matches(".*[~!@#$%^&*\\.?].*")
					) {
				return result;
			}
		result=this.makeRandomPassword(len);
		
		return result;
	}

	public String makeRandomPassword(int len){
		char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*.?".toCharArray();
		StringBuilder sb = new StringBuilder();
		Random r = new Random();
		for (int i = 0; i < len; ++i) {
			sb.append(charr[r.nextInt(charr.length)]);
		}
		return sb.toString();
	}
}

  

import java.util.Random;

public class RandomPassword2 {

	public static void main(String[] args) {
		char [] charr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*.?".toCharArray();
		char [] charr1 = "abcdefghijklmnopqrstuvwxyz".toCharArray();
		char [] charr2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
		char [] charr3 = "1234567890".toCharArray();
		char [] charr4 = "~!@#$%^&*.?".toCharArray();
		StringBuffer s1 = new StringBuffer();
		StringBuffer s2 = new StringBuffer();
		StringBuffer s3 = new StringBuffer();
		Random r = new Random();
		char a=charr1[r.nextInt(charr1.length)];
		char b=charr2[r.nextInt(charr2.length)];
		char c=charr3[r.nextInt(charr3.length)];
		char d=charr4[r.nextInt(charr4.length)];
		for (int i = 0; i < 4; ++i) {
			s1.append(charr[r.nextInt(charr.length)]);
		}
		s2.append(a).append(b).append(c).append(d);
		s3.append(s1).insert(r.nextInt(4)+1, s2);
		System.out.println(s3.toString());
		
	}

}

  

posted @ 2021-03-04 16:52  南山下的采药人  阅读(143)  评论(0编辑  收藏  举报