Si vous voulez un vrai aléatoire de données, puis, malheureusement, vous avez à attendre. Cela comprend les semences pour une SecureRandom PRNG. Rare Mathématiques peuvent pas recueillir des vrais aléatoire de la base de données plus rapide que SecureRandom, bien qu'il puisse se connecter à internet pour télécharger des semences de données à partir d'un site web particulier. Ma conjecture est qu'il est peu probable d'être plus rapide que /dev/random où c'est disponible.
Si vous voulez un PRNG, faire quelque chose comme ceci:
SecureRandom.getInstance("SHA1PRNG");
Ce que les chaînes de caractères sont pris en charge dépend de la SecureRandom fournisseur SPI, mais vous pouvez les énumérer, à l'aide de la Sécurité.getProviders() et le Fournisseur.la méthode getService().
Le soleil est friand de SHA1PRNG, il est donc largement disponibles. Il n'est pas particulièrement rapide que PRNGs aller, mais PRNGs sera juste à croquer des nombres, ce n'est pas bloquant pour la mesure physique de l'entropie.
L'exception est que si vous ne faites pas appel setSeed() avant d'obtenir les données, puis le GÉNÉRATEUR va de la graine elle-même une fois le premier moment de l'appel à next() ou nextBytes(). Il sera généralement faire cela en utilisant une quantité assez faible de vrai aléatoire des données à partir du système. Cet appel peut bloquer, mais rendra votre source de nombres aléatoires beaucoup plus sécurisé que n'importe quelle variante de "hachage à l'heure actuelle avec le PID, ajouter 27, et espérer pour le mieux". Si vous avez besoin de nombres aléatoires pour un jeu, même si, ou si vous voulez que le flux soit reproductible à l'avenir à l'aide de la même semence à des fins de test, une insécurité de semences est toujours utile.