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ą.
Radau dar vieną slaptažodžio stiprumo tikrintuvą. Jų algoritmas pagrįstas žodžių žodynu. Išbandykite vieną iš microsoft.com – http://www.microsoft.com/protect/yourself/password/checker.mspx ir vienas iš itsimpl.com – http://www.itsimpl.com
AČIŪ! AČIŪ! AČIŪ! 2 savaites kvailiojau su velniškai slaptažodžio stiprumo kodu iš kitų svetainių ir traukiausi plaukus. Jūsų yra trumpas, veikia taip, kaip aš noriu, o geriausia, kad javascript naujokas gali lengvai modifikuoti! Norėjau užfiksuoti stiprumo verdiktą ir neleisti, kad forma paskelbtų iš tikrųjų atnaujinti vartotojo slaptažodį, nebent jis atitiktų stiprumo testą. Kitų žmonių kodas buvo per sudėtingas arba neveikė tinkamai, ar dar kažkas. Aš tave myliu! XXXXX
Prašom! Prašom! Prašom!
Aš taip pat tave myliu!
ačiū Dievui už žmones, kurie iš tikrųjų gali tinkamai parašyti kodo dalį.
Turėjau tą pačią patirtį kaip ir Janis.
Tai veikia iš karto, o tai puikiai tinka žmonėms, tokiems kaip aš, kurie nemoka koduoti javascript!
Dėkojame, kad parašėte kodo dalį, kuri atlieka būtent tai, kas nurodyta ant skardinės!
Sveiki, visų pirma labai ačiū už pastangas, bandžiau naudoti su Asp.net, bet nepavyko, naudoju
vietoj žymos, ir ji neveikė, kokių nors pasiūlymų?!
Nisreen: kodas paryškintame laukelyje neveikia su cut'n'paste. Viena citata sujaukė. Tačiau demonstracinės nuorodos kodas yra geras.
Ei, man patinka tavo scenarijus! Išverčiau jį į olandų kalbą ir paskelbiau savo forume čia!
puikus darbas! kaip tai turėtų būti padaryta klientui
labai grazus darbas...
Ačiū, Douglas, naudoju jį savo dabartiniame darbe.
„P@s$w0rD“ rodomas stipriai, nors jis būtų gana greitai nulaužtas naudojant žodyno ataką...
Manau, kad norint įdiegti tokią funkciją profesionaliame sprendime, svarbu šį algoritmą derinti su žodyno patikra.
Puikiai veikia XULRunner su šiek tiek pakeitimu. Dėkoju!
Ačiū už šį nedidelį kodą, dabar galiu jį naudoti tikrindamas slaptažodžio stiprumą, kai mano lankytojai įveda savo slaptažodžius,
Puikus kodavimo gabalas
Scenarijus buvo puikus. Naudojau mūsų dabartiniame projekte
Thank you for sharing!
Tokia paprasta ir fantastiška išraiška. Aš, kaip bandytojas, išvedau savo TC iš šios išraiškos.
Ačiū, kad pasidalinai. Šiame puslapyje turite keletą neveikiančių nuorodų. FYI.
ar kas nors gali pasakyti, kodėl man jis neveikė..
Nukopijavau visą kodą ir įklijavau į notepad++, bet jis visai neveikia?
Prašau padėkite man..
Fantastinis!!!!! Ačiū.
Puikus darbas vaikinas! Paprasta ir veiksminga. Labai ačiū, kad dalinatės!
ačiū
Gerai, thx. Bet... Kas yra STIPRUS PW pavyzdys? 'negaliu rasti!-{}
Šio tipo „jėgos tikrintuvas“ veda žmones labai pavojingu keliu. Ji vertina simbolių įvairovę, o ne slaptafrazės ilgį, todėl trumpesni ir įvairesni slaptažodžiai vertinami kaip stipresni nei ilgesni, ne tokie skirtingi slaptažodžiai. Tai klaidinga klaida, dėl kurios jūsų naudotojai susidurs su rimta įsilaužimo grėsme.
Aš nesutinku, Džordana! Pavyzdys buvo tiesiog pateiktas kaip scenarijaus pavyzdys. Mano rekomendacija žmonėms yra naudoti slaptažodžių valdymo įrankį, kad sukurtumėte nepriklausomas slaptafrazes bet kuriai svetainei, kuri yra unikali. Dėkoju!
ačiū, veikia puikiai.
Ačiū, veikia gerai
Esu labai dėkingas, kad jūsų ieškojo daug kartų, bet galiausiai gavau jūsų įrašą ir esu labai nustebęs. AČIŪ
Ačiū, bičiuli. Ką tik įdiegta mano svetainėje ir ji veikia labai gerai.
Mėgstu tai girdėti! Tu labiausiai laukiamas!
Dėkoju, kad daliniesi! Siekiau sustiprinti slaptažodžio stiprumą mūsų svetainėje ir šis veikė taip, kaip norėjau. Labai ačiū!
Ačiū, tikimės, kad galėsite jį pritaikyti pagal poreikį.
Jūs esate gyvų žmonių gelbėtojas! Aš analizavau eilutes kairėje dešinėje ir centre ir maniau, kad yra geresnis būdas, ir radau jūsų kodo dalį naudodamas Regex. Galėjau su juo susitvarkyti savo svetainę... Jūs neįsivaizduojate, kiek tai padėjo. Labai ačiū Douglas!!
Malonu girdeti!