Angalia Nguvu ya Nenosiri na JavaScript na Maneno ya Kawaida

Angalia Nguvu ya Nenosiri na JavaScript na Maneno ya Kawaida

Nilikuwa nikifanya utafiti juu ya kupata mfano mzuri wa Kikaguzi cha Nguvu ya Nenosiri kinachotumia JavaScript na Maneno ya Mara kwa mara (Regex). Katika programu kwenye kazi yangu, tunarudi nyuma ili kuthibitisha nguvu ya nenosiri na haifai sana kwa watumiaji wetu.

Regex ni nini?

Maneno ya kawaida ni mlolongo wa wahusika ambao hufafanua muundo wa utaftaji. Kawaida, mifumo kama hiyo hutumiwa na algorithms za utaftaji wa kamba kwa kupata or Tafuta na ubadilishe shughuli kwenye kamba, au kwa uthibitishaji wa pembejeo. 

Nakala hii sio lazima ikufundishe maneno ya kawaida. Jua tu kuwa uwezo wa kutumia Maneno ya Kawaida utarahisisha maendeleo yako unapotafuta mifumo kwenye maandishi. Ni muhimu pia kutambua kuwa lugha nyingi za maendeleo zimeboresha matumizi ya usemi wa kawaida… kwa hivyo badala ya kuchambua na kutafuta nyuzi hatua kwa hatua, Regex kawaida ni haraka sana kwa seva na upande wa mteja.

Nilitafuta wavuti kidogo kabla sijapata mfano ya Maneno mazuri ya Kawaida ambayo hutafuta mchanganyiko wa urefu, herufi, na alama. Hata hivyo, nambari hiyo ilikuwa nyingi kupita kiasi kwa ladha yangu na ililengwa kwa NET. Kwa hivyo nikarahisisha nambari na kuiweka kwenye JavaScript. Hii inafanya idhibitishe nguvu ya nenosiri katika wakati halisi kwenye kivinjari cha mteja kabla ya kuirudisha… na hutoa maoni kwa mtumiaji juu ya nguvu ya nenosiri.

Andika Nenosiri

Kwa kila kiharusi cha kibodi, nywila hujaribiwa dhidi ya usemi wa kawaida na kisha maoni hutolewa kwa mtumiaji kwa muda chini yake.




Weka nenosiri

Hapa kuna Kanuni

The Maneno ya Mara kwa mara fanya kazi nzuri ya kupunguza urefu wa nambari:

  • Wahusika zaidi - Ikiwa urefu ni chini ya herufi 8.
  • Dhaifu - Ikiwa urefu ni chini ya herufi 10 na hauna mchanganyiko wa alama, kofia, maandishi.
  • Kati - Ikiwa urefu ni wahusika 10 au zaidi na ina mchanganyiko wa alama, kofia, maandishi.
  • Nguvu - Ikiwa urefu ni wahusika 14 au zaidi na ina mchanganyiko wa alama, kofia, maandishi.

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

Kugumu Ombi lako la Nenosiri

Ni muhimu kwamba usithibitishe tu ujenzi wa nywila ndani ya Javascript yako. Hii ingewezesha mtu yeyote aliye na zana za kukuza kivinjari kupitisha hati na kutumia nywila yoyote ambayo wangependa. Unapaswa kutumia Daima kuangalia-upande wa seva ili kudhibitisha nguvu ya nywila kabla ya kuihifadhi kwenye jukwaa lako.

34 Maoni

  1. 1
  2. 2

    ASANTE! ASANTE! ASANTE! Nimekuwa nikidanganya kwa wiki 2 na nambari ya nguvu ya nenosiri kutoka kwa wavuti zingine na kuvuta nywele zangu. Yako ni mafupi, inafanya kazi kama vile ninataka na bora zaidi, rahisi kwa novice ya javascript kurekebisha! Nilitaka kunasa uamuzi wa nguvu na kutoruhusu chapisho la fomu kusasisha nywila ya mtumiaji isipokuwa ikiwa imekutana na jaribio la nguvu. Nambari ya watu wengine ilikuwa ngumu sana au haikufanya kazi sawa au kitu kingine. Nakupenda! XXXXX

  3. 4

    asante mungu kwa watu ambao kwa kweli wanaweza kuandika kipande cha nambari vizuri.
    Alikuwa na uzoefu sawa na Janis.

    Hii inafanya kazi nje ya sanduku ambalo ni kamili kwa watu kama mimi ambao hawawezi msimbo wa javascript!

  4. 5
  5. 6

    Halo, kwanza kabisa asante sana kwa juhudi za ur, nilijaribu kutumia hii na Asp.net lakini haikufanya kazi, ninatumia

    badala ya lebo, na haikufanya kazi, maoni yoyote?!

  6. 7

    Kwa Nisreen: nambari iliyo kwenye kisanduku kilichoangaziwa haifanyi kazi na hati ya kukata. Nukuu moja imechanganyikiwa. Nambari ya kiunga cha maandamano ni sawa ingawa.

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

    "P @ s $ w0rD" inaonyesha nguvu, ingawa ingeweza kupasuka haraka haraka na shambulio la kamusi ...
    Kupeleka huduma kama hii kwenye suluhisho la taaluma, naamini ni muhimu kuchanganya algorithm hii na hundi ya kamusi.

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

    mtu anaweza kusema, kwanini haikufanya kazi yangu ..

    nilinakili nambari yote, na kuibandika kwenye notepad ++, lakini haifanyi kazi kabisa?
    tafadhali nisaidie..

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

    Aina hii ya "nguvu ya kukagua" inaongoza watu kwenye njia hatari sana. Inathamini utofauti wa wahusika juu ya urefu wa kaulisiri, na kuiongoza kupimia manenosiri mafupi, anuwai zaidi kuwa na nguvu kuliko nywila ndefu zaidi, tofauti tofauti. Huo ni uwongo ambao utawapa watumiaji wako shida ikiwa watawahi kukabiliwa na tishio kubwa la utapeli.

    • 25

      Sikubaliani, Jordan! Mfano uliwekwa tu kama mfano wa hati. Mapendekezo yangu kwa watu ni kutumia zana ya usimamizi wa nywila kuunda misemo ya kujitegemea kwa wavuti yoyote ambayo ni ya kipekee kwake. Asante!

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

    Wewe ni mwokoaji wa moja kwa moja! Nilikuwa nikichanganya kamba kushoto na katikati na nilidhani kuna njia bora na nikapata kipande chako cha nambari kutumia Regex. Niliweza kufurahi nayo kwa wavuti yangu ... Hujui ni kiasi gani hii ilisaidia. Asante sana Douglas !!

Unafikiri?

Tovuti hii inatumia Akismet kupunguza spam. Jifunze jinsi maoni yako yanasindika.