Erzeugen zufälliger alphanumerischer Zeichenketten in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. Generieren Sie zufällige alphanumerische Zeichenketten mit der Klasse Random in C#
  2. Erzeugen von zufälligen alphanumerischen Zeichenketten mit der LINQ-Methode in C#
  3. Erzeugen von zufälligen alphanumerischen Zeichenketten mit der Klasse RNGCryptoServiceProvider in C#
Erzeugen zufälliger alphanumerischer Zeichenketten in C#

In diesem Lernprogramm werden die Methoden zum Generieren einer zufälligen alphanumerischen Zeichenkette in C# erläutert.

Generieren Sie zufällige alphanumerische Zeichenketten mit der Klasse Random in C#

Die Klasse Random generiert Zufallszahlen in C#. Die Methode Random.Next() generiert einen zufälligen ganzzahligen Wert. Wir können eine konstante Zeichenkettenvariable deklarieren, die alle alphanumerischen Zeichen enthält, und Zeichen aus der Zeichenkettenvariablen basierend auf dem von der Methode Random.Next() generierten Index auswählen.

Das folgende Codebeispiel zeigt, wie eine zufällige alphanumerische Zeichenkette mit der Klasse Random in C# generiert wird.

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);
    }
  }
}

Ausgabe:

vL8M6BNr

Wir haben mit der Klasse Random in C# eine zufällige alphanumerische Zeichenkette mit einer Länge von 8 Zeichen generiert. Dann haben wir die Zeichenkette characters initialisiert, die alle gewünschten alphanumerischen Zeichen enthält. Wir haben das Array von Zeichen Charsarr mit einer Länge von 8 Zeichen erstellt. Wir haben dann eine Instanz der Klasse Random random initialisiert. Wir haben das Array Charsarr durchlaufen und das Zeichen jedes Mal in einem zufälligen Index aus der Zeichenkette characters in Charsarr gespeichert. Wir haben dann das Zeichenarray Charsarr in die Stringvariable resultString konvertiert und das Ergebnis angezeigt.

Erzeugen von zufälligen alphanumerischen Zeichenketten mit der LINQ-Methode in C#

Der LINQ führt Abfragefunktionen für Datenstrukturen in C# aus. Wir können den LINQ mit der Klasse Random verwenden, um die Leistung der vorherigen Methode zu verbessern. Das folgende Codebeispiel zeigt, wie mit der LINQ-Methode in C# eine zufällige alphanumerische Zeichenkette generiert wird.

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);
    }
  }
}

Ausgabe:

SXUXK2P8

Wir haben eine zufällige alphanumerische Zeichenkette mit LINQ und der Klasse Random in C# im obigen Code erstellt. Diese Methode ist effizienter als die oben diskutierte Methode.

Erzeugen von zufälligen alphanumerischen Zeichenketten mit der Klasse RNGCryptoServiceProvider in C#

Die oben beschriebenen Methoden werden zum Generieren von Passwörtern nicht empfohlen, da sie nicht wirklich zufällig sind und einem linearen Muster folgen. Für sichere Passwörter sollte die Klasse RNGCryptoServiceProvider verwendet werden. Die Klasse RNGCryptoServiceProvider generiert kryptografische Zufallszahlen in C#. Die Methode GetBytes() der Klasse RNGCryptoServiceProvider füllt ein Byte-Array mit zufälligen Werten. Wir können die Methode GetBytes() mit der Methode Convert.ToBase64String() verwenden, um eine Zeichenkette aus dem Array mit gefüllten Bytes abzurufen. Das folgende Codebeispiel zeigt, wie mit der Klasse RNGCryptoServiceProvider in C# eine sichere zufällige alphanumerische Zeichenkette generiert wird.

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);
    }
  }
}

Ausgabe:

JGc42Ug3

Wir haben mit der Klasse RNGCryptoServiceProvider in C# im obigen Code eine sichere zufällige alphanumerische Zeichenkette mit 8 Zeichen generiert. Diese Methode wird empfohlen, wenn zufällige Kennwörter generiert werden sollen, da sie relativ sicher und unvorhersehbar ist als die beiden vorherigen Methoden.

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

Verwandter Artikel - Csharp String