Erstellen preg_match für die Passwort-Validierung ermöglichen (!@#$%)
Ich würde gern ein preg_match
Funktion zu bestätigen auf die vergessenen Kennwörtern, aber ich bin mir nicht sicher, wie Sie Sie schreiben es so, dass die folgenden Sonderzeichen verwendet werden: !@#$%
.
if(!preg_match(?????)$/', $password))
Hier sind meine Passwort-Regeln, dass ich arbeiten will, in der regex:
- Enthalten können Buchstaben und zahlen
- Muss mindestens 1 Zahl und 1 Buchstaben
- Kann eines dieser Zeichen enthalten:
!@#$%
- Muss 8-12 Zeichen
Danke für jede Hilfe, die Sie anbieten können.
- bitte beachten Sie dass Sie längere Passwörter, die ich lieber meine 20 + Zeichen lang sein, und es wird nicht weh tun Sie dies zulassen. Ich verstehe nicht, Webseiten, die eine Länge - Sie lagern Hash-wo ist also das problem?
- Ich habe erhöht die max 50 Zeichen. Es ist eine einfache Website, und ich denke, ich dachte nur 8-12 Zeichen wäre für die Menschen leichter zu merken und weniger wahrscheinlich zu müssen, um Ihr Passwort zurückzusetzen. Aber wie du schon gesagt hast, mit dem Passwort verschlüsselt ist, ist es wirklich nicht, dass große Sache.
- ich lasse lastpass an alle meine Passwörter für mich 🙂
- 8-12 ist immer noch kurz genug, um brute-force Recht einfach wenn. Während Sie arbeiten gut gegen kausale knacken versucht, 90% der 16-Zeichen-Passwörter geknackt werden kann in in unter einer Stunde mit modernen hybrid-brute-force-Techniken (die sind noch einfacher, wenn Sie wissen, die max Passwort Länge und Charakter, Umfang); also schlage ich vor, eine Obergrenze von 32 bis 64 Zeichen und möglicherweise die Einbeziehung der 2-Faktor-Authentifizierung, vor allem, wenn dies bedeutete, zu schützen, jede Art von besonders sensiblen Daten (PPI, PCI, HIPPA, etc).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das sollte dann so Aussehen:
Zwischen start ->
^
Und am Ende ->
$
der string gibt, muss es mindestens eine Zahl ->
(?=.*\d)
und mindestens einen Buchstaben ->
(?=.*[A-Za-z])
und es muss eine Zahl sein, ein Buchstabe oder eines der folgenden Zeichen: !@#$% ->
[0-9A-Za-z!@#$%]
und es sind 8-12 Zeichen ->
{8,12}
Als user557846 kommentierte zu deiner Frage, würde ich auch empfehlen, die Sie ermöglicht mehr Charaktere, die ich normalerweise (wenn ich einen maximum) wenigstens 50 🙂
btw, möchten Sie vielleicht werfen Sie einen Blick auf dieser regex tutorial
Ich mochte r3bel Antwort, also ich hatte ein Spiel mit ihm und landete mit dem folgenden Passwort-überprüfung Funktion:
Min/Max-Längen sind Standard-oder verstellbar, für jede Anforderung ist standardmäßig eingeschaltet, kann aber ausgeschaltet werden, und ich wollte Sie unterstützen alle Symbole, so dass die Letzte Bedingung ist "alles, was nicht eins von den oben genannten Typen", eher als eine Feste Menge von Symbolen.
Entwickelt ich eine komplette regex für ein bisschen komplexer überprüfen
Grundsätzlich überprüfe ich für Sie das Kennwort, um 1 Ziffer, 1-Kapital, 1 unteren und 1 Sonderzeichen. Ich hoffe, das hilft jemanden der Suche nach einem regex.
Ich habe dies mit meinem drupal benutzerdefiniertes Formular in
hook_form_validate
hier sollte das Passwort aus 6 Zeichen aus Buchstaben, zahlen und mindestens ein Sonderzeichen.Anders
Lassen anders Aussehen, das ist, glaube ich, dass die Nutzer können alle ASCII gültige Zeichen
(32 < ascii_code < 127)
im Passwort und erstellt eine Funktion, die prüft, ob alle Zeichen, die im ASCII-Tabelle!Nutzung
Look-up-Charakter-Klassen, die eine grundlegende Funktion der regulären Ausdrücke.
In der obigen Aussage.. was möglichen Passwort-so vorhanden???.