Kontrolu Pasvortan Forton per Ĝavoskripto kaj Regulaj Esprimoj

Kontrolu Pasvortan Forton per Ĝavoskripto kaj Regulaj Esprimoj

Mi iom esploris pri trovado de bona ekzemplo de uzanto de Pasvorta Forto JavaScript kaj Regulaj Esprimoj (Regex). En la aplikaĵo ĉe mia laboro, ni redonas afiŝon por kontroli la pasvorton, kaj ĝi estas sufiĉe maloportuna por niaj uzantoj.

Kio estas Regex?

Regula esprimo estas vico de signoj, kiuj difinas serĉan ŝablonon. Kutime tiaj ŝablonoj estas uzataj per ĉenserĉaj algoritmoj trovi or trovi kaj anstataŭigi operacioj sur ĉenoj, aŭ por eniga validado. 

Ĉi tiu artikolo certe ne instruas al vi regulajn esprimojn. Nur sciu, ke la kapablo uzi Regulajn Esprimojn absolute simpligos vian evoluon dum vi serĉos ŝablonojn en teksto. Gravas ankaŭ rimarki, ke plej multaj evoluaj lingvoj optimumigis uzon de regula esprimo ... do anstataŭ analizi kaj serĉi ĉenojn paŝon post paŝo, Regex estas kutime multe pli rapida kaj servila kaj klienta.

Mi serĉis la retejon sufiĉe antaŭ ol mi trovis ekzemplo de iuj bonegaj Regulaj Esprimoj, kiuj serĉas kombinaĵon de longo, signoj kaj simboloj. Tamen la kodo estis iom troa laŭ mia gusto kaj adaptita por .NET. Do mi simpligis la kodon kaj metis ĝin en JavaScript. Ĉi tio igas ĝin validigi la pasvorton en realtempa en la retumilo de la kliento antaŭ afiŝi ĝin reen ... kaj donas iom da reago al la uzanto pri la forto de la pasvorto.

Tajpu A Pasvorton

Kun ĉiu bato de la klavaro, la pasvorto estas provita kontraŭ la regula esprimo kaj tiam reago estas donita al la uzanto en interspaco sub ĝi.




Tajpu Pasvorton

Jen la Kodo

la Regulaj Esprimoj fari mirindan laboron minimumigi la longon de la kodo:

  • Pli da roluloj - Se la longo estas malpli ol 8 signoj.
  • malforta - Se la longo estas malpli ol 10 signoj kaj ne enhavas kombinaĵon de simboloj, majuskloj, teksto.
  • mediumo - Se la longo estas 10 literoj aŭ pli kaj havas kombinaĵon de simboloj, majuskloj, teksto.
  • fortan - Se la longo estas 14 signoj aŭ pli kaj havas kombinaĵon de simboloj, majuskloj, teksto.

<script language="javascript">
    function passwordChanged() {
        var strength = document.getElementById('strength');
        var strongRegex = new RegExp("^(?=.{14,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
        var mediumRegex = new RegExp("^(?=.{10,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var enoughRegex = new RegExp("(?=.{8,}).*", "g");
        var pwd = document.getElementById("password");
        if (pwd.value.length == 0) {
            strength.innerHTML = 'Type Password';
        } else if (false == enoughRegex.test(pwd.value)) {
            strength.innerHTML = 'More Characters';
        } else if (strongRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:green">Strong!</span>';
        } else if (mediumRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:orange">Medium!</span>';
        } else {
            strength.innerHTML = '<span style="color:red">Weak!</span>';
        }
    }
</script>
<input name="password" id="password" type="text" size="15" maxlength="100" onkeyup="return passwordChanged();" />
<span id="strength">Type Password</span>

Malmoligi Vian Pasvortan Peton

Estas esence, ke vi ne nur validigu la pasvortan konstruon ene de via Ĝavaskripto. Ĉi tio ebligus al ĉiuj kun retumilaj iloj preteriri la skripton kaj uzi ĉian pasvorton, kiun ili ŝatus. Vi ĈIAM devas uzi servilan kontrolon por validigi la pasvortan forton antaŭ ol konservi ĝin en via platformo.