Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zufallspasswort mit bestimmten Bedingungen generieren... (https://www.delphipraxis.net/23325-zufallspasswort-mit-bestimmten-bedingungen-generieren.html)

Markus 1. Jun 2004 14:30


Zufallspasswort mit bestimmten Bedingungen generieren...
 
Hi,

wie kann ich ein Zufallspasswort mit folgenden Bedingungen generieren:
1. Mindestens ein Großbuchstabe
2. Mindestens ein Kleinbuchstabe
3. Mindestens ein Sonderzeichen
4. Mindestens eine Zahl

Man soll nur die Länge übergeben können.

Phoenix 1. Jun 2004 14:49

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
Also an der Stelle würde ich die BruteForce-Methode anwenden.

Einfach ein zufälliges Passwort generieren (mit Random und Char) und hinterher alle Bedingungen nacheinander prüfen. Wenn eine der Bedingung nicht zutrifft: Nochmal generieren.

Stanlay Hanks 1. Jun 2004 14:53

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
Ich würde es ähnlich machen. Zuerst das Passwort generieren, und schauen, welche Bedingung schon erfüllt ist. Die, die nicht erfüllt sind, kannst du ja im Nachhinein erfüllen (Also z.B. ein Zeichen durch eine Zahl ersetzen ect)

Man liest sich, Stanlay :hi:

Phoenix 1. Jun 2004 15:01

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
Das hat aber wiederum den Nachteil das durch soetwas a) eine vorher zutreffende Bedingung wieder ungültig wird (es wird der einzige Kleinbuchstabe gegen eine Zahl getauscht) und es b) zum anderen dann nicht mehr so zufällig ist wie vorher, da ja das Ergebnis beeinflusst wird.

Markus 1. Jun 2004 15:03

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
Hallo,

ich weiß wie man zufällig ein Passwort generiert, aber wie kann ich die Bedingungen überprüfen? :gruebel:

nailor 1. Jun 2004 15:04

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
naja. mit den üblichen verdächtigen. alle möglichen stringfunktionen, oder einfach den string zeichen für zeichen durchgehen.

Nalincah 1. Jun 2004 15:08

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
Zitat:

Zitat von Phoenix
Das hat aber wiederum den Nachteil das durch soetwas a) eine vorher zutreffende Bedingung wieder ungültig wird (es wird der einzige Kleinbuchstabe gegen eine Zahl getauscht) und es b) zum anderen dann nicht mehr so zufällig ist wie vorher, da ja das Ergebnis beeinflusst wird.

zu a)
Man kann ja nach jeder Veränderung den Zufallsstring nochmal überprüfen und dann von vorne anfangen (Kann aber auch in ner Endlosschleife enden wenn die Max.-Länge auf z.B. 3 gesetzt wurde)
zu b)
Man kann doch die Zahlen und Zeichen mit denen ersetzt werden sollen auch per Zufall ermitteln

Phoenix 1. Jun 2004 15:09

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
Du erstellst jeweils ein Array mit allen Großbuchstaben, eines mit allen Kleinbuchstaben, eines mit allen Ziffern und eines mit den entsprechenden geforderten Sonderzeichen.

Dann läufst Du das passwort zeichen für Zeichen durch und prüfst für jedes ab, ob es auch in den Arrays enthalten ist. Wenn ja, so ist die Bedingung passend zu dem jeweiligen Array erfüllt. Wenn hinterher eine der Bedingungen noch nicht erfüllt ist, so fängst Du von vorne an.

Etwas Pseudo-Code:
Code:
function pruefepasswd(passwd: string): boolean;
var
   gross, klein, zahl, sonder: boolean
begin
   gross := false;
   klein := false;
   zahl := false;
   sonder := false;


   for i := 0 to Length(passwd) - 1 do
   begin
      gross := gross or passwd[i] in ARRAY_GROSSBUCHSTABEN;
      klein := klein or passwd[i] in ARRAY_KLEINBUCHSTABEN;
      zahl := zahl or passwd[i] in ARRAY_ZAHLEN;
      sonder := sonder or passwd[i] in ARRAY_SONDER;
   end;

   result := gross and klein and zahl and sonder;
end;

Phoenix 1. Jun 2004 15:12

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
Zitat:

Zitat von General2004
zu b)
Man kann doch die Zahlen und Zeichen mit denen ersetzt werden sollen auch per Zufall ermitteln

Wenn Du z.B. mit 3 Würfeln würfelst, und dir eine Zahl davon nicht passt, und Du die nochmal neu würfelst, ist das dann noch Zufall?

Zufällig ist das Ergebnis nur dann, wenn _alle_ Elemente gleich Zufällig sind. Daher ist ein 'nachher nochmal umwerfen' immer berechenbarer als echter Zufall. Klar geht das, aber es ist ein kleines bisschen unsicherer als wenn man den kompletten String neu zusammensetzen lässt.

Markus 1. Jun 2004 15:31

Re: Zufallspasswort mit bestimmten Bedingungen generieren...
 
Okay, ich habs. Danke für die Hilfe :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.

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