Gerar strings alfanuméricas aleatórias em C#
-
Gere strings alfanuméricas aleatórias com a classe
Random
emC#
-
Gere strings alfanuméricas aleatórias com o método LINQ em
C#
-
Gere strings alfanuméricas aleatórias com a classe
RNGCryptoServiceProvider
emC#
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.
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