ToSimple 的博客

Java生成随机密码

Word count: 310Reading time: 1 min
2023/02/21

概述

Java 生成随机密码的思路,是通过 Java 中 java.security.SecureRandom 随机数生成类。

生成指定范围内的随机数 num,然后根据随机数 num 作为索引,从字符串数组中获取对应的字符,组成随机密码。

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
private static final int PASSWORD_LENGTH = 12;
private static final String PASSWORD_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

public static String randomPassword() {
SecureRandom random = new SecureRandom();
StringBuilder builder = new StringBuilder();

for (int i=0; i< PASSWORD_LENGTH; i++) {
int index = random.nextInt(PASSWORD_CHARS.length());
builder.append(PASSWORD_CHARS.charAt(index));
}
return builder.toString();
}

代码剖析

通过 PASSWORD_LENGTH 定义需要的密码长度,这里定义的长度是 12,你可以根据需求调整。

PASSWORD_CHARS 定义密码组成的字符,随机密码中的字符都是从这个字符串中提取,如果密码中需要其他特殊字符,也可以往 PASSWORD_CHARS 里继续添加。

randomPassword() 方法中,首先创建了一个 SecureRandom 对象 random,然后调用 random.nextInt(PASSWORD_CHARS.length()) 方法,获取 PASSWORD_CHARS.length() 长度范围内的随机数 index。

获取 index 后,将 index 作为索引,从 PASSWORD_CHARS 字符串中取对应位置的字符,并拼接到随机密码串后。

运行

测试代码

1
2
3
public static void main(String[] args) {
System.out.println("hello: " + randomPassword());
}

运行结果

hello: 4DT8bxJXMzZk

CATALOG
  1. 1. 概述
  2. 2. 实现
  3. 3. 代码剖析
  4. 4. 运行