programacion libro desde codigos cero java vba random

libro - código vb equivalente para un código java



programacion en java desde cero pdf (5)

¿Alguien puede decirme qué hace exactamente este código Java?

SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); byte[] bytes = new byte[20]; synchronized (random) { random.nextBytes(bytes); } return Base64.encode(bytes);

La explicación paso a paso será útil para que pueda recrear este código en VB. Gracias



Crea un generador de números aleatorios (RNG) basado en SHA1, luego Base64 codifica los siguientes 20 bytes devueltos por el RNG.

No puedo decirte por qué lo hace, pero sin un poco más de contexto :-).


Este código obtiene un número aleatorio criptográficamente fuerte de 20 bytes de longitud, luego Base64 lo codifica. Aquí hay una gran cantidad de código de la biblioteca Java, por lo que su suposición es tan buena como la mía en cuanto a cómo hacerlo en VB.

SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); byte[] bytes = new byte[20]; synchronized (random) { random.nextBytes(bytes); } return Base64.encode(bytes);

La primera línea crea una instancia de la clase SecureRandom . Esta clase proporciona un generador de números pseudoaleatorios criptográficamente fuerte.

La segunda línea declara una matriz de bytes de longitud 20.

La tercera línea lee los siguientes 20 bytes aleatorios en la matriz creada en la línea 2. Se sincroniza en el objeto SecureRandom para que no haya conflictos de otros hilos que puedan estar usando el objeto. No se desprende de este código por qué necesita hacer esto.

La cuarta línea Base64 codifica la matriz de bytes resultante. Esto es probablemente para transmisión, almacenamiento o visualización en un formato conocido.


Esto crea un generador de números aleatorios (SecureRandom). Luego crea una matriz de bytes (byte [] bytes), longitud 20 bytes, y la rellena con datos aleatorios.

Esto luego se codifica utilizando BASE64 y se devuelve.

Entonces, en pocas palabras,

  1. Genera 20 bytes aleatorios
  2. Codificar usando Base 64

Usando fragmentos de código puedes llegar a algo como esto

Dim randomNumGen As RandomNumberGenerator = RNGCryptoServiceProvider.Create() Dim randomBytes(20) As Byte randomNumGen.GetBytes(randomBytes) return Convert.ToBase64String(randomBytes)