下边是一个生成随机密码的代码, 在main函数中,用循环生成10个不一样的随机密码,可不知道为什么,生成的随机密码都是一样的,但是加上个循环,使时间间隔大一点就能得到不同的。 其实用Math.random() 就能达到理想效果。下边是代码:
package test;
import java.util.Random;
public class RandomPassword {
public static void main(String[] args) {
int i = 0;
while (i < 10)
{
System.out.println(getRandomString(8));
System.out.println(getRandomPassword(8));
/* for (int j=0;j<10000;j++)
{
for (int jj=0;jj<10000;jj++)
{
}
}
*/
i++;
}
}
/*
* 生成随机密码
* @param length
* @return
*/
public static String getRandomString(int length) {
StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyz");
StringBuffer sb = new StringBuffer();
Random r = new Random();
int range = buffer.length();
for (int i = 0; i < length; i ++) {
sb.append(buffer.charAt(r.nextInt(range)));
}
return sb.toString();
}
public static String getRandomPassword(int length) {
StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyz");
StringBuffer sb = new StringBuffer();
int range = buffer.length();
for (int i = 0; i < length; i ++) {
sb.append(buffer.charAt((int)(Math.random()* range)));
}
return sb.toString();
}
}
下边是运行的结果:
9nccokdd
0atj3q71
9nccokdd
x8y8kery
9nccokdd
4ow4yqez
9nccokdd
kyil9uzf
9nccokdd
lhzwncyi
9nccokdd
31d6zzod
9nccokdd
g4jtg2cl
9nccokdd
6hxnu5nd
9nccokdd
9ivpubzg
9nccokdd
5cns7f6l