Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :D

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...