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ë forcën 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! Unë kam mashtruar për 2 javë me kodin e mallkuar të fuqisë së fjalëkalimit nga faqet e tjera të internetit dhe duke i shkulur flokët. E juaja është e shkurtër, funksionon ashtu siç dua unë dhe më e mira nga të gjitha, është e lehtë për një fillestar në javascript për t'u modifikuar! Doja të kapja verdiktin e forcës dhe të mos lejoja që formulari të postonte të përditësonte në të vërtetë fjalëkalimin e përdoruesit, nëse nuk plotësonte testin e forcës. Kodi i njerëzve të tjerë ishte shumë i ndërlikuar ose nuk funksiononte siç duhet ose diçka tjetër. Unë të dua! XXXXX

  3. 4

    faleminderit zotit për njerëzit që në fakt mund të shkruajnë një pjesë të kodit siç duhet.
    Kishte të njëjtën përvojë si Janis.

    Kjo funksionon menjëherë, e cila është e përkryer për njerëzit si unë që nuk mund të kodojnë Javascript!

  4. 5
  5. 6

    Përshëndetje, para së gjithash faleminderit shumë për përpjekjet tuaja, u përpoqa ta përdor këtë me Asp.net por nuk funksionoi, po përdor

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

  6. 7

    Për Nisreen: kodi në kutinë e theksuar nuk funksionon me një cut'n'paste. Citimi i vetëm është i ngatërruar. Megjithatë, kodi i lidhjes së demonstrimit është i mirë.

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

    "P@s$w0rD" shfaqet në fuqi, megjithëse do të thyhej mjaft shpejt me një sulm fjalori…
    Për të vendosur një veçori të tillë në një zgjidhje profesionale, besoj se është e rëndësishme të kombinohet ky algoritëm me një kontroll fjalori.

  11. 12
  12. 13

    Faleminderit për këtë kod të vogël, tani mund ta përdor për të testuar fuqinë e fjalëkalimit tim kur vizitorët e mi .fusin fjalëkalimet e tyre,

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

    a mund te thote dikush pse nuk funksionoi imja..

    Unë e kopjova të gjithë kodin dhe e ngjita në notepad++, por nuk funksionon fare?
    të lutem më ndihmo..

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

    Ky lloj "kontrolli i forcës" i çon njerëzit në një rrugë shumë të rrezikshme. Ai vlerëson diversitetin e karaktereve mbi gjatësinë e frazës së kalimit, duke e bërë atë të vlerësojë fjalëkalimet më të shkurtra dhe më të ndryshme si më të forta se fjalëkalimet më të gjata dhe më pak të ndryshme. Ky është një gabim që do t'i futë përdoruesit tuaj në telashe nëse ndonjëherë përballen me një kërcënim serioz hakerimi.

    • 25

      Unë nuk jam dakord, Jordan! Shembulli u vu thjesht si 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 të pavarura kalimi për çdo sajt që është unik për të. Faleminderit!

  24. 26
  25. 27
  26. 28

    Unë me të vërtetë e vlerësoj që jeni kërkuar shumë herë, por së fundi mora postimin tuaj dhe jam vërtet i mahnitur. FALEMINDERIT

  27. 29
  28. 31
  29. 33

    Ju jeni një kursimtar i drejtpërdrejtë! Unë po analizoja vargjet majtas djathtas dhe në qendër dhe mendova se kishte një mënyrë më të mirë dhe gjeta kodin tuaj duke përdorur Regex. Isha në gjendje të tingëlloja me të për faqen time…Nuk e keni idenë 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.