Gerar strings alfanuméricas aleatórias em C#

Muhammad Maisam Abbas 20 novembro 2021 9 maio 2021 Csharp Csharp String
  1. Gere strings alfanuméricas aleatórias com a classe Random em C#
  2. Gere strings alfanuméricas aleatórias com o método LINQ em C#
  3. Gere strings alfanuméricas aleatórias com a classe RNGCryptoServiceProvider em C#
Gerar strings alfanuméricas aleatórias em C#

Este tutorial discutirá os métodos para gerar uma string alfanumérica aleatória em C#.

Gere strings alfanuméricas aleatórias com a classe Random em C#

A classe Random gera números aleatórios em C#. O método Random.Next() gera um valor inteiro aleatório. Podemos declarar uma variável string constante contendo todos os caracteres alfanuméricos e escolher caracteres da variável string com base no índice gerado pelo método Random.Next().

O exemplo de código a seguir nos mostra como gerar uma string alfanumérica aleatória com a classe Random em 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);
        }
    }
}

Resultado:

vL8M6BNr

Geramos uma string alfanumérica aleatória de 8 caracteres com a classe Random em C#. Em seguida, inicializamos a string characters contendo todos os caracteres alfanuméricos desejados. Criamos a matriz de caracteres Charsarr com um comprimento de 8 caracteres. Em seguida, inicializamos uma instância da classe Random random. Nós iteramos através do array Charsarr e salvamos o caractere em um índice aleatório da string characters em Charsarr a cada vez. Em seguida, convertemos a matriz de caracteres Charsarr para a variável de string resultString e exibimos o resultado.

Gere strings alfanuméricas aleatórias com o método LINQ em C#

O LINQ executa a funcionalidade de consulta em estruturas de dados em C#. Podemos usar o LINQ com a classe Random para melhorar o desempenho do método anterior. O exemplo de código a seguir nos mostra como gerar uma string alfanumérica aleatória com o método LINQ em 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);
        }
    }
}

Resultado:

SXUXK2P8

Criamos uma string alfanumérica aleatória com LINQ e a classe Random em C# no código acima. Este método é mais eficiente do que o método discutido acima.

Gere strings alfanuméricas aleatórias com a classe RNGCryptoServiceProvider em C#

Os métodos discutidos acima não são recomendados para gerar senhas porque eles não são realmente aleatórios e seguem um padrão linear. Para senhas seguras, a classe RNGCryptoServiceProvider deve ser utilizada. A classe RNGCryptoServiceProvider gera números aleatórios criptográficos em C#. O método GetBytes() da classe RNGCryptoServiceProvider preenche um array de bytes com valores aleatórios. Podemos usar o método GetBytes() com o método Convert.ToBase64String() para obter uma string do array de bytes preenchida. O exemplo de código a seguir nos mostra como gerar uma string alfanumérica aleatória segura com a classe RNGCryptoServiceProvider em 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);
        }
    }
}

Resultado:

JGc42Ug3

Geramos uma string alfanumérica aleatória segura com 8 caracteres com a classe RNGCryptoServiceProvider em C# no código acima. Este método é recomendado se quisermos gerar senhas aleatórias porque é relativamente seguro e imprevisível do que os dois 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

Artigo relacionado - Csharp String

  • C# Converter Int a String
  • C# Converter String em Enum
  • Use Strings na instrução Switch em C#
  • C# Converter String para Data
  • Como converter uma string em Booleano em C#
  • Como converter uma string em uma array de bytes em C#