Entwickler-Ecke
Freeware Projekte - Passwortgenerator
Philipp S - Mi 03.08.11 16:46
Titel: Passwortgenerator
Hallo liebe Mitdelphiisten,
ich habe mir seit langem mal wieder die Mühe gemacht ein neues Programm zu entwickeln, mit Delphi 6. ;)
Nach einem einfachen Münzwurfspiel mit dem Besitzer als Gewinner habe ich mir gedacht, mache ich doch mal ein nützliches Programm.
Damit entstand der Passwortgenerator. Hier präsentiere ich euch die erste Stufe des guten Stücks und bitte um reichlich Verbesserungsvorschläge.
Dann habe ich auch gleich noch eine kleine Frage an die Community, wie könnte ich eine kleine Anleitung einbinden, evtl. in noch einem zweiten Fenster, oder eher als Dateilink auf ein PDF? Wie funktioniert das?
MfG Philipp
Moderiert von
Narses: Anhang aktualisiert.
Niko S. - Mi 03.08.11 17:15
Ich hab meinen immer mit CheckBoxen versehen, anstatt mit Radiobuttons.
Finde ich persönlich besser gelöst.
Dazu würde ich eventuell noch ne Box einfügen mit den Sonderzeichen die man drin haben will bzw drin sind.
Und mach die Form kleiner, das ist zu Überdimensioniert.
Die Angabe der Länge kannst du ja über nem SpinEdit regeln.
Wenn es in Delphi 6 noch keinen SpinEdit gibt, kannste es ja leicht selbst bauen.
Sinspin - Do 04.08.11 14:50
Hi,
warum springt die Auswahl der Sicherheisstufe immer wieder auf den ersten Eintrag und nimmt nur Zahlen fürs Password?
Warum gibst du eine derart umständliche Anleitung zum kopieren in die Zwischenablage an wenn es doch auch einfach mit Rechtsclick und im kommenden Popup mit kopieren geht.
Als letztes schließe ich mich meinem Vorredner an und plädiere für Checkboxen zur Auswahl der Zeichengruppen die enthalten sein sollen und einem Freitextfeld für weitere Zeichen die man reinhaben will.
Sliver18 - Do 04.08.11 15:59
Philipp S hat folgendes geschrieben : |
Hallo liebe Mitdelphiisten,
Dann habe ich auch gleich noch eine kleine Frage an die Community, wie könnte ich eine kleine Anleitung einbinden, evtl. in noch einem zweiten Fenster, oder eher als Dateilink auf ein PDF? Wie funktioniert das?
MfG Philipp |
Hey Philipp,
ich hab auch mal eine Methode gesucht, eine PDF anzuzeigen - und stieß dabei ständig auf DLL's oder kostenpflichtige Komponenten. Ich habe dann jedoch einen TWebbroser auf einer TForm plaziert und navigiere dann zu dem PDF - was sich natürlich zu nutze Macht, dass ein dementsprechendes Plugin (hoffentlich) auf dem System, dass das Programm verwendet, installiert ist. Aber das sollte man ja überprüfen können.
Philipp S - Fr 05.08.11 03:16
Hallo,
vielen Dank für die bisherigen Hinweise. :D Das mit dem Zurückspringen des Radiobuttons hatte ich gleich danach bemerkt und korrigiert, da stand ein Befehl doppelt und an der falschen Stelle, konnte es aber leider nicht mehr hochladen!^^ ;)
Die Größe habe ich auch verringert, sieht wirklich besser aus und habe nun das Editfeld mit einem UpDown versehen.
Als nächstes nehme ich mir die Checkboxen vor. Mit der Anleitung möchte ich eine einfache Textdatei einbinden über eine Schaltfläche am besten, wie könnte ich das realisieren??
FG Philipp
Moderiert von
Narses: Anhang in den ersten Beitrag verschoben.
Delete - Fr 05.08.11 05:55
Bingo. :mrgreen:
Immer mein erster Test:
Zitat: |
---------------------------
Passwortgenerator 1.0
---------------------------
'sdfsf' ist kein gültiger Integerwert.
---------------------------
OK
--------------------------- |
HeftCD - Fr 05.08.11 09:36
außerdem fängst Du mit der Einstellung Passwortlänge = 1 an - mittlerweile werden mindestens 10 vorgeschrieben, da man 8 Zeichen auf einem aktuellen Dualcore Laptop auch schon in einem Jahr (253 Tage bei 8 verwendeten aus 62 versch. mögl. Zeichen [Groß,Klein,Zahlen]) cracken kann.
oder arbeitest Du für den CIA und möchtest denen die Arbeit erleichtern? :)
... so, da wollen wir mal:
Da müßte in dem dritten TAB immer noch die Richedit-komponente sein.
Damit kannst Du formatierte RTF Dateien laden (sieht besser aus; dickere Überschriften usw.)
dann ein Button namens "Hilfe"
und in die zweite Form ein MEMO und ein Button 'Close'
ganz oben unter "implementation" in der ersten Form den Namen der zweiten unit eintragen, - also
dann im Hilfe-Button der ersten Form
Delphi-Quelltext
1: 2: 3: 4: 5:
| try form2.Richedit1.lines.loadfromfile('.\HilfeDatei.rtf'); else MessageDlg ('Hilfe-Datei existiert nicht !',mtError, [mbOK], 0); end; |
oder
Delphi-Quelltext
1: 2: 3: 4: 5:
| if FileExists('.\HilfeDatei.rtf') then form2.Richedit1.lines.loadfromfile('.\HilfeDatei.rtf') else messag ... s.o. end; |
.\ im DateinamenString sorgt dafür, daß das Programm später im Anwendungs/Programm/exe) Verzeichnis - aus dem es gestartet wurde - nach der Datei sucht - damit vermeidest Du einen konkreten Pfad wie 'C:\Programme\MeinPWgenerator\Hilfe.rtf' - welcher auf anderen Systemen nicht stimmen muß und zu Fehlern führen könnte.
und dann kannste noch
statt der Radiobuttons die 5 Checkboxen anlegen und 1 weiteres Editfeld.
und machst dann im Generieren Button
Delphi-Quelltext
1: 2: 3: 4:
| if checkbox1.checked then Auswahl := 'ABCDE'; if checkbox2.checked then Auswahl := 'abcde'; ... if checkbox5.checked then Auswahl := 'ABCDEabcd123465' + Edit2.text; |
und genrierst dann davon.
und unter FORM.Create () machste
Delphi-Quelltext
1:
| Edit2.text := ' !"#$%&'()*+,-./:;<=>?@[\]^_`~'; |
(das erste ist ein LEERZEICHEN - könnte man auch noch optional mit ner weiteren Checkbox dranhängen/auslagern)
und dann noch:
ein Button 'Copy'
und trägst dann da ein:
Delphi-Quelltext
1:
| Clipboard.astext := Edit1.text; |
und fügst ganz oben in der unit noch unter USES Windows, sysutils, bla ... , clipbrd; ein, damit's läuft.
und dann vermeide aber bitte einen "Registrieren/KAUFEN - nur 29 Euro" Button :)
weil sowas gibt's schon wie Sand am Meer. :)
und erklär mir doch bitte noch, warum der bei 10.000 Zeichen ganze 4 Sekunden braucht?
[Aha, dafür ist also die Prograessbar doch notwendig ... aber ungewönlich ] - also, WARUM ?
Niko S. - Fr 05.08.11 10:21
Er könnte auch konstanten für die Zahlen und Buchstaben deklarieren.
Delphi-Quelltext
1: 2: 3: 4:
| const lower = 'abcdefghijklmnopqrstuvwxyz'; upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; digit = '0123456789'; |
Und diese dann verbinden..
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Auswahl := ''; if (Box1.Checked) then Auswahl := Auswahl + lower; if (Box2.Checked) then Auswahl := Auswahl + upper; |
Und wenn wir dann schon dabei sind: Wie kontrollier ich, was in einem Edit-Feld eingetragen wird?
Da gibt es mehrere Möglichkeiten...
Direkt beim übernehmen der Zahl
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| ... try ZeichenLaenge := StrToInt(Edit1.text); except ZeichenLaenge := -1 end;
if (ZeichenLaenge = -1) then begin ShowMessage('Du solltest schon eine Zahl eintippen.'); ZeichenLaenge = 1; end; |
Beim Eintippeln der Zahlen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char); begin if not (Key in ['0'..'9', #9, #8]) then Key := #0; end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if not (Chr(Key) in ['0'..'9', #9, #8]) then Key := 0; end; |
Womöglich sollte man beides machen, wobei ich nicht glaube, dass der User versucht das Programm zu hacken um unerlaubte Zeichen einzuschleusen. (Warum auch)...
#8 ist die Tab-Taste und #9 die "Zurück" Taste.
#13 wäre die Enter-Taste
An der Stelle mal ne Frage, besitzt Delphi die Funktion "StrToIntDef"?
PS: Ich könnt schwören, dass gerade wegen dem Fortschrittsbalken, das Generieren der extrem langen Zeichenketten so lange dauert.
Das Programm Zeichnet ja erst das ding bevor es weiter macht und wenn es 10000 mal gezeichnet werden muss (leer -> voll) dann dauert das seine Zeit..
Narses - Fr 05.08.11 12:06
Moin und :welcome: im Forum!
Aktualisiere bitte demnächst dein Programm im ersten Beitrag des Threads, so wie es die Regeln für diese Sparte vorsehen. Danke. ;)
Grund: So muss nicht jeder immer den ganzen Thread durchlesen, um an die aktuellste Version deines Programms zu kommen. :idea:
cu
Narses
Sliver18 - Fr 05.08.11 12:07
Niko S. hat folgendes geschrieben : |
An der Stelle mal ne Frage, besitzt Delphi die Funktion "StrToIntDef"?
|
Ja - Ich habs grad getestet in Delphi 7. Kannte ich noch nicht - danke.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!