Java编写的随机密码生成器源码
2023-06-13 09:16:10 时间
最近用Java写的一个密码生成器,实现方法是首先定义一个候选字符数组,并通过java.util.Random中的nextInt()方法生成一个随机整数做为候选字符数组的键,来实现随机取出字符的功能,详细程序请见下面的源代码:
package passwordgenerate;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;
/**
* 密码生成器
* @author Jason jasonwei06@hotmail.com
* @version 1.0
*/
public class Main {
int intPassLength = 0; //密码长度
String arrayString[] = new String[62]; //候选字符数组
/**
* 生成密码
* @param intPassLength 密码长度
* @return
*/
public String doGenerate(final int intPassLength) {
int intTemp;
String strPassword = "";
Random rand = new Random();
for(int i = 0; i < intPassLength; i++) {
intTemp = rand.nextInt(63);
strPassword += this.arrayString[intTemp];
}
return strPassword;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
final Main Main = new Main();
//确定密码长度
while(true) {
System.out.print("请输入密码长度[8-64]:");
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputThreadAmount = null;
try {
inputThreadAmount = br.readLine();
if(inputThreadAmount.matches("^[0-9]+$")) {
Main.intPassLength = Integer.parseInt(inputThreadAmount);
if(Main.intPassLength >= 8 && Main.intPassLength <= 64) {
break;
} else {
System.out.println("长度超出范围,请输入8至64之间的数字!");
}
} else {
System.out.println("输入格式有误!请输入8至64之间的数字!");
}
} catch (final Exception e) {
e.getMessage();
}
}
//数字
Main.arrayString[0] = "0";
Main.arrayString[1] = "1";
Main.arrayString[2] = "2";
Main.arrayString[3] = "3";
Main.arrayString[4] = "4";
Main.arrayString[5] = "5";
Main.arrayString[6] = "6";
Main.arrayString[7] = "7";
Main.arrayString[8] = "8";
Main.arrayString[9] = "9";
//小写字母
Main.arrayString[10] = "a";
Main.arrayString[11] = "b";
Main.arrayString[12] = "c";
Main.arrayString[13] = "d";
Main.arrayString[14] = "e";
Main.arrayString[15] = "f";
Main.arrayString[16] = "g";
Main.arrayString[17] = "h";
Main.arrayString[18] = "i";
Main.arrayString[19] = "j";
Main.arrayString[20] = "k";
Main.arrayString[21] = "l";
Main.arrayString[22] = "m";
Main.arrayString[23] = "n";
Main.arrayString[24] = "o";
Main.arrayString[25] = "p";
Main.arrayString[26] = "q";
Main.arrayString[27] = "r";
Main.arrayString[28] = "s";
Main.arrayString[29] = "t";
Main.arrayString[30] = "u";
Main.arrayString[31] = "v";
Main.arrayString[32] = "w";
Main.arrayString[33] = "x";
Main.arrayString[34] = "y";
Main.arrayString[35] = "z";
//大写字母
Main.arrayString[36] = "A";
Main.arrayString[37] = "B";
Main.arrayString[38] = "C";
Main.arrayString[39] = "D";
Main.arrayString[40] = "E";
Main.arrayString[41] = "F";
Main.arrayString[42] = "G";
Main.arrayString[43] = "H";
Main.arrayString[44] = "I";
Main.arrayString[45] = "J";
Main.arrayString[46] = "K";
Main.arrayString[47] = "L";
Main.arrayString[48] = "M";
Main.arrayString[49] = "N";
Main.arrayString[50] = "O";
Main.arrayString[51] = "P";
Main.arrayString[52] = "Q";
Main.arrayString[53] = "R";
Main.arrayString[54] = "S";
Main.arrayString[55] = "T";
Main.arrayString[56] = "U";
Main.arrayString[57] = "V";
Main.arrayString[58] = "W";
Main.arrayString[59] = "X";
Main.arrayString[60] = "Y";
Main.arrayString[61] = "Z";
String strPassword = Main.doGenerate(Main.intPassLength);
System.out.print("本次生成的密码为:" + strPassword);
}
}
阳光部落原创,更多内容请访问 http://www.sunbloger.com/
相关文章
- java数组反转,Java数组反转
- Java编译时注解自动生成代码[通俗易懂]
- java打印数组_Java中打印数组的三种方式
- Java进阶:java开源商城系统源码
- Java商城源码最好用的java商城电商系统之一
- java ee简介_Java EE 简介
- java找不着符号_找不到符号:Java
- java后台怎么解密md5,Java md5 密码加解密
- 零基础学Java(3)运算符
- 物业管理系统源码java_Java小区物业管理系统 源码报告下载
- Java list foreach_java的foreach
- Java Activiti6.0 spring5 SSM 工作流引擎 审批流程 java项目框架详解编程语言
- Java UNIX时间转换代码详解编程语言
- 解决Java程序连接MySQL数据库的方法(java链接mysql数据库)
- MySQL封装之Java实现(mysql封装java)
- 工具Linux上使用Java开发的利器:选择指南(linux选择java)
- Linux调用Java实现编程快速开发(linux调用java)
- 中Redis Java:处理过期数据的最佳实践(redisjava过期)
- 检查Redis Java 检查数据过期状态(redisjava过期)
- 时间控制解决Java操作Redis过期时间控制问题(redisjava过期)
- 使用Java设置Redis密码(redis密码java)
- Java 核心系列教程
- Java文件在Linux系统中的使用(java文件linux)
- Java操作Redis实现数据快速存取(java访问redis)
- 管理Linux下Java版本管理:轻松实现多版本切换(linux下java版本)
- java比较器Comparable接口与Comaprator接口的深入分析
- java正则表达式使用示例