Passwortgenerator
Aus Infostudium Wiki
Inhaltsverzeichnis |
Kategorie
- Schwierigkeit: mittel
- Umfang: mittel
- Lernziel: Schleifen, Strings
Aufgabenstellung
Nun soll endlich mal ein nützliches Programm geschrieben werden. Für die verschiedensten Dinge braucht man andauernd neue Passwörter. Selbst ausgedachte Passwörter sind normalerweise zu unsicher, da man nahebeieinander liegende Tasten oder gar sinnvolle Wörter wählt. Was liegt also näher, als sich einen kleinen Passwortgenerator zu schreiben?
Unser Generator soll über Parameter (siehe unten) gesteuert werden. So kann der gewünschte Zeichensatz (z.B. nur Kleinbuchstaben und Zahlen), die Länge und die Anzahl der zu generierenden Passwörter bequem eingestellt werden. Wird kein Parameter angeben sollen entsprechend Standardwerte benutzt werden. Die erzeugten Passwörter werden auf die Standardausgabe geschrieben.
Parameter
-l : Kleinbuchstaben (lowercase) -u : Großbuchstaben (uppercase) -d : Zahlen (digits) -s : Sonderzeichen (special) -n[x] : setze Passwortlänge auf [x] (number) -c[x] : setze Anzahl der Passwörter auf [x] (count) -f[xy...z] : füge den String [xy...z] dem Zeichensatz hinzu (free)
Beispiele
Hier einige Beispiele zur Verwendung der Parameter:
java Keygen
erzeugt 8 Passwörter der Länge 8 mit Klein- und Großbuchstaben und Zahlen. (Standard)java Keygen -l -n42 -c4
erzeugt 4 Passwörter der Länge 42 nur aus Kleinbuchstaben.java Keygen -n16 -dsl -u
erzeugt 8 Passwörter der Länge 16 mit Klein- und Großbuchstaben, Zahlen und Sonderzeichen.java Keygen -d -fABCDEF
erzeugt 8 Passwörter der Länge 8 mit Zahlen und den Buchstaben A bis F.
Hinweise
Überlege warum die Stringkonkatenation mit dem '+'-Operator häufig ungünstig (langsam) ist. Verwende dort wo es Sinn macht char-Arrays oder die Klasse StringBuffer. In dieser Aufgabe geht es auch darum sich selbst die benötigten Dinge zusammenzusuchen. Verwende also nicht umbedingt die Hilfsklasse Util.
Mache dich mit der Java™ 2 Platform SE 5.0 - API Specification vertraut.
Lösungsvorschlag
- Keygen.java
Hinweis: Der Generator verwendet die von Java erzeugten Pseudozufallszahlen. Will man also einen CIA-Zentralrechner oder ähnliches absichern, sollte man lieber auf "echte" Zufallszahlen zurückgreifen. Für den Hausgebrauch sollte es aber locker reichen...
--Coolcat 19:33, 14. Okt 2006 (CEST)