日常生活中我们每下载一个app、一个应用程序或者注册一个网站的账号都需要新输入一个密码,如果密码 全是一样的,那么存在极大的隐患,当一个账号的密码泄露后很容易导致其他账号的信息也一同被泄露。 这个随机密码器可以随机生成任意位数的包含大写字母,小写字母和数字的密码,生成完记得保存到手机的备忘录~
package arithmetic;
import java.util.Scanner;
import java.util.Random;
/** 随机密码器 */
public class Demo55 {
public static void main(String[] args) {
String password = randomPassword(getInput());
System.out.println("您随机出来的密码为:"+password.toString());
}
/** 获取用户输入的密码位数 */
public static int getInput(){
System.out.println("请输入您想获取的密码位数:");
int input = new Scanner(System.in).nextInt();
return input;
}
/** 随机出用户输入的密码位数的密码,从大小写字母,数字中取值 */
public static String randomPassword(int num){
char[] passwor = new char[num];//创建char数组接收每一位随机出来的密码
Random rand = new Random();
//在ASCII码表中,48-57 数字,65-90 大写字母,97-122 小写字母
for (int i = 0; i <passwor.length ; i++) {
int choice = rand.nextInt(3);
int lowercase = rand.nextInt(26)+65;//小写字母ASCII码表范围
int uppercase = rand.nextInt(26)+97;//大写字母ASCII码表范围
int figure = rand.nextInt(10)+48;//数字ASCII码表范围
switch (choice){//从大写字母.小写字母.数字中随机取值
case 0:passwor[i]=(char)lowercase;break;
case 1:passwor[i]=(char)uppercase;break;
case 2:passwor[i]=(char)figure;
}
}
String password = new String(passwor);
return password;
}
}
效果如下: