Kontrollige parooli tugevust JavaScripti ja regulaaravaldistega

Kontrollige parooli tugevust JavaScripti ja regulaaravaldistega

Uurisin, kuidas leida hea näide paroolitugevuse kontrollerist, mis seda kasutab JavaScript ja Regulaaravaldised (Regex). Minu töös olevas rakenduses teeme parooli tugevuse kontrollimiseks postituse tagasi ja see on meie kasutajatele üsna ebamugav.

Mis on Regex?

Tavaväljend on tähemärkide jada, mis määrab otsingumustri. Tavaliselt kasutavad selliseid mustreid stringide otsimise algoritmid leidma or leida ja asendada stringidega toimingud või sisendi valideerimine. 

See artikkel ei ole kindlasti teile regulaaravaldiste õpetamiseks. Lihtsalt teadke, et regulaaravaldiste kasutamise oskus lihtsustab teie arengut tekstis mustrite otsimisel. Samuti on oluline märkida, et enamikus arenduskeeltes on optimeeritud regulaaravaldiste kasutamine ... nii et stringide järkjärgulise sõelumise ja otsimise asemel on Regex tavaliselt palju kiirem nii serveri kui ka kliendi poolel.

Otsisin enne leidmist üsna palju veebist Näiteks mõnest suurepärasest regulaaravaldisest, mis otsivad pikkuse, tähemärkide ja sümbolite kombinatsiooni. Howver, kood oli minu maitse jaoks veidi liigne ja kohandatud .NET-i jaoks. Nii et lihtsustasin koodi ja panin selle JavaScripti. See muudab parooli tugevuse reaalajas kliendi brauseris enne selle tagasi postitamist kinnitama ... ja annab kasutajale parooli tugevuse kohta tagasisidet.

Sisestage A parool

Iga klaviatuuri käiguga testitakse parooli regulaaravaldise suhtes ja tagastatakse kasutajale tagasiside selle all.




Sisestage parool

Siin on koodeks

. Regulaaravaldised tee fantastilist tööd koodi pikkuse minimeerimiseks:

  • Rohkem tegelasi - kui pikkus on alla 8 tähemärgi.
  • nõrk - Kui pikkus on alla 10 tähemärgi ja see ei sisalda sümbolite, suurtähtede, teksti kombinatsiooni.
  • Keskmine - kui pikkus on 10 või enam tähemärki ja sellel on sümbolite, suurtähtede, teksti kombinatsioon.
  • Tugev - Kui pikkus on vähemalt 14 tähemärki ja sellel on sümbolite, suurtähtede, teksti kombinatsioon.

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

Paroolitaotluse karastamine

On hädavajalik, et te ei kinnitaks oma parooli koostamist ainult oma Javascriptis. See võimaldaks kõigil, kellel on brauseri arendustööriistad, skriptist mööda minna ja kasutada parooli, mida nad soovivad. Enne parooli oma platvormile salvestamist peaksite parooli tugevuse kinnitamiseks ALATI kasutama serveripoolset kontrolli.

34 Kommentaarid

  1. 1
  2. 2

    AITÄH! AITÄH! AITÄH! Olen 2 nädalat lollitanud teistelt veebisaitidelt pärit neetud parooli tugevuskoodiga ja oma juukseid välja kiskunud. Sinu oma on lühike, töötab täpselt nii, nagu ma tahan, ja mis kõige parem, seda on JavaScripti algaja jaoks lihtne muuta! Tahtsin jäädvustada tugevusotsuse ja mitte lasta vormi postitamisel kasutaja parooli tegelikult värskendada, kui see ei vasta tugevustestile. Teiste inimeste kood oli liiga keeruline või ei töötanud õigesti või midagi muud. Ma armastan sind! XXXXX

  3. 4

    jumal tänatud inimeste eest, kes oskavad tegelikult koodijupi korralikult kirjutada.
    Sama kogemus kui Janisel.

    See töötab kohe karbist välja võttes ja sobib ideaalselt inimestele nagu mina, kes ei saa JavaScripti kodeerida!

  4. 5
  5. 6

    Tere, esiteks suur tänu pingutuste eest, proovisin seda Asp.net-iga kasutada, kuid ei töötanud, kasutan

    sildi asemel ja see ei töötanud, kas on soovitusi?!

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

    "P@s$w0rD" näitab tugevalt, kuigi see murtakse sõnaraamatu rünnakuga üsna kiiresti ära...
    Sellise funktsiooni juurutamiseks professionaalses lahenduses on minu arvates oluline kombineerida see algoritm sõnastiku kontrolliga.

  11. 12
  12. 13

    Aitäh selle väikese koodi eest, saan seda nüüd kasutada oma parooli tugevuse testimiseks, kui mu külastajad sisestavad oma paroolid,

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

    kas keegi oskab öelda, miks see minu omal ei töötanud..

    Kopeerisin kogu koodi ja kleepisin selle notepad++, kuid see ei tööta üldse?
    Palun aita mind..

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

    Seda tüüpi "jõukontroll" viib inimesed väga ohtlikule teele. See väärtustab märkide mitmekesisust parooli pikkuse asemel, mistõttu hindab lühemaid ja mitmekesisemaid paroole tugevamaks kui pikemaid ja vähem erinevaid paroole. See on eksitus, mis paneb teie kasutajad hätta, kui nad seisavad silmitsi tõsise häkkimisohuga.

    • 25

      Ma ei ole sellega nõus, Jordan! Näide pandi lihtsalt skripti näitena välja. Minu soovitus inimestele on kasutada paroolihaldustööriista, et luua igale saidile ainulaadsed paroolid. Aitäh!

  24. 26
  25. 27
  26. 28

    Olen väga tänulik, et teid on seda korduvalt otsitud, kuid lõpuks sain teie postituse kätte ja olen väga üllatunud. AITÄH

  27. 29
  28. 31
  29. 33

    Olete elushoidja! Sõelusin stringe vasakule paremale ja keskele ning mõtlesin, et on parem viis ja leidsin teie koodilõigu Regexi abil. Suutsin seda oma saidi jaoks tinistada... Teil pole aimugi, kui palju see aitas. Suur tänu Douglas!!

Mis sa arvad?

Sellel saidil kasutatakse rämpsposti vähendamiseks Akismetit. Vaadake, kuidas teie andmeid töödeldakse.