Générer des chaînes alphanumériques aléatoires en C#

Muhammad Maisam Abbas 16 février 2024
  1. Générer des chaînes alphanumériques aléatoires avec la classe Random en C#
  2. Générer des chaînes alphanumériques aléatoires avec la méthode LINQ en C#
  3. Générer des chaînes alphanumériques aléatoires avec la classe RNGCryptoServiceProvider en C#
Générer des chaînes alphanumériques aléatoires en C#

Ce tutoriel abordera les méthodes pour générer une chaîne alphanumérique aléatoire en C#.

Générer des chaînes alphanumériques aléatoires avec la classe Random en C#

La classe Random génère des nombres aléatoires en C#. La méthode Random.Next() génère une valeur entière aléatoire. On peut déclarer une variable chaîne constante contenant tous les caractères alphanumériques et choisir des caractères de la variable chaîne en fonction de l’index généré par la méthode Random.Next().

L’exemple de code suivant nous montre comment générer une chaîne alphanumérique aléatoire avec la classe Random en C#.

using System;
using System.Linq;

namespace random_alphanumeric_strings {
  class Program {
    static void Main(string[] args) {
      var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
      var Charsarr = new char[8];
      var random = new Random();

      for (int i = 0; i < Charsarr.Length; i++) {
        Charsarr[i] = characters[random.Next(characters.Length)];
      }

      var resultString = new String(Charsarr);
      Console.WriteLine(resultString);
    }
  }
}

Production:

vL8M6BNr

Nous avons généré une chaîne alphanumérique aléatoire de 8 caractères avec la classe Random en C#. Ensuite, nous avons initialisé la chaîne characters contenant tous les caractères alphanumériques souhaités. Nous avons créé le tableau de caractères Charsarr d’une longueur de 8 caractères. Nous avons ensuite initialisé une instance de la classe Random random. Nous avons parcouru le tableau Charsarr et enregistré le caractère à un index aléatoire de la chaîne characters dans Charsarr à chaque fois. Nous avons ensuite converti le tableau de caractères Charsarr en variable chaîne resultString et affiché le résultat.

Générer des chaînes alphanumériques aléatoires avec la méthode LINQ en C#

Le LINQ exécute la fonctionnalité de requête sur les structures de données en C#. Nous pouvons utiliser le LINQ avec la classe Random pour améliorer les performances de la méthode précédente. L’exemple de code suivant nous montre comment générer une chaîne alphanumérique aléatoire avec la méthode LINQ en C#.

using System;
using System.Linq;

namespace random_alphanumeric_strings {
  class Program {
    private static Random random = new Random();
    public static string method2(int length) {
      const string characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
      return new string(
          Enumerable.Repeat(characters, length).Select(s => s[random.Next(s.Length)]).ToArray());
    }
    static void Main(string[] args) {
      string finalString = method2(8);
      Console.WriteLine(finalString);
    }
  }
}

Production:

SXUXK2P8

Nous avons créé une chaîne alphanumérique aléatoire avec LINQ et la classe Random en C# dans le code ci-dessus. Cette méthode est plus efficace que la méthode décrite ci-dessus.

Générer des chaînes alphanumériques aléatoires avec la classe RNGCryptoServiceProvider en C#

Les méthodes décrites ci-dessus ne sont pas recommandées pour générer des mots de passe car elles ne sont pas vraiment aléatoires et suivent un modèle linéaire. Pour les mots de passe sécurisés, la classe RNGCryptoServiceProvider doit être utilisée. La classe RNGCryptoServiceProvider génère des nombres aléatoires cryptographiques en C#. La méthode GetBytes() de la classe RNGCryptoServiceProvider remplit un tableau d’octets avec des valeurs aléatoires. Nous pouvons utiliser la méthode GetBytes() avec la méthode Convert.ToBase64String() pour extraire une chaîne du tableau d’octets rempli. L’exemple de code suivant nous montre comment générer une chaîne alphanumérique aléatoire sécurisée avec la classe RNGCryptoServiceProvider en C#.

using System;
using System.Linq;
using System.Security.Cryptography;

namespace random_alphanumeric_strings {
  class Program {
    static string method3(int length) {
      using (var crypto = new RNGCryptoServiceProvider()) {
        var bits = (length * 6);
        var byte_size = ((bits + 7) / 8);
        var bytesarray = new byte[byte_size];
        crypto.GetBytes(bytesarray);
        return Convert.ToBase64String(bytesarray);
      }
    }
    static void Main(string[] args) {
      string finalString = method3(8);
      Console.WriteLine(finalString);
    }
  }
}

Production:

JGc42Ug3

Nous avons généré une chaîne alphanumérique aléatoire sécurisée de 8 caractères avec la classe RNGCryptoServiceProvider en C# dans le code ci-dessus. Cette méthode est recommandée si nous voulons générer des mots de passe aléatoires car elle est relativement sécurisée et imprévisible par rapport aux deux méthodes précédentes.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Csharp String