web-dev-qa-db-fra.com

Comment créer un tableau de 20 octets aléatoires?

Comment créer un tableau de 20 octets aléatoires en Java?

113
novicePrgrmr

Essaie le Random.nextBytes méthode:

byte[] b = new byte[20];
new Random().nextBytes(b);
248
maerics

Si vous voulez un générateur de nombres aléatoires doté d'une force de cryptographie élevée (également thread-safe) sans utiliser d'API tierce, vous pouvez utiliser SecureRandom.

Java 6 et 7:

SecureRandom random = new SecureRandom();
byte[] bytes = new byte[20];
random.nextBytes(bytes);

Java 8 (encore plus sécurisé):

byte[] bytes = new byte[20];
SecureRandom.getInstanceStrong().nextBytes(bytes);
36
DavidR

Si vous utilisez déjà Apache Commons Lang, le RandomUtils en fait un one-liner:

byte[] randomBytes = RandomUtils.nextBytes(20);
15
Duncan Jones

Java 7 introduit ThreadLocalRandom qui est isolé du fil actuel.

Ceci est une autre interprétation de solution de maerics .

final byte[] bytes = new byte[20];
ThreadLocalRandom.current().nextBytes(bytes);
8
Jin Kwon

Créez un objet Random avec une graine et obtenez le tableau au hasard en faisant:

public static final int ARRAY_LENGTH = 20;

byte[] byteArray = new byte[ARRAY_LENGTH];
new Random(System.currentTimeMillis()).nextBytes(byteArray);
// get fisrt element
System.out.println("Random byte: " + byteArray[0]);