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();
}
Alte URL:
/snippet/erzeugen-eines-zufaelligen-strings/381
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.
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
Hallo Herbivore,
dieser Snippet kommt deinen Wünschen schon sehr nah:
http://dotnet-snippets.de/dns/passwort-generieren-SID147.aspx
Jan
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
@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.