Ek het navorsing gedoen oor die vind van 'n goeie voorbeeld van 'n wagwoordsterktekontroleerder wat gebruik word JavaScript en Gereelde uitdrukkings (Regex). In die aansoek by my werk doen ons 'n terugvoer om die sterkte van die wagwoord te verifieer en dit is nogal ongerieflik vir ons gebruikers.
Wat is Regex?
'N Gereelde uitdrukking is 'n reeks karakters wat 'n soekpatroon definieer. Gewoonlik word sulke patrone gebruik deur algoritmes vir snaar soek vind or vind en vervang bewerkings op toutjies, of vir invoer validering.
Hierdie artikel moet u beslis nie gereelde uitdrukkings leer nie. Weet net dat die gebruik van Regular Expressions u ontwikkeling absoluut sal vergemaklik as u patrone in teks soek. Dit is ook belangrik om op te let dat die meeste ontwikkelingstale die gebruik van gereelde uitdrukkings geoptimaliseer het ... dus eerder as om snare stapsgewys te ontleed en te soek, is Regex gewoonlik baie vinniger op die bediener en op die kliënt.
Ek het nogal 'n bietjie op die web gesoek voordat ek dit gekry het n voorbeeld van 'n paar uitstekende Regular Expressions wat 'n kombinasie van lengte, karakters en simbole soek. Die kode was egter na my smaak 'n bietjie buitensporig en aangepas vir .NET. Daarom het ek die kode vereenvoudig en dit in JavaScript geplaas. Dit laat dit die wagwoordsterkte intyds in die blaaier van die kliënt bekragtig voordat dit teruggestuur word ... en gee terugvoer aan die gebruiker oor die sterkte van die wagwoord.
Tik 'n wagwoord
Met elke toetssleutel word die wagwoord aan die normale uitdrukking getoets en dan word die gebruiker terugvoer gegee in 'n omvang daaronder.
Tik wagwoord
Hier is die kode
Die Gereelde uitdrukkings doen 'n fantastiese werk om die lengte van die kode te verminder:
- Meer karakters - As die lengte minder as 8 karakters is.
- Swak - As die lengte minder as tien karakters is en nie 'n kombinasie van simbole, hoofletters, teks bevat nie.
- Medium - As die lengte 10 karakters of meer bevat en 'n kombinasie van simbole, hoofletters, teks bevat.
- Sterk - As die lengte 14 karakters of meer bevat en 'n kombinasie van simbole, hoofletters, teks bevat.
<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>
Verhard u wagwoordversoek
Dit is noodsaaklik dat u nie net die wagwoordkonstruksie in u Javascript bekragtig nie. Dit sal almal met blaaierontwikkelingsinstrumente in staat stel om die script te omseil en die wagwoord te gebruik wat hulle wil hê. U moet ALTYD 'n tjek aan die bedienerkant gebruik om die sterkte van die wagwoord te bekragtig voordat u dit op u platform bêre.
Ek het 'n ander wagwoordsterkte-toetser gevind. Hul algoritme is gebaseer op woorde woordeboek. Probeer een op microsoft.com - http://www.microsoft.com/protect/yourself/password/checker.mspx en een op itsimpl.com - http://www.itsimpl.com
DANKIE! DANKIE! DANKIE! Ek is al twee weke besig om te flous met verdomde wagwoordsterktekode van ander webwerwe en trek my hare uit. Die uwe is kort, werk net soos ek wil hê en die beste van alles, maklik vir 'n javascript-beginner om aan te pas! Ek wou die uitspraak oor sterkte opneem en nie toelaat dat die vorm die gebruiker se wagwoord werklik opdateer nie, tensy dit aan die kragmeting voldoen het. Ander mense se kode was te ingewikkeld of het nie reg gewerk nie, of iets anders. Ek het jou lief! XXXXX
Jy is welkom! Jy is welkom! Jy is welkom!
Ek is lief vir jou ook!
dankie tog vir mense wat eintlik 'n stuk kode behoorlik kan skryf.
Dieselfde ervaring as Janis gehad.
Dit werk direk uit die boks, wat ideaal is vir mense soos ek wat nie 'n JavaScript-kode kan kodeer nie!
Dankie dat u 'n stuk kode geskryf het wat presies doen wat dit op die blik staan!
Hallo, eerstens baie dankie vir u pogings, ek het probeer om dit met Asp.net te gebruik, maar het nie gewerk nie, ek gebruik dit
in plaas van etiket, en dit werk nie, is daar geen voorstelle nie ?!
Vir Nisreen: die kode in die gemarkeerde blokkie werk nie met 'n geknipte pasta nie. Die enkele aanhaling is deurmekaar. Die kode van die demonstrasie skakel is egter goed.
Haai, ek hou van jou skrif! Ek het dit in Nederlands vertaal en dit op my forum hier geplaas!
goeie werk! presies hoe dit op die kliënt gedoen moet word
baie mooi werk ....
Dankie Douglas, ek gebruik dit vir my huidige werk.
“P @ s $ w0rD” wys sterk, hoewel dit redelik vinnig met 'n woordeboekaanval gekraak sou word ...
Om so 'n funksie op 'n professionele oplossing te gebruik, glo ek dit is belangrik om hierdie algoritme te kombineer met 'n woordeboekkontrole.
Werk goed in XULRunner met 'n bietjie verandering. Dankie!
Dankie vir hierdie klein kode. Ek kan dit nou gebruik om my wagwoordsterkte te toets as my besoekers hul wagwoorde gee,
Groot stuk kodering
Die teks was super. Ek het dit in ons huidige projek gebruik
Dankie vir die deel!
So eenvoudige en fantastiese uitdrukking. Ek as toetser het my TC's afgelei van hierdie uitdrukking.
Dankie dat jy gedeel het. U het 'n paar gebreekte skakels op hierdie bladsy. FYI.
kan iemand sê hoekom dit nie myne gewerk het nie ..
ek het al die kode gekopieër en op notepad ++ geplak, maar dit werk glad nie?
help my asseblief..
Fantasties !!!!! Dankie.
Goeie werk ou! Eenvoudig en effektief. Baie dankie vir die deel!
dankie
Goed, thx. Maar ... Wat is 'n voorbeeld van 'n STERKE pw? 'kan nie een vind nie! - {}
Hierdie tipe 'sterktekontroleerder' lei mense op 'n baie gevaarlike pad. Dit waardeer karakterdiversiteit bo wagwoordfrase, wat lei tot korter, meer uiteenlopende wagwoorde as sterker as langer, minder uiteenlopende wagwoorde. Dit is 'n dwaling wat gebruikers in die moeilikheid sal bring as hulle ooit met 'n ernstige inbraakbedreiging te kampe het.
Ek stem nie saam nie, Jordanië! Die voorbeeld is eenvoudig as voorbeeld van die teks uiteengesit. My aanbeveling vir mense is om 'n wagwoordbestuursinstrument te gebruik om onafhanklike wagwoordfrases te skep vir enige webwerf wat uniek daarvoor is. Dankie!
dankie dit werk wonderlik.
Dankie dat dit goed werk
ek waardeer dit regtig dat u al baie kere deurgesoek is, maar laastens het ek u pos gekry en is regtig verbaas. DANKIE
Dankie maat. Pas op my webwerf ontplooi en dit werk baie goed.
Hou daarvan om dit te hoor! Jy is baie welkom!
Ek waardeer dit dat jy deel! Ek het probeer om die wagwoordsterkte op ons webwerf te vergroot, en hierdie het gewerk soos ek wou. Baie dankie!
Dankie, hoop dat u dit kan aanpas soos nodig.
You are a live saver! I was parsing strings left right and centre and thought there is a better way and found your piece of code using Regex. Was able to tinkle with it for my site…You have no idea how much this helped. Thanks so much Douglas!!
Great to hear!