Java隨機獲取32位密碼且必須包含大小寫字母、數字和特殊字符,四種的任意三種
Java隨機獲取32位密碼且必須包含大小寫字母、數字和特殊字符,四種的任意三種,代碼如下:
import java.util.Random; public class GetRandomPwd{ /** * @Title: getRandomPwd * @Description:獲取制定長度的密碼,包含大小寫字母、數字和特殊字符,四種的任意三種 * @param len * @return String * @throws */ public static String getRandomPwd(int len) { String result = null; while(len==32){ result = makeRandomPwd(len); if (result.matches(".*[a-z]{1,}.*") && result.matches(".*[A-Z]{1,}.*") && result.matches(".*\\d{1,}.*") && result.matches(".*[~;<@#:>%^]{1,}.*")) { return result; } result = makeRandomPwd(len); } return "長度不得少於32位!"; } /** * @Title: makeRandomPwd * @Description:隨機密碼生成 * @param len * @return String * @throws */ public static String makeRandomPwd(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(); } public static void main(String[] args) { String password = getRandomPwd(32); System.out.println(">>>:"+password); } }