Java 密码生成器

2025年9月4日 | 阅读 8 分钟

通常,出于安全目的,我们需要生成一个安全的密码。在 Java 中有几种方法可以生成强密码。在本节中,我们将了解如何生成至少包含两个小写字母、两个大写字母、两个数字和两个特殊字符的强密码。

在 Java 中生成密码的方法如下:

1. 使用 Passay 库

Passay 是最常用的密码策略执行库之一。我们使用该库通过可配置的规则集生成密码。我们可以使用默认的 CharacterData 实现来创建必要的密码规则。我们也可以根据需要创建自定义的 CharacterData 实现。

为了使用 Passay 库,我们需要在 POM.xml 文件中添加以下依赖:

让我们通过一个例子来了解如何使用 Passay 库生成随机密码:

GeneratePasswordExample1.java

输出

Java Password Generator

2. 使用 RandomStringGenerator

这是另一种生成安全密码的方法,即在Apache Commons Text 中使用RandomStringGenerator。RandomStringGenerator 生成具有指定代码点数量的 Unicode 字符串。我们通过使用 RandomStringGenerator 的 Builder 类来创建生成器的实例来使用 RandomStringGenerator。

我们也可以修改生成器的属性。使用此方法有一个缺点,即我们无法像 Passay 那样指定每个集合中的字符数量。但是,我们可以通过组合多个集合的结果来克服这个缺点。

让我们通过一个例子来了解如何使用 RandomStringGenerator 生成安全密码:

GeneratePasswordExample2.java

输出

Java Password Generator

3. 使用 RandomStringUtils

还有一种生成安全密码的方法,即在Apache Commons Lang 库中使用RandomStringUtils 类。RandomStringUtils 类提供了几种生成安全随机密码的方法。该类中的random() 方法在生成密码中起着重要作用。

让我们通过一个例子来了解如何使用 RandomStringUtils 类生成安全密码:

GeneratePasswordExample3.java

输出

Java Password Generator

4. 使用自定义工具方法

还有一种生成安全密码的方法,即使用自定义工具方法。我们使用SecureRandom 类来创建自定义工具类。在这里,我们创建了四个方法,用于获取指定长度的数字、大写字母、小写字母和特殊字符的字符流。之后,我们将它们全部连接起来以生成强密码。

让我们通过一个例子来了解如何使用自定义工具方法生成安全密码:

GeneratePasswordExample4.java

输出

Java Password Generator

上面讨论的所有方法都可用于生成随机安全密码。但是,我们主要使用PassayApache Common Text 库来生成 Java 中的随机安全密码。