Comproveu la força de la contrasenya amb JavaScript i expressions regulars

Comproveu la força de la contrasenya amb JavaScript i expressions regulars
Temps de lectura: 2 acta

Estava fent algunes investigacions sobre com trobar un bon exemple d’un comprovador de força de contrasenya que utilitzi JavaScript Expressions regulars (Regex). A l’aplicació del meu treball, tornem a publicar per verificar la força de la contrasenya i és força incòmode per als nostres usuaris.

Què és Regex?

Una expressió regular és una seqüència de caràcters que defineixen un patró de cerca. Normalment, aquests patrons s’utilitzen en algorismes de cerca de cadenes trobar or cercar i substituir operacions en cadenes o per a la validació d’entrada. 

Definitivament, aquest article no us ensenya expressions regulars. Només heu de saber que la possibilitat d'utilitzar expressions regulars simplificarà absolutament el vostre desenvolupament a mesura que cerqueu patrons de text. També és important tenir en compte que la majoria dels llenguatges de desenvolupament han optimitzat l’ús d’expressions regulars ... de manera que en lloc d’analitzar i cercar cadenes pas a pas, Regex sol ser molt més ràpid tant al costat del servidor com del client.

Vaig buscar al web bastant abans de trobar-lo un exemple d’algunes expressions regulars fantàstiques que busquen una combinació de longitud, caràcters i símbols. Tanmateix, el codi era una mica excessiu per al meu gust i adaptat per a .NET. Així que vaig simplificar el codi i el vaig posar a JavaScript. Això fa que validi la intensitat de la contrasenya en temps real al navegador del client abans de tornar-la a publicar ... i proporciona alguns comentaris a l'usuari sobre la força de la contrasenya.

Escriviu una contrasenya

Amb cada cop del teclat, la contrasenya es prova amb l'expressió regular i, a continuació, es proporciona informació a l'usuari en un interval inferior.




Escriviu la contrasenya

Aquí teniu el Codi

El Expressions regulars fes una feina fantàstica de minimitzar la longitud del codi:

  • Més personatges - Si la longitud és inferior a 8 caràcters.
  • Feble - Si la longitud és inferior a 10 caràcters i no conté una combinació de símbols, majúscules, text.
  • mitjà - Si la longitud és de deu caràcters o més i té una combinació de símbols, majúscules, text.
  • Fort - Si la longitud és de 14 caràcters o més i té una combinació de símbols, majúscules i 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>

Enduriment de la sol·licitud de contrasenya

És essencial que no només valideu la construcció de contrasenyes al vostre Javascript. Això permetria a tothom que tingui eines de desenvolupament del navegador passar per alt l'script i utilitzar qualsevol contrasenya que vulgui. SEMPRE heu d’utilitzar una comprovació del servidor per validar la força de la contrasenya abans d’emmagatzemar-la a la vostra plataforma.

32 Comentaris

  1. 1
  2. 2

    GRÀCIES! GRÀCIES! GRÀCIES! Fa 2 setmanes que estic enganyant amb un maleït codi de força de contrasenya d’altres llocs web i traient-me els cabells. El vostre és breu, funciona com jo vull i, el millor de tot, és fàcil de modificar per a un novell javascript. Volia recollir el veredicte de força i no deixar publicar el formulari per actualitzar la contrasenya de l'usuari, tret que compleixi la prova de força. El codi d'altres persones era massa complicat o no funcionava bé o una altra cosa. T'estimo! XXXXX

  3. 4

    gràcies a Déu per les persones que poden escriure correctament un fragment de codi.
    Va tenir la mateixa experiència que Janis.

    Això funciona perfectament per a persones com jo que no poden codificar JavaScript.

  4. 5
  5. 6

    Hola, en primer lloc moltes gràcies pels vostres esforços, he intentat utilitzar-ho amb Asp.net però no he funcionat, ho estic fent servir

    en lloc d'etiquetar, i no va funcionar, algun suggeriment ?!

  6. 7

    Per a Nisreen: el codi del quadre ressaltat no funciona amb un format de pasta de colors. El pressupost únic està desordenat. El codi de l'enllaç de demostració està bé.

  7. 8
  8. 9
  9. 10
  10. 11

    "P @ s $ w0rD" es mostra fort, tot i que es trencaria bastant ràpidament amb un atac diccionari ...
    Per desplegar aquesta característica en una solució professional, crec que és important combinar aquest algorisme amb una comprovació diccionària.

  11. 12
  12. 13

    Gràcies per aquest petit codi, ara el puc utilitzar per provar la força de la meva contrasenya quan els meus visitants introdueixen les seves contrasenyes,

  13. 14
  14. 15
  15. 16
  16. 17
  17. 18
  18. 19

    algú pot dir, per què no va funcionar el meu ...

    He copiat tot el codi i l'he enganxat al bloc de notes ++, però no funciona gens?
    si us plau ajuda'm..

  19. 20
  20. 21
  21. 22
  22. 23
  23. 24

    Aquest tipus de "control de força" condueix la gent per un camí molt perillós. Valora la diversitat de caràcters per sobre de la longitud de la frase de contrasenya, cosa que el condueix a valorar contrasenyes més curtes i diverses com a fortes que les contrasenyes més llargues i menys diverses. Aquesta és una fal·làcia que provocarà problemes als usuaris si mai s’enfronten a una greu amenaça de pirateria.

    • 25

      No estic d'acord, Jordan! L'exemple es va posar simplement com a exemple del guió. La meva recomanació per a la gent és utilitzar una eina de gestió de contrasenyes per crear frases de contrasenya independents per a qualsevol lloc que sigui únic per a ell. Gràcies!

  24. 26
  25. 27
  26. 28
  27. 29
  28. 31

Què et sembla?

Aquest lloc utilitza Akismet per reduir el correu no desitjat. Esbrineu com es processa el vostre comentari.