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
Básicamente el código de arriba:
- Crea un generador seguro de números aleatorios (para VB ver el enlace a continuación)
- Rellena un bytearray de longitud 20 con bytes aleatorios
- Base64 codifica el resultado (probablemente pueda usar Convert.ToBase64String (...))
Debería encontrar ayuda aquí: http://msdn.microsoft.com/en-us/library/system.security.cryptography.rngcryptoserviceprovider.aspx
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,
- Genera 20 bytes aleatorios
- 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)