Domanda

Qualcuno può dirmi che cosa fa esattamente questo codice Java che fare?

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

return Base64.encode(bytes);

Spiegazione passo passo sarà utile in modo che io possa ricreare questo codice in VB.Grazie

È stato utile?

Soluzione

Utilizzando frammenti di codice si può arrivare a qualcosa di simile a questo

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

Altri suggerimenti

Questo crea un generatore di numeri casuali (SecureRandom).Si crea quindi un array di byte (byte[] byte), lunghezza 20 byte, e popolarlo con i dati casuali.

Questo è quindi codificata con BASE64 e restituiti.

Così, in sintesi,

  1. Generare il 20 byte casuali
  2. Codificare utilizzando di Base 64

Crea un SHA1 basato generatore di numeri casuali (RNG), poi Base64 codifica per il prossimo 20 byte restituito dal RNG.

Non posso dirvi perché si fa questo, tuttavia, senza un po più di contesto :-).

Questo codice si ottiene un di numeri casuali crittograficamente sicuro che è di 20 byte di lunghezza, poi Base64 codifica.C'è un sacco di libreria Java qui il codice, in modo che il tuo indovinare è buono come il mio per come farlo in VB.

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

La prima riga crea un'istanza della SecureRandom classe.Questa classe fornisce una crittografia forte generatore di numeri pseudo casuali.

La seconda riga dichiara un array di byte di lunghezza 20.

La terza riga si legge il prossimo 20 byte casuali in un array creato in linea 2.Sincronizza il SecureRandom oggetto in modo che non ci siano conflitti da parte di altri thread che potrebbero utilizzare l'oggetto.Non è evidente da questo codice perché avete bisogno di fare questo.

La quarta linea Base64 codifica risultante matrice di byte.Questo è probabilmente per la trasmissione, la conservazione, o la visualizzazione in un formato conosciuto.

Fondamentalmente il codice di cui sopra:

  1. Crea un sicuro generatore di numeri casuali (per VB vedi link sotto)
  2. Riempie un bytearray di lunghezza 20 byte casuali
  3. Base64 codifica il risultato (probabilmente si può usare la Conversione.ToBase64String(...))

Si dovrebbe trovare qualche guida qui:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rngcryptoserviceprovider.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top