Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Mein erster Passwort Generator [Delphi] (https://www.delphipraxis.net/128436-mein-erster-passwort-generator-%5Bdelphi%5D.html)

bl4ckb1rd 29. Jan 2009 20:28


Mein erster Passwort Generator [Delphi]
 
Liste der Anhänge anzeigen (Anzahl: 2)
Wie im Titel schon steht: Mein erster Passwort Generator
geschrieben in Delphi.

Zum Programm:

Man kann zwischen einem 6stelligen bis zu einem 25stelligen Password auswählen. Es gibt 8 verschiedene Optionen, die die stärke des Passworts beeinflussen.

- Pw aus nur kleinen Buchstaben
- Pw aus nur großen Buchstaben
- Pw aus großen und kleinen Buchstaben
- Pw aus Zahlen und nur kleinen Buchstaben
- Pw aus Zahlen und nur großen Buchstaben
- Pw aus Zahlen und großen und kleinen Buchstaben
- Pw aus nur Zahlen

- Easy to remember Funktion

Die 'Easy to remember' Funktion generiert ein Passwort welches man einfach aussprechen kann und somit sich leichter merken kann.
Dies wurde dadurch erreicht das sich Konsonante und Vokale immer abwechseln.

Diese Funktion wird nicht unterstütz wenn der Punkt: Pw aus nur Zahlen ausgewählt wurde. (logisch oder? :P )

Den Code kann man sich hier anschauen: http://armag3ddon.bplaced.net/pwgensource.txt

Und das tool kann man sich hier runterladen: http://armag3ddon.bplaced.net/pwgen.zip


Bitte um ein Feedback. Also was euch gefallen hat, was nicht, was ihr gerne verbessern würdet bzw. gerne in einem verbessertem Zustand sehen möchtet ;)

Danke schon mal im voraus!

RWarnecke 29. Jan 2009 20:39

Re: Mein erster Passwort Generator [Delphi]
 
Ich habe Dein Tool noch nicht getestet. Aber Deinen Sourcecode angeschaut. Ich gebe Dir den Rat, Deine Buttons, RadioButtons u.s.w. mit richtigen Namen zu versehen, die die Tätigkeit des Buttons oder des RadioButtons beschreiben. Ich benenne meine Buttons zum Beispiel so Btn_GeneratePwd. Damit weiß ich, wenn ich den Namen im Sourcecode sehe, dass dieser Button dazu da ist, dass Passwort zu generieren. Das erleichtert die Übersicht. Dann könntest Du noch diesen Bereich vereinfachen :

Deine Version:
Delphi-Quellcode:
konsonanteklein[1] := 'b';
konsonanteklein[2] := 'c';
konsonanteklein[3] := 'd';
konsonanteklein[4] := 'f';
konsonanteklein[5] := 'g';
konsonanteklein[6] := 'h';
konsonanteklein[7] := 'j';
konsonanteklein[8] := 'k';
konsonanteklein[9] := 'l';
konsonanteklein[10] := 'm';
konsonanteklein[11] := 'n';
konsonanteklein[12] := 'p';
konsonanteklein[13] := 'q';
konsonanteklein[14] := 'r';
konsonanteklein[15] := 's';
konsonanteklein[16] := 't';
konsonanteklein[17] := 'v';
konsonanteklein[18] := 'w';
konsonanteklein[19] := 'x';
konsonanteklein[20] := 'y';
konsonanteklein[21] := 'z';
Meine Version :
Delphi-Quellcode:
konsonantegross : array[1..21] of string = (b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z);

Namenloser 29. Jan 2009 20:49

Re: Mein erster Passwort Generator [Delphi]
 
Zitat:

Zitat von RWarnecke
Ich habe Dein Tool noch nicht getestet. Aber Deinen Sourcecode angeschaut. Ich gebe Dir den Rat, Deine Buttons, RadioButtons u.s.w. mit richtigen Namen zu versehen, die die Tätigkeit des Buttons oder des RadioButtons beschreiben. Ich benenne meine Buttons zum Beispiel so Btn_GeneratePwd. Damit weiß ich, wenn ich den Namen im Sourcecode sehe, dass dieser Button dazu da ist, dass Passwort zu generieren. Das erleichtert die Übersicht. Dann könntest Du noch diesen Bereich vereinfachen :

Deine Version:
Delphi-Quellcode:
konsonanteklein[1] := 'b';
konsonanteklein[2] := 'c';
konsonanteklein[3] := 'd';
konsonanteklein[4] := 'f';
konsonanteklein[5] := 'g';
konsonanteklein[6] := 'h';
konsonanteklein[7] := 'j';
konsonanteklein[8] := 'k';
konsonanteklein[9] := 'l';
konsonanteklein[10] := 'm';
konsonanteklein[11] := 'n';
konsonanteklein[12] := 'p';
konsonanteklein[13] := 'q';
konsonanteklein[14] := 'r';
konsonanteklein[15] := 's';
konsonanteklein[16] := 't';
konsonanteklein[17] := 'v';
konsonanteklein[18] := 'w';
konsonanteklein[19] := 'x';
konsonanteklein[20] := 'y';
konsonanteklein[21] := 'z';
Meine Version :
Delphi-Quellcode:
konsonantegross : array[1..21] of string = (b,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z);

