Gaan wagwoordsterkte na met JavaScript en gewone uitdrukkings

Gaan wagwoordsterkte na met JavaScript en gewone uitdrukkings

Ek het navorsing gedoen oor die vind van 'n goeie voorbeeld van 'n wagwoordsterktekontroleerder wat gebruik word JavaScript en Gereelde uitdrukkings (Regex). In die aansoek by my werk doen ons 'n terugvoer om die sterkte van die wagwoord te verifieer en dit is nogal ongerieflik vir ons gebruikers.

Wat is Regex?

'N Gereelde uitdrukking is 'n reeks karakters wat 'n soekpatroon definieer. Gewoonlik word sulke patrone gebruik deur algoritmes vir snaar soek vind or vind en vervang bewerkings op toutjies, of vir invoer validering. 

Hierdie artikel moet u beslis nie gereelde uitdrukkings leer nie. Weet net dat die gebruik van Regular Expressions u ontwikkeling absoluut sal vergemaklik as u patrone in teks soek. Dit is ook belangrik om op te let dat die meeste ontwikkelingstale die gebruik van gereelde uitdrukkings geoptimaliseer het ... dus eerder as om snare stapsgewys te ontleed en te soek, is Regex gewoonlik baie vinniger op die bediener en op die kliënt.

Ek het nogal 'n bietjie op die web gesoek voordat ek dit gekry het n voorbeeld van 'n paar uitstekende Regular Expressions wat 'n kombinasie van lengte, karakters en simbole soek. Die kode was egter na my smaak 'n bietjie buitensporig en aangepas vir .NET. Daarom het ek die kode vereenvoudig en dit in JavaScript geplaas. Dit laat dit die wagwoordsterkte intyds in die blaaier van die kliënt bekragtig voordat dit teruggestuur word ... en gee terugvoer aan die gebruiker oor die sterkte van die wagwoord.

Tik 'n wagwoord

Met elke toetssleutel word die wagwoord aan die normale uitdrukking getoets en dan word die gebruiker terugvoer gegee in 'n omvang daaronder.




Tik wagwoord

Hier is die kode

Die Gereelde uitdrukkings doen 'n fantastiese werk om die lengte van die kode te verminder:

  • Meer karakters - As die lengte minder as 8 karakters is.
  • Swak - As die lengte minder as tien karakters is en nie 'n kombinasie van simbole, hoofletters, teks bevat nie.
  • Medium - As die lengte 10 karakters of meer bevat en 'n kombinasie van simbole, hoofletters, teks bevat.
  • Sterk - As die lengte 14 karakters of meer bevat en 'n kombinasie van simbole, hoofletters, teks bevat.

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

Verhard u wagwoordversoek

Dit is noodsaaklik dat u nie net die wagwoordkonstruksie in u Javascript bekragtig nie. Dit sal almal met blaaierontwikkelingsinstrumente in staat stel om die script te omseil en die wagwoord te gebruik wat hulle wil hê. U moet ALTYD 'n tjek aan die bedienerkant gebruik om die sterkte van die wagwoord te bekragtig voordat u dit op u platform bêre.

34 Comments

  1. 1
  2. 2

    DANKIE! DANKIE! DANKIE! Ek is al twee weke besig om te flous met verdomde wagwoordsterktekode van ander webwerwe en trek my hare uit. Die uwe is kort, werk net soos ek wil hê en die beste van alles, maklik vir 'n javascript-beginner om aan te pas! Ek wou die uitspraak oor sterkte opneem en nie toelaat dat die vorm die gebruiker se wagwoord werklik opdateer nie, tensy dit aan die kragmeting voldoen het. Ander mense se kode was te ingewikkeld of het nie reg gewerk nie, of iets anders. Ek het jou lief! XXXXX

  3. 4

    dankie tog vir mense wat eintlik 'n stuk kode behoorlik kan skryf.
    Dieselfde ervaring as Janis gehad.

    Dit werk direk uit die boks, wat ideaal is vir mense soos ek wat nie 'n JavaScript-kode kan kodeer nie!

  4. 5
  5. 6

    Hallo, eerstens baie dankie vir u pogings, ek het probeer om dit met Asp.net te gebruik, maar het nie gewerk nie, ek gebruik dit

    in plaas van etiket, en dit werk nie, is daar geen voorstelle nie ?!

  6. 7

    Vir Nisreen: die kode in die gemarkeerde blokkie werk nie met 'n geknipte pasta nie. Die enkele aanhaling is deurmekaar. Die kode van die demonstrasie skakel is egter goed.

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

    “P @ s $ w0rD” wys sterk, hoewel dit redelik vinnig met 'n woordeboekaanval gekraak sou word ...
    Om so 'n funksie op 'n professionele oplossing te gebruik, glo ek dit is belangrik om hierdie algoritme te kombineer met 'n woordeboekkontrole.

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

    kan iemand sê hoekom dit nie myne gewerk het nie ..

    ek het al die kode gekopieër en op notepad ++ geplak, maar dit werk glad nie?
    help my asseblief..

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

    Hierdie tipe 'sterktekontroleerder' lei mense op 'n baie gevaarlike pad. Dit waardeer karakterdiversiteit bo wagwoordfrase, wat lei tot korter, meer uiteenlopende wagwoorde as sterker as langer, minder uiteenlopende wagwoorde. Dit is 'n dwaling wat gebruikers in die moeilikheid sal bring as hulle ooit met 'n ernstige inbraakbedreiging te kampe het.

    • 25

      Ek stem nie saam nie, Jordanië! Die voorbeeld is eenvoudig as voorbeeld van die teks uiteengesit. My aanbeveling vir mense is om 'n wagwoordbestuursinstrument te gebruik om onafhanklike wagwoordfrases te skep vir enige webwerf wat uniek daarvoor is. Dankie!

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

    U is 'n lewendige spaarder! Ek was besig om snare regs en middel te ontleed en het gedink dat daar 'n beter manier is en het u kode met Regex gevind. Kon vir my webwerf daaraan dink ... U het geen idee hoeveel dit gehelp het nie. Baie dankie Douglas !!

Wat dink jy?

Hierdie webwerf gebruik Akismet om spam te verminder. Leer hoe jou opmerking verwerk is.