Ankündigung

Einklappen
Keine Ankündigung bisher.

Regex: MD5 überprüfen

Einklappen

Neue Werbung 2019

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

  • Regex: MD5 überprüfen

    Hi
    suche einen simplen Regex Ausdruck, um zu prüfen ob eine Zeichenkette von md5-hashes valid ist.
    MD5 checkt man meines wissens mit
    PHP-Code:
    ([0-9a-f]){32
    , kann mir da jemand ein vollständiges Regex inkl. preg_match(...) zaubern? Möchte überprüfen ob das valid ist:
    (MD5)-(MD5)-(MD5)-(MD5)

    (MD5) steht für einen MD5 hash, also insgesamt 4 aneinandergereihte Hashes mit Strich dazwischen. Sollte eigentlich nicht so kompliziert sein oder?

    Thomas

  • #2
    Woran genau scheiterts?

    [MOD: verschoben]
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      PHP-Code:
        $to_check md5("test");
        if (
      preg_match("/^[0-9a-f]{32}$/"$to_check)) echo "ok";
          else echo 
      "nich ok"
      Wo ist das Problem?
      Selbst im Rollstuhl kann man die Menschenrechte mit Füßen treten.
      Die Politik darf kein hirnfreier Raum sein.

      Kommentar


      • #4
        Hi

        ich möchte ja überprüfen ob der String in folgendem Format vorliegt:
        (MD5)-(MD5)-(MD5)-(MD5)

        also 4 Hashes mit Strich dazwischen

        Kommentar


        • #5
          Zitat von warkid Beitrag anzeigen
          ich möchte ja überprüfen ob der String in folgendem Format vorliegt:
          (MD5)-(MD5)-(MD5)-(MD5)
          Und wie sieht dein Versuch aus?

          Wenn du einen Ausdruck für den MD5-Teil schon hast - dann sollte es ja wohl nicht so schwer sein, noch den Rest hinzu zu basteln.
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            geht das so?
            PHP-Code:
            if (preg_match("/^([0-9a-f]{32})-([0-9a-f]{32})-([0-9a-f]{32})-([0-9a-f]{32})$/"$str)) echo "ok!"

            Kommentar


            • #7
              Wieso probierst du es nicht aus?

              Kommentar


              • #8
                für HEX-code gibt es außerdem eine eigene Zeichenklasse: [digit:]

                Kommentar


                • #9
                  PHP-Code:
                  function checkMD5($string$count 1$separator '-')
                  {
                      
                  $md5s explode($separator$string);
                      
                      if(
                  count($md5s) != $count) {
                          return 
                  false;
                      }
                      else {
                          foreach(
                  $md5s as $md5) {
                              if(
                  strlen($md5) !== 32 && !ctype_xdigit($md5)) {
                                  return 
                  false;
                              }
                          }
                      }
                      
                      return 
                  true;

                  Kommentar


                  • #10
                    @soul-mole:

                    In der Zeile
                    PHP-Code:
                    if(strlen($md5) !== 32 && !ctype_xdigit($md5)) return false
                    muss aber ein "oder" || hin:

                    PHP-Code:
                    if(strlen($md5) !== 32 || !ctype_xdigit($md5)) return false

                    Kommentar


                    • #11
                      Korrekt!

                      Ich hatte es nur so runter getippt und nicht weiter getestet...

                      Der Vollständigkeit halber noch der passende Ausdruck, wenn auch weniger flexibel als die Funktion:
                      Code:
                      ^(?:[A-Fa-f0-9]{32}-){3}[A-Fa-f0-9]{32}$

                      Kommentar

                      Lädt...
                      X