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 kudhibitisha nguvu ya nywila na ni shida 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 usemi wa 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 kuthibitisha nguvu ya nenosiri kabla ya kuihifadhi kwenye jukwaa lako.
Nimepata ukaguzi mwingine wa nguvu ya nywila. Algorithm yao kulingana na kamusi ya maneno. Jaribu moja kwenye microsoft.com - http://www.microsoft.com/protect/yourself/password/checker.mspx na moja kwenye itsimpl.com - http://www.itsimpl.com
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
Karibu! Karibu! Karibu!
Nakupenda pia!
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!
Asante kwa kuandika kipande cha nambari ambacho hufanya haswa kile inachosema kwenye kopo!
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?!
Kwa Nisreen: nambari iliyo kwenye kisanduku kilichoangaziwa haifanyi kazi na hati ya kukata. Nukuu moja imechanganyikiwa. Nambari ya kiunga cha maandamano ni sawa ingawa.
Hei, napenda hati yako! Niliitafsiri kwa dutch, na niliiweka kwenye baraza langu hapa!
kazi nzuri! haswa jinsi inapaswa kufanywa kwa mteja
kazi nzuri sana….
Asante Douglas, naitumia kwa kazi yangu ya sasa.
"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.
Inafanya kazi nzuri katika XULRunner na kubadilisha kidogo kuzunguka. Asante!
Asante kwa nambari hii ndogo naweza kuitumia kujaribu nywila yangu wakati wageni wangu wanaingia nywila zao,
Kipande kikubwa cha uandishi
Hati ilikuwa nzuri .Nilikuwa nimetumia katika mradi wetu wa sasa
Asante kwa kushirikiana!
Usemi rahisi na mzuri. Mimi kama mpimaji nilipata TC zangu kutoka kwa usemi huu.
Asante kwa kushiriki. Una viungo vichache vilivyovunjika kwenye ukurasa huu. FYI.
mtu anaweza kusema, kwanini haikufanya kazi yangu ..
nilinakili nambari yote, na kuibandika kwenye notepad ++, lakini haifanyi kazi kabisa?
tafadhali nisaidie..
Ajabu !!!!! Asante.
Mtu mzuri wa kazi! Rahisi na yenye ufanisi. Asante sana kwa kushiriki!
asante
Nzuri, thx. Lakini… Je! Ni mfano gani wa PW STRONG? 'siwezi kupata moja! - {}
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.
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!
asante inafanya kazi nzuri.
Asante kazi yake nzuri
Ninathamini sana kuwa umetafutwa mara nyingi lakini mwishowe nilipata chapisho lako na nimepumzika sana. ASANTE
Asante rafiki. Imepelekwa tu kwenye wavuti yangu na inafanya kazi vizuri sana.
Upendo kusikia hivyo! Unakaribishwa sana!
Ninashukuru wewe kushiriki! Nimekuwa nikitafuta kuongeza nguvu ya nenosiri kwenye wavuti yetu na hii ilifanya kazi kwa njia ambayo nilitaka. Asante sana!
Asante, tunatumahi kuwa unaweza kuibadilisha kama inahitajika.
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 !!
Kubwa kusikia!