Kontrolloni Forcën e Fjalëkalimit me JavaScript dhe Shprehje të Rregullta

Kontrolloni Forcën e Fjalëkalimit me JavaScript dhe Shprehje të Rregullta

Po bëja disa hulumtime për gjetjen e një shembulli të mirë të një kontrolli të Forcës së Fjalëkalimit që përdor JavaScript Shprehje të rregullta (Regex). Në aplikacionin në punën time, ne bëjmë një postim për të verifikuar forcën e fjalëkalimit dhe është mjaft e papërshtatshme për përdoruesit tanë.

Çfarë është Regex?

Një shprehje e rregullt është një sekuencë e karaktereve që përcaktojnë një model kërkimi. Zakonisht, modele të tilla përdoren nga algoritmet e kërkimit të vargjeve gjej or gjeni dhe zëvendësoni operacionet në vargje, ose për vërtetimin e hyrjes. 

Ky artikull nuk është padyshim për t'ju mësuar shprehje të rregullta. Thjesht dijeni se aftësia për të përdorur Shprehje të Rregullta do të thjeshtojë absolutisht zhvillimin tuaj ndërsa kërkoni modele në tekst. Alsoshtë gjithashtu e rëndësishme të theksohet se shumica e gjuhëve të zhvillimit kanë optimizuar përdorimin e rregullt të shprehjes… kështu që në vend se të analizojë dhe kërkojë vargje hap pas hapi, Regex është zakonisht shumë më i shpejtë si nga serveri ashtu edhe nga klienti.

Kam kërkuar në internet mjaft para se të gjeja nje shembull të disa Shprehjeve të Rregullta të shkëlqyera që kërkojnë një kombinim të gjatësisë, karaktereve dhe simboleve. Sidoqoftë, kodi ishte paksa i tepruar për shijen time dhe i përshtatur për .NET. Kështu që unë thjeshtova kodin dhe e vendosa në JavaScript. Kjo e bën atë të vërtetojë fuqinë e fjalëkalimit në kohë reale në shfletuesin e klientit përpara se ta postojë përsëri… dhe siguron disa reagime për përdoruesin për fuqinë e fjalëkalimit.

Shkruaj një fjalëkalim

Me çdo goditje të tastierës, fjalëkalimi testohet kundër shprehjes së rregullt dhe më pas sigurohet reagimi për përdoruesin në një hapësirë ​​nën të.




Shkruaj fjalëkalimin

Këtu është Kodi

La Shprehje të rregullta bëni një punë fantastike të minimizimit të gjatësisë së kodit:

  • Më shumë personazhe - Nëse gjatësia është nën 8 karaktere.
  • i dobët - Nëse gjatësia është më pak se 10 karaktere dhe nuk përmban një kombinim të simboleve, shkronjave, tekstit.
  • Medium - Nëse gjatësia është 10 karaktere ose më shumë dhe ka një kombinim të simboleve, shkronjave, tekstit.
  • I fortë - Nëse gjatësia është 14 karaktere ose më shumë dhe ka një kombinim të simboleve, kapakëve, tekstit.

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

Forcimi i kërkesës tuaj për fjalëkalim

Essentialshtë thelbësore që ju jo vetëm të vërtetoni ndërtimin e fjalëkalimit brenda Javascript tuaj. Kjo do të mundësonte cilindo që ka mjete të zhvillimit të shfletuesit të anashkalojë skriptin dhe të përdorë çfarëdo fjalëkalimi që dëshiron. Gjithmonë duhet të përdorni një kontroll nga ana e serverit për të vërtetuar forcën e fjalëkalimit përpara se ta ruani atë në platformën tuaj.

