求随机生成密码的JAVA程序?
如题 问题点数:40、回复次数:1Top
1 楼ntzls()回复于 2004-08-01 16:00:51 得分 40
getPasswordString(10);返回长度为10随机密码串
private static Random random = new Random();
private static char ch[]={'0','1','2','3','4','5','6','7','8','9','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','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','0','1'};
public static String getPasswordString(int length){
if(length>0){
char[] result = new char[length];
int loops = length/5,index = 0,rand = random.nextInt();
for(int i=0; i<length%5; i++){
result[index++] = ch[(byte)rand&63];rand >>= 6;
}
for(int i=length/5; i>0; i--){
rand = random.nextInt();
for(int j=0; j<5; j++){
result[index++] = ch[(byte)rand&63];rand >>= 6;
}
}
return new String(result,0,length);
}else if(length == 0){
return "";
}else{
throw new IllegalArgumentException();
}
}
Top




