2008-09-16 12 views
4

Quelqu'un peut-il me dire ce que fait exactement ce code Java?code vb équivalent pour un code java

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

return Base64.encode(bytes); 

étape par étape explication sera utile pour que je puisse recréer ce code dans VB. Merci

Répondre

5

Utilisation des extraits de code que vous pouvez obtenir à quelque chose comme ça

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

Ceci crée un générateur de nombres aléatoires (SecureRandom). Il crée ensuite un tableau d'octets (octets [] octets), longueur 20 octets, et le remplit avec des données aléatoires.

Il est ensuite codé à l'aide de BASE64 et renvoyé.

Ainsi, en un mot,

  1. Generate 20 octets
  2. Encode aléatoire en utilisant la base 64
1

Il crée un nombre aléatoire basé SHA1 générateur (RNG), puis base64 code suivant 20 octets retournés par le RNG.

Je ne peux pas vous dire pourquoi il le fait cependant sans plus de contexte :-).

1

Ce code obtient un nombre aléatoire cryptographiquement fort de 20 octets, puis Base64 le code. Il y a beaucoup de code de bibliothèque Java ici, donc votre estimation est aussi bonne que la mienne quant à la façon de le faire en VB.

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

La première ligne crée une instance de la classe SecureRandom. Cette classe fournit un générateur de nombres pseudo-aléatoires cryptographiquement fort.

La deuxième ligne déclare un tableau d'octets de longueur 20.

La troisième ligne lit les 20 octets aléatoires dans le tableau créé dans la ligne 2. Il se synchronise sur l'objet SecureRandom afin qu'il n'y ait pas de conflit d'autres threads qui peuvent utiliser l'objet. Ce code n'indique pas pourquoi vous devez le faire.

La quatrième ligne Base64 code le tableau d'octets résultant. C'est probablement pour la transmission, le stockage ou l'affichage dans un format connu.