Frage

Kann mir jemand sagen, was genau tut dieser Java-Code tun?

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. Dank

War es hilfreich?

Lösung

Code-Schnipsel können Sie in so etwas wie diese bekommen

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

Andere Tipps

Dies erzeugt einen Zufallszahlengenerator (Secure). Es erstellt dann einen Byte-Array (byte [] Bytes), Länge 20 Bytes, 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 mit Base 64

Es schafft einen SHA1 basierter Zufallszahlengenerator (RNG), dann Base64 codiert das nächste 20 Bytes von der RNG zurückgegeben.

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

Dieser Code wird eine kryptographisch starke Zufallszahl, die 20 Bytes lang ist, dann Base64 codiert sie. Es gibt eine Menge von Java-Bibliothek Code hier, so dass Ihre Vermutung ist so gut wie mein, wie es in VB zu tun.

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 des Secure Klasse. Diese Klasse stellt einen kryptographisch starken Pseudo-Zufallszahlengenerator.

Die zweite Zeile deklariert einen Byte-Array der Länge 20.

Die dritte Zeile liest das nächste 20 zufällige Bytes in das Array in Zeile 2 erstellt Es ist auf dem Secure Objekt synchronisiert, so dass es keine Konflikte von anderen Threads sind, die das Objekt verwenden kann. Es ist nicht ersichtlich, aus diesem Code, warum diese müssen tun.

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

Grundsätzlich ist der Code oben:

  1. Erzeugt einen sicheren Zufallszahlengenerator (für VB siehe Link unten)
  2. Füllt eine bytearray der Länge 20 mit zufälligem Bytes
  3. Base64 codiert das Ergebnis (Sie können sich wahrscheinlich verwenden Convert.ToBase64String (...))

Sie sollten etwas Hilfe finden Sie hier: http://msdn.microsoft.com/en- us / library / system.security.cryptography.rngcryptoserviceprovider.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top