pwdGen.java
package j_bin;
import java.util.Random;
public class pwdGen {
private Random rdseed = new Random();
/*
*@param
*length password length;
*@param
*letters boolean non-capital letters combination control;
*@param
*letters_capi boolean capital letters combination control;
*@param
*numbers numbers control;
*/
public String getpwd(int length, boolean letters, boolean letters_capi, boolean numbers) {
StringBuilder sb = new StringBuilder();
Random rd = this.rdseed;
while (length-- > 0) {
char _1dgt = 0;
if (letters && letters_capi && numbers) {
int _key = rd.nextInt(3);
if (2 == _key) {
_1dgt = get_L();
} else if (1 == _key) {
_1dgt = get_L_C();
} else if (0 == _key) {
_1dgt = get_N();
}
} else if (letters && letters_capi && !numbers) {
int _key = rd.nextInt(2);
if (1 == _key) {
_1dgt = get_L();
} else if (0 == _key) {
_1dgt = get_L_C();
}
} else if (!letters && letters_capi && numbers) {
int _key = rd.nextInt(2);
if (1 == _key) {
_1dgt = get_N();
} else if (0 == _key) {
_1dgt = get_L_C();
}
} else if (letters && !letters_capi && numbers) {
int _key = rd.nextInt(2);
if (1 == _key) {
_1dgt = get_L();
} else if (0 == _key) {
_1dgt = get_N();
}
} else if (letters && !letters_capi && !numbers) {
_1dgt = get_L();
} else if (!letters && !letters_capi && numbers) {
_1dgt = get_N();
} else if (!letters && letters_capi && !numbers) {
_1dgt = get_L_C();
} else {
break;
}
sb.append(_1dgt);
}
return sb.toString();
}
private char get_L_C() {
Random rd = this.rdseed;
int _dgt = (rd.nextInt(26) + 65);
return (char) _dgt;
}
private char get_N() {
Random rd = this.rdseed;
int _dgt = (rd.nextInt(10) + 48);
return (char) _dgt;
}
private char get_L() {
Random rd = this.rdseed;
int _dgt = (rd.nextInt(26) + 97);
return (char) _dgt;
}
public static void main(String[] args) {
pwdGen test = new pwdGen();
int testct = 100;//测试次数
long start = System.nanoTime();
while (testct-- > 0) {
test.getpwd(10, true, true, true);
}
long end = System.nanoTime();
// System.out.println(((double) (end - start)) / (1000000000));
System.out.println(end-start);
System.out.println(test.getpwd(30, true, true, true));
}
}