Patikrinkite slaptažodžio stiprumą naudodami „JavaScript“ ir įprastus posakius

Patikrinkite slaptažodžio stiprumą naudodami „JavaScript“ ir įprastus posakius
Skaitymo laikas: 2 protokolas

Atlikau keletą tyrimų, norėdamas rasti gerą naudojamo slaptažodžio stiprumo tikrintuvo pavyzdį JavaScript ir Reguliarūs posakiai (Regex). Mano darbo programoje mes darome pranešimą atgal, kad patikrintume slaptažodžio stiprumą, ir tai yra gana nepatogu mūsų vartotojams.

Kas yra „Regex“?

Reguliari išraiška yra simbolių seka, apibrėžianti paieškos modelį. Paprastai tokius modelius naudoja eilučių paieškos algoritmai rasti or rasti ir pakeisti operacijos stygomis arba įvesties patvirtinimas. 

Šis straipsnis tikrai nėra skirtas išmokyti jus reguliariai reikšti. Tiesiog žinokite, kad galimybė naudoti įprastas išraiškas visiškai supaprastins jūsų kūrimą, kai ieškosite raštų tekste. Taip pat svarbu pažymėti, kad daugumoje kūrimo kalbų buvo optimizuotas reguliarių išraiškų naudojimas ... taigi, užuot analizavęs ir ieškodamas eilutes nuosekliai, „Regex“ paprastai yra daug greitesnis tiek serveryje, tiek kliente.

Nemažai ieškojau internete, kol radau pavyzdys kai kurių puikių reguliariųjų išraiškų, ieškančių ilgio, simbolių ir simbolių derinio. Tačiau mano skoniui kodas buvo šiek tiek perteklinis ir pritaikytas .NET. Taigi supaprastinau kodą ir įdėjau jį į „JavaScript“. Tai leidžia realiu laiku patvirtinti slaptažodžio stiprumą kliento naršyklėje prieš paskelbiant jį atgal ... ir suteikia vartotojui šiek tiek atsiliepimų apie slaptažodžio stiprumą.

Įveskite slaptažodį

Kiekvienu klaviatūros paspaudimu slaptažodis tikrinamas pagal įprastą išraišką, o po to vartotojui pateikiamas grįžtamasis ryšys.




Įveskite slaptažodį

Štai kodas

Šis Reguliarūs posakiai atlikite fantastišką darbą, kad sumažintumėte kodo ilgį:

  • Daugiau personažų - Jei ilgis yra mažesnis nei 8 simboliai.
  • Silpnas - Jei ilgis yra mažesnis nei 10 simbolių ir jame nėra simbolių, didžiųjų raidžių, teksto derinio.
  • vidutinis - Jei ilgis yra 10 ar daugiau simbolių ir turi simbolių, didžiųjų raidžių, teksto derinį.
  • Stiprus - Jei ilgis yra 14 ar daugiau simbolių ir turi simbolių, didžiųjų raidžių, teksto derinį.

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

Jūsų slaptažodžio užklausos grūdinimas

Labai svarbu ne tik patvirtinti slaptažodžio kūrimą „Javascript“. Tai leistų visiems, turintiems naršyklės kūrimo įrankius, apeiti scenarijų ir naudoti norimą slaptažodį. Prieš saugodami slaptažodį savo platformoje, VISADA turėtumėte naudoti serverio patikrą, kad patvirtintumėte slaptažodžio stiprumą.

32 komentarai

  1. 1
  2. 2

    AČIŪ! AČIŪ! AČIŪ! 2 savaites kvailiojau naudodamas prakeiktą slaptažodžio stiprumo kodą iš kitų svetainių ir išsitraukdamas plaukus. Jūsų trumpas, veikia taip, kaip aš noriu, o geriausia, kad „JavaScript“ naujokas gali lengvai modifikuoti! Norėjau užfiksuoti tvirtumo nuosprendį ir neleisti, kad forma iš tikrųjų atnaujintų vartotojo slaptažodį, nebent ji atitiko stiprumo testą. Kitų žmonių kodas buvo per daug sudėtingas, neveikė tinkamai ar kažkas kitas. Aš tave myliu! XXXXX

  3. 4

    ačiū dievui už žmones, kurie iš tikrųjų gali tinkamai parašyti kodo dalį.
    Turėjo tokios pat patirties kaip ir Janis.

    Tai veikia tiesiai iš dėžutės, kuri puikiai tinka tokiems žmonėms kaip aš, kurie negali išsiųsti „JavaScript“!

  4. 5
  5. 6

    Sveiki, pirmiausia ačiū daug už jūsų pastangas, aš bandžiau tai naudoti su Asp.net, bet neveikiau, aš naudoju

    vietoj žymos, ir ji neveikė, pasiūlymų ?!

  6. 7

    Į „Nisreen“: paryškintame laukelyje esantis kodas neveikia su „cut'n'paste“. Viena citata sujaukta. Tačiau demonstracinės nuorodos kodas yra tinkamas.

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

    „P @ s $ w0rD“ rodo stiprų rezultatą, nors tai būtų gana greitai nulaužta įvykus žodyno atakai ...
    Norint pritaikyti tokią funkciją profesiniame sprendime, manau, svarbu šį algoritmą derinti su žodyno patikrinimu.

  11. 12
  12. 13

    Ačiū už šį mažą kodą, kurį dabar galiu naudoti norėdamas patikrinti savo slaptažodžio stiprumą, kai mano lankytojai įveda savo slaptažodžius,

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

    ar gali kas nors pasakyti, kodėl tai neveikė mano?

    nukopijavau visą kodą ir įklijavau jį į „Notepad ++“, bet jis visai neveikia?
    Prašau padėkite man..

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

    Šio tipo „stiprumo tikrintuvas“ veda žmones labai pavojingu keliu. Ji vertina simbolių įvairovę, palyginti su slaptafrazės ilgiu, todėl trumpesnius, įvairesnius slaptažodžius vertina kaip stipresnius nei ilgesnius, mažiau skirtingus slaptažodžius. Tai klaida, dėl kurios jūsų vartotojams kils problemų, jei jie kada nors susidurs su rimta įsilaužimo grėsme.

    • 25

      Nesutinku, Jordanai! Pavyzdys buvo tiesiog pateiktas kaip scenarijaus pavyzdys. Mano rekomendacija žmonėms yra naudoti slaptažodžių valdymo įrankį, norint sukurti nepriklausomas slaptafrazes kiekvienai svetainei, kuri yra unikali. Dėkoju!

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

Ką manote?

Ši svetainė naudoja "Akismet", kad sumažintų šlamštą. Sužinokite, kaip apdorojamas jūsų komentaras.