Pregunta

¿Alguien puede decirme exactamente lo que hace este código de Java que hacer?

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

return Base64.encode(bytes);

Explicación paso a paso va a ser útil, así que puedo recrear este código en VB.Gracias

¿Fue útil?

Solución

El uso de fragmentos de código se puede llegar a algo como esto

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

Otros consejos

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

Este se codifica usando BASE64 y regresó.

Así, en una palabra,

  1. Generar 20 bytes aleatorios
  2. Codificar usando la Base 64

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

Yo no te puedo decir por qué hace esto, sin embargo, sin algo más de contexto :-).

Este código se obtiene un número aleatorio criptográficamente fuerte que es de 20 bytes de longitud, luego se codifica en Base64.Hay un montón de biblioteca de Java de código aquí, por lo que su conjetura 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 SecureRandom clase.Esta clase proporciona un sistema de encriptación fuerte generador de números pseudoaleatorios.

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

La tercera línea indica el próximo 20 bytes aleatorios en la matriz creada en la línea 2.Se sincroniza en la SecureRandom objeto, por lo que no hay conflictos de otros subprocesos que pueden usar el objeto.No es evidente a partir de este código por qué usted necesita hacer esto.

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

Básicamente el código anterior:

  1. Crea un seguro generador de números aleatorios (para VB ver enlace abajo)
  2. Llena un bytearray de longitud de 20 bytes aleatorios
  3. Codifica en Base64 el resultado (usted probablemente puede utilizar Convertir.ToBase64String(...))

Usted debe encontrar un poco de ayuda aquí:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rngcryptoserviceprovider.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top