強力な乱数生成
プラットフォームで最も強力なSecureRandomの実装を取得する。
コード比較
✕ Java 8
// Default algorithm — may not be
// the strongest available
SecureRandom random =
new SecureRandom();
byte[] bytes = new byte[32];
random.nextBytes(bytes);
✓ Java 9+
// Platform's strongest algorithm
SecureRandom random =
SecureRandom.getInstanceStrong();
byte[] bytes = new byte[32];
random.nextBytes(bytes);
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
最強のアルゴリズム
プラットフォームに最適なアルゴリズムを自動的に選択します。
明確な意図
強力な乱数が必要であることをコードで明確に伝えます。
設定可能
管理者がセキュリティプロパティで強力なアルゴリズムを変更できます。
旧来のアプローチ
new SecureRandom()
モダンなアプローチ
getInstanceStrong()
JDKバージョン
9
難易度
初級
JDKサポート
強力な乱数生成
利用可能
JDK 9(2017年9月)以降、広く利用可能
仕組み
getInstanceStrong()は、プラットフォームで最も強力と設定されたSecureRandomの実装を返します。これはセキュリティプロパティ securerandom.strongAlgorithms によって制御されます。
関連ドキュメント