Question

Quelqu'un peut-il me dire ce que fait exactement ce code Java?

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

return Base64.encode(bytes);

Une explication pas à pas me sera utile pour pouvoir recréer ce code en VB. Merci

Était-ce utile?

La solution

À l'aide d'extraits de code, vous pouvez obtenir quelque chose comme ceci

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

Autres conseils

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

Ceci est ensuite encodé avec BASE64 et renvoyé.

Donc, en quelques mots,

  1. Générer 20 octets aléatoires
  2. Encoder à l'aide de la base 64

Il crée un générateur de nombres aléatoires basé sur SHA1, puis Base64 code les 20 octets suivants renvoyés par le générateur de ressources aléatoires.

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

Ce code obtient un nombre aléatoire de 20 octets de longueur, d'une force cryptographique élevée, puis codé en Base64. Il y a beaucoup de code de bibliothèque Java ici, donc votre hypothèse est aussi bonne que la mienne sur 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 Classe SecureRandom . Cette classe fournit un générateur de nombres pseudo-aléatoires fort sur le plan cryptographique.

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

La troisième ligne lit les 20 octets aléatoires suivants dans le tableau créé à la ligne 2. Elle se synchronise sur l’objet SecureRandom afin qu’il n’y ait aucun conflit avec les autres threads susceptibles d’utiliser cet objet. Ce code ne montre pas pourquoi vous devez faire cela.

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.

Fondamentalement, le code ci-dessus:

  1. Crée un générateur de nombre aléatoire sécurisé (pour VB, voir le lien ci-dessous)
  2. Remplit un bytearray de longueur 20 avec des octets aléatoires
  3. Base64 code le résultat (vous pouvez probablement utiliser Convert.ToBase64String (...))

Vous devriez trouver de l'aide ici: http://msdn.microsoft.com/en- us / library / system.security.cryptography.rngcryptoserviceprovider.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top