Feedback

C# - Passwort generieren

Veröffentlicht von am 10.07.2006
(3 Bewertungen)
Generiert ein Passwort aus den im String "Content" enthaltenen Buchstaben.
GFU-Schulungen  [Anzeige]

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

private string PW(int Länge)
{  
  string ret = string.Empty;
  System.Text.StringBuilder SB = new System.Text.StringBuilder();
  string Content = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw!öäüÖÄÜß\"§$%&/()=?*#-";
  Random rnd = new Random();      
  for( int i = 0; i < Länge; i++)
    SB.Append(Content[rnd.Next(Content.Length)]);
  return SB.ToString();
}
Abgelegt unter Passwort, generieren.

4 Kommentare zum Snippet

Andre schrieb am 17.07.2009:
Hallo,

kann es sein, dass es in der Zeile 8 ...(Content.Length - 1)... heißen muss?

Gruß André
Nico schrieb am 26.07.2009:
Nein, der Paramenter ist die exklusive Obergrenze, da braucht man kein -1 :)

Lg, Nico
biacchh8 schrieb am 29.09.2013:
Man muss Random wiederverwenden, sonst werden keine vernünftigen Zufallszahlen erstellt. Das merkt man, wenn man eine Methode die Random selbst erzeugt in einer Schleife sehr oft hintereinander aufruft.

daher:
private Random mRandom = new Random();

Zitat aus MSDN:
Die Erzeugung der Zufallszahlen startet von einem Startwert. Wenn derselbe Startwert wiederholt verwendet wird, führt dies dazu, dass dieselbe Zahlenfolge erzeugt wird. Eine Möglichkeit, die Erzeugung unterschiedlicher Zahlenfolgen zu gewährleisten, besteht darin, den Startwert zeitabhängig zu machen. Dabei wird für jede neue Instanz von Random eine neue Zahlenfolge erzeugt. Standardmäßig verwendet der parameterlose Konstruktor der Random-Klasse die Systemuhr zum Generieren des Startwerts, während der parametrisierte Konstruktor einen Int32-Wert auf Grundlage der Anzahl von Ticks in der aktuellen Zeit annehmen kann. Da die Uhr jedoch eine endliche Auflösung hat, werden durch das Erstellen von unterschiedlichen Random-Objekten mit dem parameterlosen Konstruktor unmittelbar nacheinander Zufallszahlengeneratoren erstellt, die identische Sequenzen von Zufallszahlen erzeugen.

http://msdn.microsoft.com/de-de/library/vstudio/system.random.aspx
Martin Dauskardt schrieb am 15.11.2013:
delete this:

string ret = string.Empty;
 

Logge dich ein, um hier zu kommentieren!