Ankündigung

Einklappen
Keine Ankündigung bisher.

Reguläre Ausdrücke für Kontrolle

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Reguläre Ausdrücke für Kontrolle

    Ich benötige für meine Passwortkontrolle einen regulären Ausdruck.

    Das Passwort soll (laut Vorschrift) aus mind. 6 Zeichen bestehen, wovon 2 davon eine Zahl sein müssen.
    Wie kann ich das ganze nun in einen regulären Ausdruck bringen?!?

    Ich dachte an sowas wie:

    ^[a-zA-Z0-9]{6,}$

    Aber wie bekomm ich die Bedingung in den Regulären Ausdruck, dass min. 2 Zahlen sein sollen?


    Daanke schomal für eure Hilfe.


  • #2

    Kommentar


    • #3
      Ein Tipp:
      Wenn das Passwort nach bestimmten Regeln vorgeschrieben ist, ist ein BroodForce-Angriff leichter, weil alle Passworte, die den Kriterien nicht entsprechen nicht durchgeprüft werden müssen.
      Ich würde vorschlagen, dass du einfach den Vorschlag machst, zwei Zahlen einzubauen.
      Den Zwang dazu halte ich für wenig sinnvoll.
      Es ist für viele eine Abschreckung. Denn der Besucher will einfach nur das Angebot nutzen und sich nicht um solche Details kümmern müssen, das Drumrum interessiert ihn nicht.
      Und mal ehrlich was ist als Passort gegen 'zaubersimsalabim' einzuwenden. Das dauert ne Weile, das rauszubekommen.

      Aber zum Thema:
      PHP-Code:
      <?php
      $pw 
      'asd23';
      $zahlenCounter 0;
      for(
      $i 0$i strlen($pw); $i++) {
          if(
      preg_match('#[0-9]#'$pw[$i])) {
              
      $zahlenCounter++;
          }
      }

      if(
      $zahlenCounter 1) {
          echo 
      'bin Happy!';
      } else {
          echo 
      'bestehe auf meiner Doktrin!';
      }
      ?>
      Wenn dich was ankotzt, machs besser.

      Kommentar


      • #4
        Danke dir.

        Sowas mit ner Schleife war auch meine Idee, aber ich dachte, es geht "einfacher" mit nem Regulären Ausdruck.

        Kommentar


        • #5
          Ein entsprechender regulärer Ausdruck könnte beispielswiese so aussehen:
          PHP-Code:
          <?php
              $regex 
          '|^([a-z\d]*\d[a-z\d]*\d[a-z\d]*){6, }$|i';
          ?>

          Kommentar


          • #6
            Ne .. das is nicht der richtige Ausdruck.

            Hab es mit 3 Wörtern probiert.

            Kommentar


            • #7
              Zitat von Gertrud
              Hab es mit 3 Wörtern probiert.
              Mit welchen Worten hast du es getestet?

              Kommentar


              • #8
                Zitat von xabbuh
                Ein entsprechender regulärer Ausdruck könnte beispielswiese so aussehen:
                PHP-Code:
                <?php
                    $regex 
                '|^([a-z\d]*\d[a-z\d]*\d[a-z\d]*){6, }$|i';
                ?>
                Der Bedingt, dass es min sechs Zeichen sein müssen.
                Aber wo in dem Ausdruck steht, dass es min 2 Zahlen sein müssen?

                Gruß
                Der Desian
                Wenn dich was ankotzt, machs besser.

                Kommentar


                • #9
                  Wozu mit einem Regex sich das Leben schwer machen?
                  PHP-Code:
                  <?php
                  if(preg_match('#[0-9]{2,}#'$var) AND strlen($var) >= 6) {
                          
                  // Gueltiges Passwort
                  }
                  ?>

                  Kommentar


                  • #10
                    Wozu mit einem Regex sich das Leben schwer machen?
                    Weil man dann z.B. bei dir nicht '++++99' Eingeben kann

                    strlen($var) >= 6
                    Hier kann man alles mögliche eingeben ...

                    Kommentar


                    • #11
                      Zitat von DerDesian
                      Der Bedingt, dass es min sechs Zeichen sein müssen.
                      Aber wo in dem Ausdruck steht, dass es min 2 Zahlen sein müssen?
                      Das sollten eigentlich die \d vor [a-z\d] sicherstellen.

                      Zitat von Chr!s
                      preg_match('#[0-9]{2,}#', $var)
                      Das funktioniert auch nur so lange, wie die beiden Zahlen direkt hintereinander stehen.

                      Kommentar

                      Lädt...
                      X