+ Antworten
Ergebnis 1 bis 12 von 12

Thema: [PHP] Passwortgenerator frisst Zeichen?

  1. #1
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420

    [PHP] Passwortgenerator frisst Zeichen?

    Hi,

    ich hab eine kleine Funktion gebastelt, die ein zufälliges Passworte erstellt mit einer angegebenen Länge:

    PHP-Code:
    function generatepw($lenght)
    {
        
    $pass "";
        
    $index 1;
        while (
    $index <= $lenght)
        {
            
    mt_srand((double)microtime()*1000000);
            
    $random mt_rand(0,61);
            
    $pass .= substr("abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZ0123456789"$random1);
            
    $index++;
        }
        return 
    $pass;

    Wenn ich nun zum Beispiel die Länge "8" angebe, erstellt er mir ein Passwort mit 8 Zeichen. Allerdings nicht immer, manchmal sind es nur 7 oder 6.

    Kann man ganz einfach überprüfen:

    PHP-Code:
    $zahl=0;
    while (
    $zahl <= 20)
    {
        echo 
    generatepw(8); echo "<br>";
        
    $zahl++;

    Einige Passwört haben fehlende Zeichen ... hat jemand eine Ahnung, wieso? Danke!
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  2. #2
    TP-Supporter wanni macht alles soweit korrekt Avatar von wanni
    Registriert seit
    Mar 2001
    Ort
    Göttingen
    Beiträge
    480
    Probier mal, das Leerzeichen vor abcdef... zu löschen
    Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)

  3. #3
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Äh, da ist normalerweise keins - das hat das Forum hier gemacht
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  4. #4
    TP-Supporter wanni macht alles soweit korrekt Avatar von wanni
    Registriert seit
    Mar 2001
    Ort
    Göttingen
    Beiträge
    480
    Ok

    dann mach mal

    PHP-Code:
    $random mt_rand(0,60); 
    sollte funktionieren
    Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)

  5. #5
    TP-Supporter wanni macht alles soweit korrekt Avatar von wanni
    Registriert seit
    Mar 2001
    Ort
    Göttingen
    Beiträge
    480
    Oder Du lernst nochmal das Alphabet

    In der Zeichenkette fehlen sowohl "w" als auch "W", dann müßte es auch wieder mt_rand(0,61) heißen
    Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)

  6. #6
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Aaah, das wars ... danke *roll*
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  7. #7
    seb
    seb ist offline
    TP-Veteran seb bringt sich richtig ein seb bringt sich richtig ein
    Registriert seit
    Jan 2002
    Beiträge
    1.741
    ...oder du verwendest das hier. Bewirkt genau das gleiche, indem es den aktuellen Timestamp in Millisekunden (microtime()) per MD5 verschlüsselt:

    PHP-Code:
    function generateRandomString($length)
    {
    return 
    substr(md5(microtime()),0$length);


  8. #8
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    @seb

    Habe ich bislang auch immer so gemacht, aber Stuck Mojo hat mich darauf gebracht, dass selbiges nicht der eleganteste Weg ist: Denn Du hast so keine Kontrolle über die verwendeten Zeichen und nicht alle derselbigen sind in Passwörtern wünschenswert (z.B. "I" und "l", Verwechselungsgefahr).

  9. #9
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Aus diesem Grund benutze ich meine Variante - eine 1 und ein l sehen sich auch recht ähnlich ... mit dieser Version kann man Zeichen auch bewusst "weglassen" ...

    Man könnte allerdins auch die md5-Variante nehmen, mit einer RegExp alle I, l und 1 entfernen und dann auf acht Zeichen kürzen
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  10. #10
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Original geschrieben von Adagio


    Man könnte allerdins auch die md5-Variante nehmen, mit einer RegExp alle I, l und 1 entfernen und dann auf acht Zeichen kürzen
    Das kann man in der Tat. Man kann sich aber auch ein Loch ins Knie bohren und heiße Milch draus trinken.

  11. #11
    seb
    seb ist offline
    TP-Veteran seb bringt sich richtig ein seb bringt sich richtig ein
    Registriert seit
    Jan 2002
    Beiträge
    1.741
    oder den String in Großbuchstaben zurückgeben. Der durschnittliche Computerbenutzer wird doch dazu fähig sein, eine 1 von einem I oder auch einem l zu unterscheiden...falls sein Passwort nicht funktioniert, wird ers merken und feststellen, worans liegt.

    Aber falls man unbedingt Kontrolle über die verwendeten Zeichen haben möchte, habt ihr mit eurem Einwand natürlich vollkommen recht.

    edit:

    Noch ein Nachteil von meiner Lösung könnte sein, dass sie eventuell nicht dafür geeignet ist, mehrere Zufallsstrings kurz nacheinander zu erzeugen.

    Sicher wird man sowas vielleicht nie brauchen, aber wenns doch mal vorkommt und der betreffende Computer entsprechend schnell ist , würde er gleiche Passwörter ausgeben, da microtime() ja keine Zufallszahl ist, und die Zeitabstände zwischen den Befehlsausführungen vielleicht kürzer als eine tausendstel Sekunde sein könnten...rein theoretisch...
    Geändert von seb (15.08.2002 um 13:39 Uhr)

  12. #12
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Original geschrieben von seb
    oder den String in Großbuchstaben zurückgeben. Der durschnittliche Computerbenutzer wird doch dazu fähig sein, eine 1 von einem I oder auch einem l zu unterscheiden...falls sein Passwort nicht funktioniert, wird ers merken und feststellen, worans liegt.

    Aber falls man unbedingt Kontrolle über die verwendeten Zeichen haben möchte, habt ihr mit eurem Einwand natürlich vollkommen recht.
    Nur mal als Info, da ich wiedermal an sowas dran bin

    Arial: I,1,l,O,0
    Times New Roman: I,1,l,O,0
    Courier: I,1,l,O,0
    Cenury: I,1,l,O,0

    ...manches sieht sich doch sehr ähnlich... und ich kann aus Erfahrung sagen, dass es nicht so ist, dass der jenige es merkt, sondern eher eine Email schreibt, als an seinem Passwort rumzuprobieren.

    Grussi Jan

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51