ultrashark Geschrieben 13. April 2011 Geschrieben 13. April 2011 Hallo alle zusammen , ich bin relativ neu was das programmieren mit C# angeht ich muss aber nun Folgende Aufgabenstellung lösen . :mod: Ich muss ein Programm schreiben das ein Passwort generiert . Folgende Anforderungen werden an die Methode gestellt: • Die Länge des zu generierenden Passwortes beträgt minimal 4 und maximal 16 Zeichen die gewünschte Länge wird an die Methode übergeben. Wird eine Länge außerhalb des Bereiches angegeben, wird ein leeres Passwort zurückgeliefert • Das Passwort soll aus den ASCII-Zeichen dezimal 35-38, 47-57, 65-93 und 97-122 bestehen • Bei einer Passwortlänge bis 6 Zeichen sollen genau 2 Ziffern enthalten sein, bei einer Länge von 6 bis 10 Zeichen sollen genau 3 Ziffern enthalten sein, ab einer Länge von 10 Zeichen sollen genau 4 Ziffern enthalten sein Hinweis: Verwende in der ASCII-Tabelle die Zeichen im Bereich 35 bis 122 und ignoriere durch geeignete Formulierung von Bedingungen die nicht erwünschten Zeichen. Erzeuge im Hauptprogramm in einer Schleife 20 Passwörter und gebe Sie untereinander aus. Aber Ich hab Wirklich keine Ahnung wie ich das hingekommen soll :confused: Ich hoffe ihr könnt mir helfen Zitieren
Termi Geschrieben 13. April 2011 Geschrieben 13. April 2011 Sooo, eig. ist das garnicht so Schwer. Du hast dir die Anforderungen ja schon gut strukturiert aufgeschrieben. Nun greifen wir einmal zur ASCII-Tabelle: http://www.asciitable.com/asciifull.gif Wie sieht denn die Eingabemaske aus? Oder wird die Passwortlänge direkt im Programm reglementiert? Ich würde mir einen Zufallsgenerator erstellen dann brauchen wir natürlich noch eine char variable (die dann den dezimalwert übergeben bekommt(ASCII-Tabelle) --> macht daraus dann den character). //Variablen die benötigt werden(können noch mehr sein) Random gen = new Random(); char zeichen; String passwort = ""; int zufallszahl = 0; mit zufallszahl = gen.Next(0,122); holst du dir dann eine Zufallszahl im Bereich von 0-122. Dannach würde ich gucken ob sie in eine der Wertebereiche passt nach dem motto: (So könnte z.B. die Funktion aussehen(ist natürlich nur ein Teil ) zufallszahl = gen.Next(0,122); private void neuesZeichen() { if((zufallszahl >=35 && zufallszahl <= 38) || (zufallszahl >=47 && zufallszahl <=57)....) { zeichen = zufallszahl; passwort += zeichen; } else { neusZeichen(); } } Vielleicht weißt du ja jetzt ein wenig mehr wie du es realisieren kannst. Ich hoffe es hat dir ein wenig geholfen. Lg Zitieren
ultrashark Geschrieben 13. April 2011 Autor Geschrieben 13. April 2011 Danke für deine Antwort das ganze Programm soll nur über die Konsole laufen also alle ein und ausgaben gehen über die Konsole.Und die Passwort Länge soll der Nutzer selber festlegen Können im Bereich von 4 bis 16 Zeichen. Zitieren
ultrashark Geschrieben 13. April 2011 Autor Geschrieben 13. April 2011 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Passwortgenerator { class Reiss_Passwortgenerator { static string passwortgenerierung(string plänge) { Random rand = new Random(); int zufallswert = 0; int plängemethode = 0; string pvorschlag = ""; ; int i = 0; int zahlanzahl = 0; plängemethode = Convert.ToInt32(plänge); // als string übergeben und dann in int konvertiert if (plängemethode < 4 || plängemethode > 16) { return pvorschlag; } if (plänge > 10) { } while (i < plängemethode) { zufallswert = rand.Next(35, 122); //zufallswert erzeugen und mit if überprüfen if ((zufallswert > 35 && zufallswert < 38) || (zufallswert > 47 && zufallswert < 57) || (zufallswert > 65 && zufallswert < 93) || (zufallswert > 97 && zufallswert < 122)) { if (zufallswert > 35 && zufallswert < 38 && zahlanzahl == 2) { pvorschlag = pvorschlag + Char.ConvertFromUtf32(zufallswert); //zeichen dazu addieren Console.WriteLine(pvorschlag); //jedes zeichen wird angezeigt zur überprüfung i++; //zählschleife addieren zahlanzahl++; //zahlanzahl überprüfen } if ((zufallswert > 47 && zufallswert < 57) || (zufallswert > 65 && zufallswert < 93) || (zufallswert > 97 && zufallswert < 122)) { pvorschlag = pvorschlag + Char.ConvertFromUtf32(zufallswert); //zeichen dazu addieren Console.WriteLine(pvorschlag); //jedes zeichen wird angezeigt zur überprüfung i++; } } } return pvorschlag; // wert zurückgeben } static void Main(string[] args) { string plänge; string passwort; Console.Write("Bitte geben Sie die gewünschte Länge Ihres Pasworts an: "); plänge = Console.ReadLine(); passwort = passwortgenerierung(plänge); Console.WriteLine(passwort); Console.ReadKey(); } } } ich hab es so versucht jetzt geht nur die letzte Anforderung noch nicht : Bei einer Passwortlänge bis 6 Zeichen sollen genau 2 Ziffern enthalten sein, bei einer Länge von 6 bis 10 Zeichen sollen genau 3 Ziffern enthalten sein, ab einer Länge von 10 Zeichen sollen genau 4 Ziffern enthalten sein Zitieren
Klotzkopp Geschrieben 13. April 2011 Geschrieben 13. April 2011 Erzeug die Passwörter zunächst ohne Ziffern in der passenden Länge, und häng dann die Ziffern hinten dran. Beispiel: Wenn die Länge 8 sein soll, dann erzeuge 8-3=5 Zufallszeichen und häng 3 Zufallsziffern an. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.