Feedback

Erzeugen eines zufälligen Strings

Sprache: C#

Diese Funktion liefert einen zufälligen String zurück. Diese String kann zum Beispiel für Passwörter oder auch zum Erzeugen von Datein verwendet werden.
private string RandomString(Int64 Length)
{
    System.Random rnd = new System.Random();
    StringBuilder Temp = new StringBuilder();
    for (Int64 i = 0; i < Length; i++)
    {
        Temp.Append(Convert.ToChar(((byte)rnd.Next(254))).ToString());
    }
    return TempToString();
}
private string RandomString(Int64 Length)
{
    System.Random rnd = new System.Random();
    StringBuilder Temp = new StringBuilder();
    for (Int64 i = 0; i < Length; i++)
    {
        Temp.Append(Convert.ToChar(((byte)rnd.Next(254))).ToString());
    }
    return TempToString();
}

5 Kommentare

  1. Warum nicht Next(256)?
    Außerdem könnetest du dann gleich Random.NextBytes nehmen?
    Andererseits hat man bei dem Grundansatz sowieso potentiell eine Menge Steuerzeichen in dem String. Das wird oft nicht gewünscht sein. Wäre nicht schlecht, wenn man auf irgendeine Weise angeben könnte, welche Zeichen verwendet werden sollen.
    Außerdem sind Strings in C# 16-bit-Unicode. Also würde auch problemlos Convert.ToChar(rnd.Next(65536)) funktionieren.

  2. Hi Herbivore,
    die 254 ist einfach nur ein Beispiel und um bestimmt Zeichen zuverwenden könnte man auch rnd.Next(65,130) verwenden.
    Gruß
    Linoge

  3. Es sollte [code]return Temp.ToString();[/code] sein und nicht
    [code]return TempToString();[/code] hast wahrscheinlich nur den Punkt vergessen. Lieber mal drauf aufmerksam machen, auch wenn der Snippet ca. 9 1/2 Jahre alt ist…
    Aaron

  4. @herbivore
    Du kannst es sogar noch weiter treiben – mit UTF-16 können schließlich alle 1.112.064 Unicodezeichen kodiert werden, also dann Zeichen mit:[code]Convert.ToChar(rnd.Next(1112064))[/code]erstellen.