Genera stringhe alfanumeriche casuali in C#
-
Genera stringhe alfanumeriche casuali con la classe
Random
inC#
-
Genera stringhe alfanumeriche casuali con il metodo LINQ in
C#
-
Genera stringhe alfanumeriche casuali con la classe
RNGCryptoServiceProvider
inC#
Questo tutorial discuterà i metodi per generare una stringa alfanumerica casuale in C#.
Genera stringhe alfanumeriche casuali con la classe Random
in C#
La classe Random
genera numeri casuali in C#. Il metodo Random.Next()
genera un valore intero casuale. Possiamo dichiarare una variabile stringa costante contenente tutti i caratteri alfanumerici e scegliere i caratteri dalla variabile stringa in base all’indice generato dal metodo Random.Next()
.
Il seguente esempio di codice ci mostra come generare una stringa alfanumerica casuale con la classe Random
in 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);
}
}
}
Produzione:
vL8M6BNr
Abbiamo generato una stringa alfanumerica casuale di 8 caratteri con la classe Random
in C#. Quindi abbiamo inizializzato la stringa characters
contenente tutti i caratteri alfanumerici desiderati. Abbiamo creato la matrice di caratteri Charsarr
con una lunghezza di 8
caratteri. Abbiamo quindi inizializzato un’istanza della classe Random
random
. Abbiamo iterato attraverso l’array Charsarr
e salvato il carattere in un indice casuale dalla stringa caratteri
in Charsarr
ogni volta. Abbiamo quindi convertito l’array di caratteri Charsarr
nella variabile stringa resultString
e visualizzato il risultato.
Genera stringhe alfanumeriche casuali con il metodo LINQ in C#
LINQ esegue la funzionalità di query sulle strutture di dati in C#. Possiamo usare LINQ con la classe Random
per migliorare le prestazioni del metodo precedente. L’esempio di codice seguente mostra come generare una stringa alfanumerica casuale con il metodo LINQ in 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);
}
}
}
Produzione:
SXUXK2P8
Abbiamo creato una stringa alfanumerica casuale con LINQ e la classe Random
in C# nel codice sopra. Questo metodo è più efficiente del metodo discusso sopra.
Genera stringhe alfanumeriche casuali con la classe RNGCryptoServiceProvider
in C#
I metodi discussi sopra non sono consigliati per la generazione di password perché non sono realmente casuali e seguono uno schema lineare. Per password sicure, dovrebbe essere utilizzata la classe RNGCryptoServiceProvider
. La classe RNGCryptoServiceProvider
genera numeri casuali crittografici in C#. Il metodo GetBytes()
della classe RNGCryptoServiceProvider
riempie un array di byte con valori casuali. Possiamo usare il metodo GetBytes()
con il metodo Convert.ToBase64String()
per ottenere una stringa dall’array di byte riempiti. Il seguente esempio di codice ci mostra come generare una stringa alfanumerica casuale sicura con la classe RNGCryptoServiceProvider
in 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);
}
}
}
Produzione:
JGc42Ug3
Abbiamo generato una stringa alfanumerica casuale sicura con 8 caratteri con la classe RNGCryptoServiceProvider
in C# nel codice precedente. Questo metodo è consigliato se vogliamo generare password casuali perché è relativamente sicuro e imprevedibile rispetto ai due metodi precedenti.
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