Meine Version:
Delphi-Quellcode:
konsonantegross : string = 'bcdfghjklmnpqrstvwxyz';
Bei dir sind übrigens auch Vokale drin.

Luckie 29. Jan 2009 20:51

Re: Mein erster Passwort Generator [Delphi]
 
Zitat:

Zitat von NamenLozer
Bei dir sind übrigens auch Vokale drin.

Bei dir auch. :corky:

Matze 29. Jan 2009 20:51

Re: Mein erster Passwort Generator [Delphi]
 
Hallo,

wenn du die Datei schon nicht anhängst, so füge bitte noch die Dateigröße des Zip-Archivs zum Link hinzu, wie es in der Sparte gewünscht wird. ;)

Grüße, Matze

DP-Maintenance 29. Jan 2009 20:51

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Freeware" nach "Open-Source" verschoben.
Der Source ist ebenfalls verfügbar.

bl4ckb1rd 29. Jan 2009 20:55

Re: Mein erster Passwort Generator [Delphi]
 
Ich habs mir denken können das ich diesen block auch irgendwie kürzer machen kann^^

Ändere ich aber morgen weil ich heute keine lust mehr hab :tongue:

Danke auch ;)

himitsu 29. Jan 2009 20:58

Re: Mein erster Passwort Generator [Delphi]
 
hab jetzt auch noch nicht getestet und nur geguckt... :stupid:

warum die ZeichenArrays als String?
1 Zeichen = Char

und wenn du mehrdimensionale Arrays verwendest, dann könntest du die Angelegenheit, mit der Groß- und Kleinschreibungs, einfacher handhaben

Delphi-Quellcode:
easyaabc  : array[1..62] of char = (...);
abc       : array[boolean] of array[1..26] of char = (...);
vokale    : array[boolean] of array[1..5] of char = (('a', 'e', ...), ('A', 'E', ...));
konsonante : array[boolean] of array[1..21] of char = (...);

das ganze dann noch als Konstanten (siehe vorredner) wäre auch schöner ^^

z.B.
Delphi-Quellcode:
if odd(I) then begin
  pw := pw + vokaleklein[random(4)+1];
end
else
begin
  pw := pw + konsonanteklein[random(20)+1];
end;
zu
Delphi-Quellcode:
pw := pw + vokale[odd(I), random(4)+1];
oder halt nur Kleinschreibung
Delphi-Quellcode:
pw := pw + vokale[false, random(4)+1];



oder *editiertes vom vorredner anseh* mit Strings
Delphi-Quellcode:
const easyaabc  = '.....';
abc       : array[boolean] of string = ('...', '...');
vokale    : array[boolean] of string = ('aeiou', 'AEIOU');
konsonante : array[boolean] of string = ('...', '...');
Delphi-Quellcode:
pw := pw + vokale[false][random(4)+1];

BullsEye 29. Jan 2009 21:02

Re: Mein erster Passwort Generator [Delphi]
 
Ich weiß ja nicht, was die Funktion "easy to remember" bei dir bewirkt bzw was die bewirken soll.
Allerdings finde ich nicht, das :

Zitat:

rOmoQegIBIyapiTa8AtIfo
Einfach zu behalten ist ;)


Du solltest ggf noch eine Funktion "in die Zwischenablage kopieren" einbauen ;)

himitsu 29. Jan 2009 21:07

Re: Mein erster Passwort Generator [Delphi]
 
Zitat:

Zitat von BullsEye
Allerdings finde ich nicht, das :
Zitat:

rOmoQegIBIyapiTa8AtIfo
Einfach zu behalten ist ;)

romo qegibi yapita 8 @ ifo

geht doch? :angel2:

bl4ckb1rd 29. Jan 2009 21:10

Re: Mein erster Passwort Generator [Delphi]
 
@ BullsEye: Je länger das pw desto schwieriger ist es zu behalten ;) Die Funktion bringst eben nur wenn man ca. 6-10 stellen hat und am besten nur große und nur kleine buchstaben da sind.

@ himitsu: uff

Leider bin ich noch richtiger anfänger in sachen Delphi. Was sind die Vorteile von constanten? Was sind überhaupt constante in Programmiersprachen o.O ?
Wie versteh ich diese Zeile:

Delphi-Quellcode:
 abc       : array[boolean] of array[1..26] of char = (...);
Wozu ist der array[boolean] da? Und char kann doch nur 1 zeichen aufnehmen, was sind dann die 3 punkte in der klammer?



