Java生成高强度密码
定义所有可能会出现的字符
private char[] Symbol = {'`', '!', '"', '?' ,'$' , '?' , '%' , '^' ,'&' , '*' , '(' ,')',
'_', '-', '+', '=', '{', '[', '}', ']' , ':' , ';' , '@' ,'\\', '~' , '#' , '|' ,'<', ',' ,'>' ,'.' ,'?' ,'/'};
private char[] Number = {'1','2','3','4','5','6','7','8','9','0'};
private char[] Lowercase = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
private char[] Capitalization = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
private Object[] AnyChar = { Symbol , Number , Lowercase , Capitalization };
随机查询
public char RandomPos(){
char[] currentChar = (char[]) AnyChar[new Random().nextInt(AnyChar.length)];
int pos = new Random().nextInt(currentChar.length);
int i = 0;
for(char c : currentChar){
if(i++ == pos){
return c;
}
}
return 0;
}
生成指定长度的密码
public String DigitGenerate(int c){
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0 ; i < c ; i ++){
stringBuffer.append(RandomPos());
}
return stringBuffer.toString();
}
测试