¿Cómo puedo crear una matriz de 20 bytes aleatorios en Java?¿Cómo crear una matriz de 20 bytes aleatorios?
Respuesta
Prueba el Random.nextBytes
método:
byte[] b = new byte[20];
new Random().nextBytes(b);
Si ya está usando Apache Commons Lang, el RandomUtils
hace de esta una sola línea:
byte[] randomBytes = RandomUtils.nextBytes(20);
Crear una objeto aleatoria con una semilla y obtener la matriz al azar haciendo:
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]);
Java 7 introducido ThreadLocalRandom que es aislado en el hilo actual.
Esta es otra interpretación de maerics's solution.
final byte[] bytes = new byte[20];
ThreadLocalRandom.current().nextBytes(bytes);
Tal vez algunos paréntesis demasiados después de la palabra 'ThreadLocalRandom'? Mejor: 'ThreadLocalRandom.current(). NextBytes (bytes);' –
Si quieres un generador de números aleatorios criptográficamente fuerte (también de subprocesos) sin necesidad de utilizar una tercera parte de la API, puede utilizar SecureRandom
.
Java 6 & 7:
SecureRandom random = new SecureRandom();
byte[] bytes = new byte[20];
random.nextBytes(bytes);
Java 8 (aún más seguro):
byte[] bytes = new byte[20];
SecureRandom.getInstanceStrong().nextBytes(bytes);
quería ver cómo todo el mundo se siente acerca de esto. Lo estoy usando para encriptar paquetes io a través de tcp.
//class
private static ThreadLocal<SecureRandom> ThreadLocalSecureRandom = null;
public static SecureRandom get ()
{
if (ThreadLocalSecureRandom == null)
{
ThreadLocalSecureRandom = new ThreadLocal<>();
}
return ThreadLocalSecureRandom.get();
}
//usage
byte[][] InitialVector = new byte[2][4];
ThreadLocalSecureRandom.get().nextBytes(InitialVector[0]);
ThreadLocalSecureRandom.get().nextBytes(InitialVector[1]);
Más complicado es rara vez mejor. – zaph
@zaph * sarcasmo *? – TheRealChx101
No, no sarcasmo, simplemente tome los bytes necesarios de 'SecureRandom', vea https://stackoverflow.com/a/34912596/451475. – zaph
- 1. PostgreSQL selecciona 20 registros aleatorios
- 2. ¿Generar bytes aleatorios Cocoa?
- 3. Cómo crear una matriz de bytes desde HttpPostedFile
- 4. crear una ArrayList de bytes
- 5. deserializar una matriz de bytes
- 6. Cómo dividir una matriz de bytes
- 7. Crear PrivateKey desde la matriz de bytes
- 8. Crear conjunto de JPG aleatorios
- 9. ¿Cómo convertir una matriz de bytes a una matriz int?
- 10. Cómo convertir una matriz de bytes en una matriz int?
- 11. Java: ¿Cómo "recortar" una matriz de bytes?
- 12. ¿Cómo convierto una matriz de bytes Java en una matriz de bytes Scala?
- 13. Como llegar elementos aleatorios de una matriz
- 14. Recuperar x elementos aleatorios de una matriz
- 15. Generar bytes aleatorios para la clave TripleDES C#
- 16. Eliminando los primeros 16 bytes de una matriz de bytes
- 17. usando parte de una matriz de bytes
- 18. matriz de bytes en groovy
- 19. Convertir una matriz de bytes a una clase que contiene una matriz de bytes en C#
- 20. javascript 5 enteros aleatorios que no duplican 0 - 20
- 21. Convertir matriz de bytes en Bitset
- 22. SQLite cómo declarar como matriz de bytes?
- 23. ¿Cómo crear una lista de 1000 números aleatorios en Erlang?
- 24. Cómo crear una secuencia perezosa de números aleatorios en clojure
- 25. Cómo inicializar una matriz de bytes en Clojure
- 26. ¿Cómo reproducir un video de una matriz de bytes?
- 27. Inserte una matriz de bytes en otra matriz de bytes en una posición específica con C#
- 28. Cómo generar una cadena aleatoria de 20 caracteres
- 29. Convertir una matriz de cadenas a matriz de bytes
- 30. ¿Cómo convierto una matriz de bytes en una cadena?
Después de hacer algunas excavaciones, RandomUtils usa Math.random() bajo el capó, no SecureRandom. Solo quería hacer esto explícito. – Evo510