Tehnologie emergentăEmail Marketing & Email Marketing Automation

Verificați puterea parolei cu JavaScript și expresii regulate

Făceam câteva cercetări despre găsirea unui bun exemplu de verificare a puterii parolei care se folosește JavaScript și Expresii obisnuite (Regex). În aplicația de la locul de muncă, facem o postare înapoi pentru a verifica puterea parolei și este destul de incomodă pentru utilizatorii noștri.

Ce este Regex?

O expresie regulată este o secvență de caractere care definesc un model de căutare. De obicei, astfel de modele sunt utilizate de algoritmi de căutare a șirurilor pentru găsi or găsiți și înlocuiți operații pe șiruri sau pentru validarea intrărilor. 

Acest articol nu este cu siguranță pentru a vă învăța expresii regulate. Știți doar că abilitatea de a utiliza expresii regulate vă va simplifica în mod absolut dezvoltarea pe măsură ce căutați modele în text. De asemenea, este important să rețineți că majoritatea limbajelor de dezvoltare au optimizat utilizarea expresiei regulate ... deci, mai degrabă decât analizarea și căutarea șirurilor pas cu pas, Regex este de obicei mult mai rapid atât pe partea serverului, cât și pe partea clientului.

Am căutat pe web destul de puțin înainte să găsesc un exemplu a unor expresii regulate minunate care caută o combinație de lungime, caractere și simboluri. Cu toate acestea, codul a fost un pic excesiv pentru gustul meu și adaptat pentru .NET. Așa că am simplificat codul și l-am pus în JavaScript. Acest lucru îl face să valideze puterea parolei în timp real pe browserul clientului înainte de a o posta înapoi ... și oferă un feedback utilizatorului cu privire la puterea parolei.

Tastați o parolă

Cu fiecare lovitură a tastaturii, parola este testată în funcție de expresia regulată și apoi feedback-ul este furnizat utilizatorului într-un interval de sub ea.




Scrie parola

Iată Codul

Expresii obisnuite face o treabă fantastică de a minimiza lungimea codului:

  • Mai multe personaje - Dacă lungimea este sub 8 caractere.
  • Slab - Dacă lungimea este mai mică de 10 caractere și nu conține o combinație de simboluri, majuscule, text.
  • Mediu - Dacă lungimea este de 10 caractere sau mai mult și are o combinație de simboluri, majuscule, text.
  • Puternic - Dacă lungimea este de 14 caractere sau mai mult și are o combinație de simboluri, majuscule, text.

<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>

Întărirea cererii de parolă

Este esențial să nu validați doar construcția parolei în Javascript. Acest lucru ar permite oricui are instrumente de dezvoltare a browserului să ocolească scriptul și să folosească orice parolă ar dori. Ar trebui să utilizați ÎNTOTDEAUNA o verificare pe partea de server pentru a valida puterea parolei înainte de a o stoca în platforma dvs.

Douglas Karr

Douglas Karr este fondatorul Martech Zone și expert recunoscut în transformarea digitală. Doug este un Convorbitor public principal și de marketing. Este vicepreședintele și cofondatorul Highbridge, o firmă specializată în asistarea companiilor de întreprinderi să transforme digital și să maximizeze investițiile lor în tehnologie utilizând tehnologiile Salesforce. A dezvoltat strategii de marketing digital și produse pentru Tehnologii Dell, GoDaddy, Salesforce, Webtrends, și SmartFOCUS. Douglas este, de asemenea, autorul Bloguri corporative pentru manechini şi co-autor a Cartea de afaceri mai bună.

Articole pe aceeaşi temă

4 Comentarii

  1. MULȚUMESC! MULȚUMESC! MULȚUMESC! M-am prostit de 2 săptămâni cu codul de putere al parolei de pe alte site-uri și mi-am smuls părul. Al tău este scurt, funcționează exact așa cum vreau și cel mai bine, ușor de modificat pentru un novice în JavaScript! Am vrut să surprind verdictul de putere și să nu las formularul să posteze să actualizeze parola utilizatorului decât dacă a îndeplinit testul de rezistență. Codul altora era prea complicat sau nu funcționa bine sau altceva. Te iubesc! XXXXX

  2. Bună, în primul rând, mulțumesc mult pentru eforturile depuse, am încercat să folosesc asta cu Asp.net, dar nu a funcționat, folosesc

    în loc de etichetă, și nu a funcționat, vreo sugestie?!

  3. „P@s$w0rD” arată puternic, deși ar fi spart destul de repede cu un atac de dicționar...
    Pentru a implementa o astfel de caracteristică într-o soluție profesională, cred că este important să combinați acest algoritm cu o verificare a dicționarului.

  4. Mulțumesc pentru acest mic cod, acum îl pot folosi pentru a-mi testa puterea parolei atunci când vizitatorii mei introduc parolele,

  5. poate cineva sa spuna de ce nu a mers al meu...

    Am copiat tot codul și l-am lipit în notepad++, dar nu funcționează deloc?
    vă rog să mă ajutați..

  6. Acest tip de „verificator de putere” îi conduce pe oameni pe o cale foarte periculoasă. Evaluează diversitatea caracterelor peste lungimea frazei de acces, ceea ce o face să evalueze parolele mai scurte și mai diverse ca fiind mai puternice decât parolele mai lungi și mai puțin diverse. Aceasta este o eroare care va pune utilizatorii dvs. în probleme dacă se confruntă vreodată cu o amenințare serioasă de hacking.

    1. Nu sunt de acord, Jordan! Exemplul a fost pus pur și simplu ca exemplu de scenariu. Recomandarea mea pentru oameni este să folosească un instrument de gestionare a parolelor pentru a crea expresii de acces independente pentru orice site care sunt unice pentru acesta. Mulțumiri!

  7. Ești un economisitor viu! Am analizat șirurile stânga, dreapta și centru și m-am gândit că există o modalitate mai bună și am găsit fragmentul dvs. de cod folosind Regex. Am reușit să clintesc cu ea pentru site-ul meu... Nu aveți idee cât de mult a ajutat acest lucru. Mulțumesc mult Douglas!!

Ce părere ai?

Acest site folosește Akismet pentru a reduce spamul. Aflați cum sunt procesate datele despre comentarii.

Înapoi la butonul de sus