34 Comments

  1. 1
  2. 2

    FALEMINDERIT! FALEMINDERIT! FALEMINDERIT! Kam bërë budalla për 2 javë me kodin e forcës së fjalëkalimit të mallkuar nga faqet e internetit të tjera dhe duke tërhequr flokët. E juaja është e shkurtër, funksionon ashtu si unë dua dhe më e mira nga të gjitha, e lehtë për t'u modifikuar për një fillestar javascript! Doja të kapja verdiktin e forcës dhe të mos lejoja që postimi i formularit të azhurnonte fjalëkalimin e përdoruesit nëse nuk plotëson testin e forcës. Kodi i të tjerëve ishte shumë i ndërlikuar ose nuk funksiononte si duhet ose diçka tjetër. Unë të dua! XXXXX

  3. 4

    falënderoj zotin për njerëzit që në të vërtetë mund të shkruajnë një pjesë të kodit siç duhet.
    Kishte të njëjtën përvojë si Janis.

    Kjo funksionon menjëherë jashtë kutisë, e cila është perfekte për njerëz si unë që nuk mund të kodojnë javascript!

  4. 5
  5. 6

    Përshëndetje, së pari falënderoj shumë për përpjekjet tuaja, unë u përpoqa ta përdor këtë me Asp.net por nuk punova, po përdor

    në vend të etiketës, dhe nuk funksionoi, ndonjë sugjerim ?!

  6. 7

    Për në Nisreen: kodi në kutinë e theksuar nuk funksionon me një pastë të prerë. Citimi i vetëm është ngatërruar. Kodi i lidhjes demonstruese është mirë gjithsesi.

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

    "P @ s $ w0rD" shfaqet në mënyrë të fortë, megjithëse do të goditej mjaft shpejt me një sulm dictionnary
    Për të vendosur një tipar të tillë në një zgjidhje profesionale, besoj se është e rëndësishme të kombinohet ky algoritëm me një kontroll dictionnary.

  11. 12
  12. 13

    Faleminderit për këtë kod të vogël tani mund ta përdor për të provuar forcën e fjalëkalimit tim kur vizitorët e mi. Fut fjalëkalimet e tyre,

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

    dikush mund të tregojë, pse nuk funksionoi e imja ..

    kam kopjuar të gjithë kodin dhe e ngjis në notepad ++, por nuk funksionon fare?
    të lutem më ndihmo..

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

    Ky lloj i "kontrollorit të forcës" i çon njerëzit në një rrugë shumë të rrezikshme. Ai vlerëson shumëllojshmërinë e karakterit mbi gjatësinë e frazës, duke e çuar atë të vlerësojë fjalëkalimet më të shkurtra, më të larmishme, si më të forta se sa fjalëkalimet më të gjata, më pak të ndryshme. Ky është një mashtrim që do t'i sjellë përdoruesit tuaj në telashe nëse ata përballen ndonjëherë me një kërcënim serioz hakimi.

    • 25

      Nuk jam dakord, Jordan! Shembulli u paraqit thjesht si një shembull i skenarit. Rekomandimi im për njerëzit është që të përdorin një mjet të menaxhimit të fjalëkalimit për të krijuar fraza kalimi të pavarura për çdo faqe që është unike për të. Faleminderit!

  24. 26
  25. 27
  26. 28

    jam me të vërtetë e vlerësoj ju jeni kontrolluar këtë shumë herë, por së fundmi kam marrë postimin tuaj dhe jam me të vërtetë i tronditur. FALEMINDERIT

  27. 29
  28. 31
  29. 33

    Ju jeni një mbrojtës i drejtpërdrejtë! Po analizoja vargjet majtas djathtas dhe në qendër dhe mendova se ekziston një mënyrë më e mirë dhe gjeta copën tënde të kodit duke përdorur Regex. Isha në gjendje të zgjidhja me të për faqen time… Ju nuk keni ide se sa shumë ndihmoi kjo. Faleminderit shumë Douglas !!

Çfarë mendoni ju?

Kjo faqe përdor Akismet për të reduktuar spamin. Mësoni se si përpunohet komenti juaj.