Sowie ich es verstanden habe, wird in der folgenden zeile nur dann was aus dem array genommen wenn odd(I) true ist?

Delphi-Quellcode:
pw := pw + vokale[odd(I), random(4)+1];

Srry wenn jetzt so viel fragen da sind und manche vielleicht total 'dumm' sind aber ich möchte gerne alles verstehen ;)

himitsu 29. Jan 2009 21:31

Re: Mein erster Passwort Generator [Delphi]
 
[add]
@NameLozer: ist dir aufgefallen, daß dein konsonantegross klein ist? :mrgreen:
[/add]


Konstanten sind sowas wie vordefinierte und nicht ädebare Variablen

z.B.:
Delphi-Quellcode:
const name = 'ein Text';

const einezahl = 13;

Delphi-Quellcode:
const abc : array[boolean] of array[1..4] of char = (('a', 'b', 'c', 'd'), ('A', 'B', 'C', 'D'));

const abc : array[boolean] of array[1..4] of char = ('abcd', 'ABCD');

const abc : array[false..true] of array[1..4] of char = ('abcd', 'ABCD');

...

const abc : array[boolean] of string = ('abcd', 'ABCD');
(ist intern alles gleich/ähnlich)

Zitat:

Wozu ist der array[boolean] da?
array[typ] entspricht einem Array mit den Grenzen dieses Typs
Delphi-Quellcode:
array[boolean] = array[false..true]
array[byte] = array[0..255]
Zitat:

Und char kann doch nur 1 zeichen aufnehmen, was sind dann die 3 punkte in der klammer?
bei den "..." hatte ich enfach keine Lust da jett alles auszuschreiben :stupid:
da müstest du sozusagen noch die fehlenden Werte nachtragen :zwinker:

Zitat:

sowie ich es verstanden habe, wird in der folgenden zeile nur dann was aus dem array genommen wenn odd(I) true ist?
ODD hat doch als Result einen Boolean ... nja und Anhand dessen Ergebnisses wird dann entweder das erste (false) oder das zweite (true) Arrayfeld genommen

const abc : array[boolean] of array[1..4] of char = ('abcd', 'ABCD');
also abc[true][3] bzw. abc[true, 3] gibt das große 'C' zurück

mr_emre_d 29. Jan 2009 23:41

Re: Mein erster Passwort Generator [Delphi]
 
ich habe mal vor ner Ewigkeit soetwas programmiert

Delphi-Quellcode:
function GenPW(const bSmallLetters, bBigLetters, bNumbers, bEasyToRemember: Boolean;
  wLength: Word): String;
var
  PossibleChars,
  PossibleVocals: String;
  pcLen, pvLen,
  i: Integer;
const
  aVocalsSmall: Array[0..4] of Char =
    'aeiou';
  aVocalsBig: Array[0..4] of Char =
    'AEIOU';
  aSmallLetters: Array[0..25] of Char =
    'abcdefghijklmnopqrstuvwxyz';
  aBigLetters: Array[0..25] of Char =
    'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  aNumbers: Array[0..9] of Char =
    '0123456789';
begin
  if bSmallLetters then
  begin
    PossibleChars := String(aSmallLetters);
    if bEasyToRemember then
      PossibleVocals := String(aVocalsSmall);
  end;
  if bBigLetters then
  begin
    PossibleChars := PossibleChars + String(aBigLetters);
    if bEasyToRemember then
      PossibleVocals := PossibleVocals + String(aVocalsBig);
  end;
  if bNumbers then
    PossibleChars := PossibleChars + String(aNumbers);
  if Length( PossibleChars ) = 0 then
    Result := ''
  else
  begin
    Randomize;
    SetLength(Result, wLength);
    pcLen := Length(PossibleChars);
    pvLen := Length(PossibleVocals);
    for i := 1 to wLength do
      if bEasyToRemember then
      begin
        if i mod 2 = 0 then
          Result[i] := PossibleVocals[1+Random(pvLen)]
        else                                      
          Result[i] := PossibleChars[1+Random(pcLen)];
      end else
        Result[i] := PossibleChars[1+Random(pcLen)];
  end;
end;

lbccaleb 30. Jan 2009 00:42

Re: Mein erster Passwort Generator [Delphi]
 
Weitere Hilfe findest du hier:

Hier im Forum suchenPasswort Generator

tgvoelker 19. Feb 2009 10:12

Re: Mein erster Passwort Generator [Delphi]
 
Cheers,

Macht ja, was es soll, von daher kein Gemecker von mir.

Hinsichtlich der Features und Programmierung verweise ich mal auf ein Ding von mir:

PassGen

Wie überall gilt: Viele Wege führen nach Rom.

Was man sicherlich als guten Anhaltspunkt für einen Benutzer mit ausgeben sollte, ist die Anzahl möglicher KEnnwörter.

Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz