java随机产生密码_用Java生成随机密码的方法
最近各種數據庫泄露問題,讓我不得不考慮自身密碼的強度,下面特意寫兩種生成密碼的方法,已被日后之用;
介紹兩種生成隨機密碼的方式:(在密碼字典里面,可以根據實際需要,手工注釋不需要生成的字符段)
方式一:
/**
* 生成隨機密碼生成方式一
* 密碼字典 -> 隨機獲取字符
* @param len 生成密碼長度
* @return
*/
public static String getPassWordOne(int len){
int i; //生成的隨機數
int count = 0; //生成的密碼的長度
// 密碼字典
char[] str = {
'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', '2', '3', '4', '5', '6', '7', '8', '9',
'~', '!', '@', '#', '$', '%', '^', '-', '+'
};
StringBuffer stringBuffer = new StringBuffer("");
Random r = new Random();
while(count < len){
//生成 0 ~ 密碼字典-1之間的隨機數
i = r.nextInt(str.length);
stringBuffer.append(str[i]);
count ++;
}
return stringBuffer.toString();
}
方式二:
/**
* 生成隨機密碼生成方式二
* 密碼字典 -> 隨機打亂集合順序 -> 隨機獲取字符
* @param len 生成密碼長度
* @return
*/
public static String getPassWordTwo(int len){
int i; //生成的隨機數
int count = 0; //生成的密碼的長度
// 密碼字典
char[] str = {
'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', '2', '3', '4', '5', '6', '7', '8', '9',
'~', '!', '@', '#', '$', '%', '^', '-', '+'
};
StringBuffer stringBuffer = new StringBuffer("");
List list = new ArrayList();
Random r = new Random();
for (i = 0; i
list.add(str[i] + "");
}
Collections.shuffle(list);
while(count < len){
//生成 0 ~ 密碼字典-1之間的隨機數
i = r.nextInt(list.size());
stringBuffer.append(list.get(i));
count ++;
}
return stringBuffer.toString();
}
總結
以上是生活随笔為你收集整理的java随机产生密码_用Java生成随机密码的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ajax翻页_分页 工具类 前
- 下一篇: java二重循环换行_Java零基础系列