Stan: Passwortgenerator?

Hi,

Ich bastle zur Zeit ein Login-Skript für meine HP. Und zwar will ich, dass sich der Benutzer einen eigenen Usernamen aussuchen kann, das Passwort soll aber automatisch generiert werden und per eMail zugeschickt werden. Gibt es irgendeine Möglichkeit aus Buchstaben, Sonderzeichen und Zahlen ein zufälliges Passwort zu generieren?

Stan

  1. Hi Stan,

    Gibt es irgendeine Möglichkeit aus Buchstaben, Sonderzeichen und Zahlen ein zufälliges Passwort zu generieren?

    Klar, schreibe dir eine entsprechede Funktion dafür, die zufällige Zeichenketten erzeugt. Ich hatte solch eine sogar hier schonmal gepostet.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Schon gewusst, dass Bugs und Feature Vorschläge für das CForum ins Entwicklerforum oder in den BugTracker von WWWTech gehören und nicht hier her?
  2. Hi,

    Gibt es irgendeine Möglichkeit aus Buchstaben, Sonderzeichen und Zahlen ein zufälliges Passwort zu generieren?

    sogar mehr als eine. helfen kann dir da
    http://de2.php.net/manual/de/function.chr.php
    http://de2.php.net/manual/de/function.rand.php
    http://de2.php.net/manual/de/function.md5.php
    http://de2.php.net/manual/de/function.substr.php

    du könntest z.B. eine zufallszahl zwischen 1 und 1000 generieren. diese wandelst du mit md5 um. dann ermittelst du einen zufälligen startwert und holst dir die darauf folgenden 8 Zeichen der md5 codierung.

    du könntest aber auch ein Array mit Wörtern erstellen und daraus
    zufällig 2 oder 3 wählen und in einer zufälligen Kobination zusammen
    setzten.

    du könntest auch einfach ein zufälliges Zeichen über chr bis zu einer evt. zufälligen passwortlänge hinzufügen. mit einem

      
    for($z=0; $z<=255; $z++)  
    {  
      $zeichen = chr($z);  
      echo "$z => $zeichen <br>";  
    }  
    
    

    kannst du dir die nötigen zahlen holen.

    und das sind noch lange nicht alle möglichkeiten.

    MfG

  3. Hi!

    Ich bastle zur Zeit ein Login-Skript für meine HP. Und zwar will ich, dass sich der Benutzer einen eigenen Usernamen aussuchen kann, das Passwort soll aber automatisch generiert werden und per eMail zugeschickt werden. Gibt es irgendeine Möglichkeit aus Buchstaben, Sonderzeichen und Zahlen ein zufälliges Passwort zu generieren?

    Schaue dir mal PEAR::Text_Password an. Diese Klasse bietet hierzu allerhand Möglichkeiten an.

    Alternativ könntest du dir eine eigene Funktion basteln:
    Du schreibst alle Zeichen, die für das Passwort erlaubt sein sollen, in ein Array. Anschließend setzt du in einer Schleife, deren Obergrenze die Länge des Passwortes ist, mittels einer Zufallszahl (rand() oder auch mt_rand()) als Array-Index das Passwort zusammen.

    Grüße,
    Fabian St.

    1. Hi,

      Steh leider voll auf der Leitung

      Wie müsste sowas denn aussehen?

      Rb

      1. Hi!

        Steh leider voll auf der Leitung

        Wie müsste sowas denn aussehen?

        z.B. so:

          
        function make_password($length) {  
            $passwd = '';  
            $chars = array(  
                            'A','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',  
                            'a','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',  
                            '0','1','2','3','4','5','6','7','8','9'  
                           ); // eventl. noch ergänzen  
          
            for($i = 0; $i < $length; $i++) {  
                $nr = rand(0, count($chars)); // eventl. auch mt_rand()  
                $passwd .= $chars[$nr];  
            }  
          
          return $passwd;  
        }  
          
        
        

        Grüße,
        Fabian St.

        1. echo $begrüßung;

          $chars = array( 'A','B','C','D','E','F','G','H','I',

          Das ist ja eine ganze Menge Tipparbeit, die du dem OP freundlicherweise abgenommen hast. Da man mit dem Alter fauler wird, kürzt man gerne wo es geht. Z.B. so:

          $chars = 'ABCDEFGH...abcdefg...123...';

          $nr = rand(0, count($chars)); // eventl. auch mt_rand()

          $nr = rand(0, strlen($chars) -1); // minus 1 nicht vergessen!

          $passwd .= $chars[$nr];

          $passwd .= $chars{$nr};

          echo "$verabschiedung $name";

          1. $nr = rand(0, strlen($chars) -1); // minus 1 nicht vergessen!

            Warum "-1" ???

            Rb

            1. Hi,

              $nr = rand(0, strlen($chars) -1); // minus 1 nicht vergessen!
              Warum "-1" ???

              weil sonst unter umständen der maximal wert kommt. also als beispiel:

              string:
              ------------------------------
              |position| 0 | 1 | 2 | 3 | 4 |
              ------------------------------
              | inhalt | H | a | l | l | o |
              ------------------------------

              ein strlen(string) ergibt 5. wenn man nun auf position 5 zugreifen will
              gibts nen fehler. Immer daran denken, es wird bei 0 angefangen zu zählen.

              MfG

            2. echo $begrüßung;

              $nr = rand(0, strlen($chars) -1); // minus 1 nicht vergessen!
              Warum "-1" ???

              Weil rand(a, b) Werte von a bis b, inklusive a und b, liefert. Ein String hat zwar strlen() Zeichen aber der Index geht - von 0 beginnend - nur bis strlen() -1

              echo "$verabschiedung $name";

          2. Hi dedlfix!

            $chars = array( 'A','B','C','D','E','F','G','H','I',

            Das ist ja eine ganze Menge Tipparbeit, die du dem OP freundlicherweise abgenommen hast. Da man mit dem Alter fauler wird, kürzt man gerne wo es geht. Z.B. so:

            Geht es hier denn nur noch um das Alter? ;-) Aber dein Einwand ist berechtigt, so ginge das wirklich etwas einfacher.

            $chars = 'ABCDEFGH...abcdefg...123...';

            $nr = rand(0, count($chars)); // eventl. auch mt_rand()
                    $nr = rand(0, strlen($chars) -1); // minus 1 nicht vergessen!

            Ups, ich dachte, im Hinterkopf zu haben, dass der zweite Parameter von rand() selber nicht mehr als mögliche Zahl zurückgeliefert wird... Naja, ein Blick ins Manual hätte mich eines besseren überzeugt *g*

            Grüße,
            Fabian St.