Welche Art von Regex sollte verwendet werden, um einen md5-Hash abzugleichen.
wie man diese Art von Zeichenfolge validiert 00236a2ae558018ed13b5222ef1bd987
Ich habe so etwas versucht: ('/^[a-z0-9]/') aber es hat nicht funktioniert.
wie erreicht man das? Danke
Wenn Sie eine Zeichenfolge erhalten und diese als md5 validieren möchten, überprüfen Sie einfach die Länge 32 und die Zeichen a-f0-9.
– David Chen
2. Februar 2014 um 22:30 Uhr
Meinen Sie mit “validieren” einfach, dass jede 32-stellige Zeichenfolge, die nur gültige Hexadezimalziffern enthält, durchgelassen wird?
– Chris
2. Februar 2014 um 22:31 Uhr
Zum Beispiel mit [[:xdigit:]] und eine Wiederholung von {32} eingeschlossen in Start- und Endmarkierungen.
– mario
2. Februar 2014 um 22:31 Uhr
Die f Brief war das Problem. Danke
– mwweb
2. Februar 2014 um 22:33 Uhr
Die Einfachheit der Frage – Die erstes Suchergebnis bei Google zufällig ein Duplikat auf genau dieser Seite … als allgemeine Faustregel gilt: Wenn Sie sofort eine Antwort erhalten, haben Sie sich wahrscheinlich nicht genug Mühe mit der Frage gegeben.
– Abgesandter
2. Februar 2014 um 22:42 Uhr
Ryan
Dies ist ein PCRE, das mit einem MD5-Hash übereinstimmt:
define('R_MD5_MATCH', '/^[a-f0-9]{32}$/i');
if(preg_match(R_MD5_MATCH, $input_string)) {
echo "It matches.";
} else {
echo "It does not match.";
}
Hüten Sie sich vor Hashes mit Großbuchstaben. Sowohl Groß- als auch Kleinschreibung sind gültig, daher ist es nicht richtig, die eine oder andere zu eliminieren. Die Regex sollte wahrscheinlich so aussehen: '/^[a-fA-F0-9]{32}$/i'. Beifall.
– el.nicko
12. Juni 2016 um 10:40 Uhr
@el.nicko Ich versuche zu verstehen … da die Regex enthält i Warum beide angeben, wenn die Groß-/Kleinschreibung nicht beachtet wird? a-f Und A-F? Haben Sie irgendwelche Links zum Sichern/Erweitern Ihres Standpunkts?
– mOrloff
13. September 2016 um 0:21 Uhr
@el.nicko das wäre egal, weil es das hat i Modifikator. Der Grund, warum nur der Kleinbuchstabenbereich vorhanden ist und nicht beides, liegt an der i Modifikator.
– Ryan
13. September 2016 um 1:54 Uhr
ACK, da hast du recht. Im Zusammenhang mit der Frage und der gegebenen Antwort haben Sie 100% Recht. Es gibt jedoch einige Setups (z. B. Java), bei denen die i funktioniert nicht oder zumindest nicht wie erwartet, aber das Hinzufügen der Groß- und Kleinschreibung funktioniert und verbessert die Lesbarkeit, je nachdem, wie man es sieht 🙂
– el.nicko
14. September 2016 um 18:59 Uhr
Das sind PCREs. Wie Java das macht, ist nicht relevant. Reguläre Ausdrücke sind nicht immer über Engines hinweg portierbar.
Es ist tatsächlich auch schneller als Regex. Es könnte auch in eine Funktion eingefügt werden (z. B. isHash(string $hash, int $length = 32), für einen geringen Mehraufwand für Funktionsaufrufe. Selbst auf diese Weise ist es wahrscheinlich immer noch schneller als Regex. Bemerkenswert: Es passt zu jedem 32- char hexadezimaler String Es gibt keine Möglichkeit, md5 explizit zu validieren.
– xNull
11. Mai 2018 um 0:01 Uhr
14448200cookie-checkRegex zum Abgleichen von md5-Hashesyes
Wenn Sie eine Zeichenfolge erhalten und diese als md5 validieren möchten, überprüfen Sie einfach die Länge 32 und die Zeichen a-f0-9.
– David Chen
2. Februar 2014 um 22:30 Uhr
Meinen Sie mit “validieren” einfach, dass jede 32-stellige Zeichenfolge, die nur gültige Hexadezimalziffern enthält, durchgelassen wird?
– Chris
2. Februar 2014 um 22:31 Uhr
Zum Beispiel mit
[[:xdigit:]]
und eine Wiederholung von{32}
eingeschlossen in Start- und Endmarkierungen.– mario
2. Februar 2014 um 22:31 Uhr
Die
f
Brief war das Problem. Danke– mwweb
2. Februar 2014 um 22:33 Uhr
Die Einfachheit der Frage – Die erstes Suchergebnis bei Google zufällig ein Duplikat auf genau dieser Seite … als allgemeine Faustregel gilt: Wenn Sie sofort eine Antwort erhalten, haben Sie sich wahrscheinlich nicht genug Mühe mit der Frage gegeben.
– Abgesandter
2. Februar 2014 um 22:42 Uhr