Feedback

C# - Erzeugen eines zufälligen Strings

Veröffentlicht von am 18.12.2006
(3 Bewertungen)
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.
Snippet in VB übersetzen
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();
}
Abgelegt unter String, Random, Zufall, Passwort, Datei.

5 Kommentare zum Snippet

herbivore schrieb am 18.12.2006:
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.
Linoge schrieb am 20.12.2006:
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
Jan Welker schrieb am 06.02.2007:
Hallo Herbivore,
dieser Snippet kommt deinen Wünschen schon sehr nah:
http://dotnet-snippets.de/dns/passwort-generieren-SID147.aspx
Jan
kingaaron99 schrieb am 11.06.2016:
Es sollte
return Temp.ToString();
sein und nicht
return TempToString();
hast wahrscheinlich nur den Punkt vergessen. Lieber mal drauf aufmerksam machen, auch wenn der Snippet ca. 9 1/2 Jahre alt ist...
Aaron
Heinz_28 schrieb am 28.07.2016:
@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:
Convert.ToChar(rnd.Next(1112064))
erstellen.
 

Logge dich ein, um hier zu kommentieren!