MudGuard: Was bedeutet diese Regex?

Beitrag lesen

Hi,

[1]*(?=[A-Za-z0-9]{8,})(?=[A-Za-z0-9]*[0-9])(?=[A-Za-z0-9]*[a-z])(?=[A-Za-z0-9]*[A-Z])[A-Za-z0-9]*$

  • Stringanfang
  • Beliebig viele Wortzeichen (man könnte auch \w schreiben)
  • Lookahead: 8 oder mehr Wortzeichen gefolgt von einer Ziffer

da mischst Du 2 der vielen Lookaheads.
der 1. Lookahead: mindestens 8 Wortzeichen
der 2. Lookahead: beliebig viele Wortzeichen gefolgt von einer Ziffer

  • Lookahead: Beliebig viele Wortzeichen gefolgt von einem Kleinbuchstaben
  • Lookahead: Beliebig viele Wortzeichen gefolgt von einem Großbuchstaben
  • Beliebig viele Wortzeichen
  • Stringende

Lass mich raten: Hier wird ein Passwort auf seine Stärke geprüft, und die Anforderungen waren:

  • Mindestens acht Zeichen,
  • mindestens ein Kleinbuchstabe,
  • mindestens ein Großbuchstabe,
  • mindestens eine Ziffer.

Das drückt obige RegExp auch korrekt aus, soweit ich das sehe, wenn auch ziemlich umständlich.

Ich würde hier

  • Auf die Länge prüfen >= 8 &&
  • Auf die RegExp [a-z] prüfen &&
  • Auf die RegExp [A-Z] prüfen &&
  • Auf die RegExp \d prüfen

Manche Leute meinen halt, daß es sinnvoller ist, einen sehr komplizierten Ausdruck zu benutzen als mehrere einfache ...

Besser wäre eine Bibliothek, die die Passwortstärke sinnvoll berechnet und die nicht nur ASCII zulässt, sondern auch ein »ä« als Kleinbuchstaben anerkennt.

und auch Satzzeichen zuläßt.
Damit man Merksätze zu Paßwörtern verwenden kann, z.B.
Dieses war der 1. Streich, und der 2. folgt sogleich! ⇒ Paßwort: Dwd1S,ud2.fs!

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.

  1. A-Za-z0-9 ↩︎