最近、エントロピーの欠如とRand IOの原因となったハングが原因でした。
Java_OPTS=-Djava.security.egd=/dev/urandom ./myStartScript.sh
Windowsで同等のものは何ですか?私たちはLinuxサーバーとWindowsサーバーの両方でアプリを実行しています。LinuxサーバーはOpenJDK JREを使用し、WindowsサーバーはOracle JREを使用しています。
CryptGenRandom
について多くの提案を見つけましたが、JVMレベルでそれをアプリに渡すにはどうすればよいですか?
これを確認するドキュメントがjre/lib/security/Java.securityにありました。ここに引用があります
「Sun」プロバイダーの「SHA1PRNG」および「NativePRNG」SecureRandom実装のシードデータのプライマリソースを選択します。 (他のSecureRandom実装もこのプロパティを使用する場合があります。)
Unixライクなシステム(たとえば、Solaris/Linux/MacOS)では、「NativePRNG」および「SHA1PRNG」の実装は、file:/ dev/randomなどの特別なデバイスファイルからシードデータを取得します。
Windowsシステムでは、URL「file:/ dev/random」または「file:/ dev/urandom」を指定すると、SHA1PRNGのネイティブMicrosoft CryptoAPIシードメカニズムが有効になります。
デフォルトでは、「securerandom.source」セキュリティプロパティで指定されたエントロピー収集デバイスを使用しようとします。指定されたURLへのアクセス中に例外が発生した場合:
SHA1PRNG: the traditional system/thread activity algorithm will be used. NativePRNG: a default value of /dev/random will be used. If neither are available, the implementation will be disabled. "file" is the only currently supported protocol type.