当前页面: 开发资料首页 → Java 专题 → 自动生成由a-z,A-Z,0-9组成的八位随机密码
摘要: 自动生成由a-z,A-Z,0-9组成的八位随机密码
package com.seave;
import java.util.ArrayList;
import java.util.Random;
/**
* @author Seave
* date 2005-12-09 17:28
* 自动生成由a-z,A-Z,0-9组成的八位随机密码
*
*/
public class TestRandom
{
private static Random random = new Random();
private static final int length = 8;
private static String value = "a-zA-Z0-9";
private static ArrayList lower = null;
private static ArrayList upper = null;
public static void main(String[] args)
{
getRandom();
}
private static final float getFloat() {
return random.nextFloat();
}
private static final String getRandom(){
TestRandom thisc = new TestRandom();
thisc.setCharset();
String randomstr = "";
try {
//建立一个random字符串
for (int i = 0; i < length; i++) {
// 取得随机偶数和随机奇数
if (((int) (getFloat() * 100)) % 2 == 0) {
randomstr = randomstr + randomChar((Character)lower.get(2),(Character)upper.get(2)).toString();
} else {
if (((int) (getFloat() * 100)) % 2 == 0) {
randomstr = randomstr + randomChar((Character)lower.get(1),(Character)upper.get(1)).toString();
}
else
randomstr = randomstr + randomChar((Character)lower.get(0),(Character)upper.get(0)).toString();
}
}
System.out.println(randomstr);
}
catch(Exception e) {
e.printStackTrace();
}
return randomstr;
}
private static final Character randomChar(Character lower, Character upper) {
int tempval;
char low = lower.charValue();
char up = upper.charValue();
tempval = (int)((int)low + (getFloat() * ((int)(up - low))));
return (new Character((char) tempval));
}
public final void setCharset()
{
System.out.println("start setCharset ...");
boolean more = true;
lower = new ArrayList(3);
upper = new ArrayList(3);
if ((value.charAt(1) == '-') && (value.charAt(0) != '\\')) {
while (more && (value.charAt(1) == '-')){
if (value.charAt(0) == '\\')
break;
else {
lower.add(new Character(value.charAt(0)));
upper.add(new Character(value.charAt(2)));
}
if (value.length() <= 3) {
more = false;
}else{
value = value.substring(3);
}
}
}
if ((lower == null))
setCharset();
}
}
程序运行结果:
C:\java>java TestRandom
start setCharset ...
Q3p50151
C:\java>
↑返回目录
前一篇: 自己实现ORM
后一篇: 1M内存可用来缓存多少对象?