Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:passwortgenerator

Passwortgenerator

Erstelle einen Passwortgenerator, der nach einem Klick auf einen Button ein zufälliges Passwort generiert. Das Passwort soll 12 Stellen haben und aus Groß-, Kleinbuchstaben und Ziffern bestehen.

        private void btnPasswotErzeugen_Click(object sender, EventArgs e)
        {
            // Zufallszahl erzeugen
 
            // Zahl in Buchstaben umwandeln
 
            // Passwort um neuen Buchstaben erweitern
        }

Das Umwandeln von Zahlen in Buchstaben kann z.B. mit Hilfe einer ASCII-Tabelle geschehen.

Hinweis: 10 Zufallszahlen generieren

Wenn wir nur 10 Zufallszahlen benötigen, funktioniert folgender Quelltext.

            tbPasswort.Text = "";
            Random rndZufallszahlengenerator = new Random();
            for (int i = 0; i < 10; i++)
            {
                int iZahl = rndZufallszahlengenerator.Next(10);
                tbPasswort.Text += iZahl;
            }

Zufallszahlen generieren

Man kann die Zufallszahlen (eigentlich Pseudo-Zufallszahlen) auch selbst erzeugen, wenn man verstehen möchte, was in der Klasse Random passiert. Das ist gar nicht so schwierig und wird im Artikel zum Kongruenzgenerator erklärt. Sinnvolle Parameter für die im Artikel erwähnten Parameter stehen im englischen Artikel Linear congruential generator. Eine fertige Implementierung befindet sich in den Fußnoten.1)

Passwortliste speichern

  1. Der Passwortgenerator soll bei einem Klick auf den Button „Speichern“ 100 Passwörter generieren und diese in einer Datei Passwords.txt auf dem Desktop abspeichern.
  2. Wenn das klappt: Erweitere das Programm, so dass der Benutzer über ein Dialogfeld gefragt wird, wo die Datei gespeichert werden soll.

Beachte dazu die Informationen zu Dateioperationen.

Methode ''passwortGenerieren()''

Vermutlich gibt es in dem Quelltext im Moment Doppellungen. So wird das Passwort erstellt, wenn man auf den einen Button drückt und auch beim Drücken des anderen Button. Ein wichtiges Ziel ist, diese Doppelungen zu vermeiden. Warum wohl?

Ein Mittel dafür ist der Einsatz von Methoden. Informiere dich über den Aufbau und Verwendung von Methoden.

Aufgaben

  1. Was ist ein Methodenname, ein Parameter, ein Rückgabewert?
  2. Wie kann eine Methode einen Wert zurückgeben? An wen gibt sie den Wert?
  3. Wo wird festgelegt, welche Arten von Werten eine Methoden zurückgeben darf?
  4. Wie wird eine Methode aufgerufen?
  5. Erstelle nun eine Methode string generierePasswort(), die ein Passwort generiert. Nutze diese Methode und rufe sie in den Eventmethoden der beiden Buttons auf.
  6. Veröffentliche dein Ergebnis.

Lösungen

1) Zufallszahlen generieren:
namespace Zufallszahlengenerator
{
    /// <summary>
    /// Ein Zufallszahlengenerator, der Zufallszahlen gemäßt der Beschreibung unter
    /// https://de.wikipedia.org/wiki/Linearer_Kongruenzgenerator#Linearer_Kongruenzgenerator
    /// erzeugt.
    /// </summary>
    class Zufallszahlengenerator
    {
        long y;
        long a;
        long b;
        long m;
 
        public Zufallszahlengenerator()
            : this(DateTime.Now.Millisecond)
        {
 
        }
 
        public Zufallszahlengenerator(long start)
        {
            // Startwerte übernommen aus https://en.wikipedia.org/wiki/Linear_congruential_generator
            y = start;
            a = 22695477;
            b = 1;
            m = Convert.ToInt64(Math.Pow(2, 31));
        }
 
        /// <summary>
        /// Erzeugt eine Zufallszahl zwischen 0 und dem übergebenen maximalen Wert.
        /// </summary>
        public long nächsteZahl(long max)
        {
            // Bestimmung des nächsten Wertes
            y = (y * a + b) % m;
 
            return y % max;
        }
    }
}
schule/passwortgenerator.txt · Zuletzt geändert: 19.04.2017 08:39 (Externe Bearbeitung)