Generar cadenas alfanuméricas aleatorias en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Genere cadenas alfanuméricas aleatorias con la clase Random en C#
  2. Genere cadenas alfanuméricas aleatorias con el método LINQ en C#
  3. Genere cadenas alfanuméricas aleatorias con la clase RNGCryptoServiceProvider en C#
Generar cadenas alfanuméricas aleatorias en C#

Este tutorial discutirá los métodos para generar una cadena alfanumérica aleatoria en C#.

Genere cadenas alfanuméricas aleatorias con la clase Random en C#

La clase Random genera números aleatorios en C#. El método Random.Next() genera un valor entero aleatorio. Podemos declarar una variable de cadena constante que contenga todos los caracteres alfanuméricos y elegir caracteres de la variable de cadena en función del índice generado por el método Random.Next().

El siguiente ejemplo de código nos muestra cómo generar una cadena alfanumérica aleatoria con la clase 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);
    }
  }
}

Producción :

vL8M6BNr

Generamos una cadena alfanumérica aleatoria de 8 caracteres de longitud con la clase Random en C#. Luego inicializamos la cadena characters que contiene todos los caracteres alfanuméricos deseados. Creamos el array de caracteres Charsarr con una longitud de 8 caracteres. Luego inicializamos una instancia de la clase Random random. Hicimos una iteración a través del array Charsarr y guardamos el carácter en un índice aleatorio de la cadena de characters en Charsarr cada vez. Luego convertimos el array de caracteres Charsarr a la variable de cadena resultString y mostramos el resultado.

Genere cadenas alfanuméricas aleatorias con el método LINQ en C#

LINQ realiza la funcionalidad de consulta en estructuras de datos en C#. Podemos utilizar LINQ con la clase Random para mejorar el rendimiento del método anterior. El siguiente ejemplo de código nos muestra cómo generar una cadena alfanumérica aleatoria con el método 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);
    }
  }
}

Producción :

SXUXK2P8

Creamos una cadena alfanumérica aleatoria con LINQ y la clase Random en C# en el código anterior. Este método es más eficiente que el método discutido anteriormente.

Genere cadenas alfanuméricas aleatorias con la clase RNGCryptoServiceProvider en C#

Los métodos discutidos anteriormente no se recomiendan para generar contraseñas porque no son realmente aleatorias y siguen un patrón lineal. Para contraseñas seguras, se debe utilizar la clase RNGCryptoServiceProvider. La clase RNGCryptoServiceProvider genera números aleatorios criptográficos en C#. El método GetBytes() de la clase RNGCryptoServiceProvider llena un array de bytes con valores aleatorios. Podemos usar el método GetBytes() con el método Convert.ToBase64String() para obtener una cadena del array de bytes llena. El siguiente ejemplo de código nos muestra cómo generar una cadena alfanumérica aleatoria segura con la clase 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);
    }
  }
}

Producción :

JGc42Ug3

Generamos una cadena alfanumérica aleatoria segura con 8 caracteres con la clase RNGCryptoServiceProvider en C# en el código anterior. Se recomienda este método si queremos generar contraseñas aleatorias porque es relativamente seguro e impredecible que los dos métodos anteriores.

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

Artículo relacionado - Csharp String