パスワードはランダムな文字列にしましょう。
Apache Commonsの入手
mavenを使って入手
pom.xmlは、こんな感じ。
Apache Commonsはいろいろあるけど、今回は文字列操作なので「Apache Commons Lang」が対象。
1 2 3 4 5 6 | <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.14.0</version> </dependency> |
手動で入手
手動で入手するのであれば、以下のjarを入手することになります。
「Apache Commons Lang」は依存関係がないので、手動でも簡単に手に入れられますね。
https://mvnrepository.com/repos/central
- commons-lang3-3.14.0.jar
※2024年4月現在です。
ちなみに、Apache License 2.0で提供されています。
Apache CommonsのRandomStringUtilsを使ってパスワードを作成するサンプル
数字、英数字などのランダムな文字列を生成して、パスワード文字列を作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import org.apache.commons.lang3.RandomStringUtils; public class RandomStringUtilsTest { public static void main(String[] args) { System.out.println("数字(8文字): " + RandomStringUtils.randomNumeric(8)); System.out.println("英字(12文字): " + RandomStringUtils.randomAlphabetic(12)); System.out.println("英数字(12文字): " + RandomStringUtils.randomAlphanumeric(12)); System.out.println("英数字(4文字以上9文字未満): " + RandomStringUtils.randomAlphanumeric(4, 9)); System.out.println("指定文字列から(16文字): " + RandomStringUtils.random(16, "ABCDEFGabcdefg0123456789")); } } |
実行結果
数字、英数字などのランダムな文字列が生成されます。
1 2 3 4 5 | 数字(8文字): 78520809 英字(12文字): LtQjbvQMQcxi 英数字(12文字): JuF7YtcEcO4c 英数字(4文字以上9文字未満): EptRdF 指定文字列から(16文字): febE6aBgb2g5143A |
サンプルの解説
サンプルを見ての通りで、非常に簡単ですね。
引数は、文字列の長さ。以上・未満でも指定ができます。
また、RandomStringUtils#random(int,String)を使うと、指定の文字から選んでランダムな文字列を作ってくれます。