2008-09-16 10 views
4

Kann mir jemand sagen, was genau macht dieser Java-Code?äquivalenter Vb-Code für einen Java-Code

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

return Base64.encode(bytes); 

Schritt für Schritt erklärt wird nützlich sein, so dass ich diesen Code in VB neu erstellen kann. Danke

Antwort

5

Verwenden von Code-Schnipsel Sie so etwas wie dieses

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

Dies schafft einen Zufallsgenerator (SecureRandom). Es erstellt dann ein Byte-Array (Byte [] Byte), Länge 20 Byte und füllt es mit zufälligen Daten.

Dies wird dann mit BASE64 codiert und zurückgegeben.

Also, kurz gesagt,

  1. generieren 20 zufällige Bytes
  2. Encode Basis mit 64
1

Es hat eine SHA1 basiert Zufallszahlengenerator (RNG) erstellt, codiert dann Base64 die nächste 20 Bytes, die vom RNG zurückgegeben werden.

Ich kann dir nicht sagen, warum es das aber ohne etwas mehr Kontext tut :-).

1

Dieser Code erhält eine kryptografisch starke Zufallszahl mit einer Länge von 20 Byte, die Base64 codiert. Es gibt eine Menge Java-Bibliothekscode hier, also ist Ihre Schätzung so gut wie meine, wie man es in VB macht.

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

Die erste Zeile erstellt eine Instanz der SecureRandom Klasse. Diese Klasse stellt einen kryptographisch starken Pseudozufallszahlengenerator bereit.

Die zweite Zeile deklariert ein Byte-Array mit einer Länge von 20

Die dritte Zeile die nächsten 20 Zufallsbytes in das Array liest in Zeile 2 erstellt Es ist auf der Secure Objekt synchronisiert, so dass es keine Konflikte von anderen sind Threads, die das Objekt möglicherweise verwenden. Aus diesem Code geht nicht hervor, warum Sie dies tun müssen.

Die vierte Zeile Base64 codiert das resultierende Byte-Array. Dies ist wahrscheinlich für die Übertragung, Speicherung oder Anzeige in einem bekannten Format.

Verwandte Themen