Ech hunn eng Recherche gemaach fir e gutt Beispill ze fannen vun engem Passwuert Kraaft Checker deen benotzt Javascript an Regelméisseg Ausdréck (Regex). An der Applikatioun bei menger Aarbecht maache mir e Post zréck fir d'Passwuertstäerkt z'iwwerpréiwen an et ass zimlech onbequem fir eis Benotzer.
Wat ass Regex?
E reegelméissegen Ausdrock ass eng Sequenz vu Personnagen déi e Sichmuster definéieren. Normalerweis ginn esou Mustere vu String Sich Algorithmen benotzt fir fannen or fannen an ersetzen Operatiounen op Strings, oder fir Input Validatioun.
Dësen Artikel ass definitiv net fir Iech regelméisseg Ausdréck ze léieren. Just wësst datt d'Fäegkeet Regular Expressiounen ze benotzen wäert Är Entwécklung absolut vereinfachen wann Dir no Musteren am Text sicht. Et ass och wichteg ze bemierken datt déi meescht Entwécklungssproochen de regulären Ausdrock benotzt optimiséiert hunn ... also anstatt Strings step-by-step ze analyséieren an ze sichen, ass Regex typesch vill méi séier wéi Server a Client-Säit.
Ech hunn de Web relativ vill gesicht ier ech fonnt hunn e Beispill vun e puer super Regular Expressiounen déi no enger Kombinatioun vu Längt, Charaktere a Symboler sichen. Wéi och ëmmer, de Code war e bëssen exzessiv fir mäi Goût a personaliséiert fir .NET. Also hunn ech de Code vereinfacht an en a JavaScript gesat. Dëst erlaabt et d'Passwuertstäerkt an Echtzäit am Browser vum Client ze validéieren ier et zréck gepost gëtt ... a gëtt e puer Feedback fir de Benotzer iwwer d'Stäerkt vum Passwuert.
Typ A Passwuert
Mat all Schlag vun der Tastatur gëtt de Passwuert géint de regulären Ausdrock getest an da gëtt de Feedback an de Benotzer an enger Spann drënner geliwwert.
Typ Passwuert
Hei de Code
d' Regelméisseg Ausdréck maacht eng fantastesch Aarbecht fir d'Längt vum Code ze minimiséieren:
- Méi Personnagen - Wann d'Längt ënner 8 Zeechen ass.
- schwaach - Wann d'Längt manner wéi 10 Zeechen ass an net eng Kombinatioun vu Symboler, Mutzen, Text enthält.
- mëttel- - Wann d'Längt 10 Zeechen oder méi ass an eng Kombinatioun vu Symboler, Käpp, Text huet.
- staark - Wann d'Längt 14 Zeechen oder méi ass an eng Kombinatioun vu Symboler, Mutzen, Text huet.
<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>
Äert Passwuert ufroen
Et ass essentiell datt Dir net nëmmen d'Passwuertkonstruktioun an Ärem Javascript validéiert. Dëst géif jidderee mat Browserentwécklungsinstrumenter erméiglechen de Skript z'ëmgoen an e Passwuert ze benotze wat se gär hätten. Dir sollt ËMMER e Server-Check benotze fir d'Passwuertstäerkt ze validéieren ier Dir se op Ärer Plattform speichert.
Ech hunn eng aner Passwuert Kraaft Kontroller fonnt. Hiren Algorithmus baséiert op Wierder Wierderbuch. Probéiert een op microsoft.com - http://www.microsoft.com/protect/yourself/password/checker.mspx an een op itsimpl.com - http://www.itsimpl.com
MERCI! MERCI! MERCI! Ech hunn zënter 2 Woche mam Verdammte Passwuert Kraaftcode vun anere Websäite verflunn a meng Hoer erausgezunn. Däin ass kuerz, funktionnéiert just wéi ech wëll an am Beschten einfach fir e Javascript-Nowuess ze änneren! Ech wollt d'Kraaftuerteel fänken an de Formulaire net loossen fir de Benotzer säi Passwuert tatsächlech ze aktualiséieren, ausser wann et de Kraaftstest erfëllt. De Code vun anere Leit war ze komplizéiert oder huet net richteg funktionnéiert oder soss eppes. Ech hunn dech gär! XXXXX
Du bass wellkomm! Du bass wellkomm! Du bass wellkomm!
Ech hun dech och gaer!
Gott sei Dank fir Leit déi tatsächlech e Stéck Code richteg schreiwen.
Hat déiselwecht Erfahrung wéi Janis.
Dëst funktionnéiert direkt aus der Këscht, dat ass perfekt fir Leit wéi ech, déi kee Javascript kënnen codéieren!
Merci fir e Stéck Code ze schreiwen dat genau dat mécht wat et op der Dosen seet!
Salut, als alleréischt vill Merci fir Är Efforten, ech hu probéiert dëst mat Asp.net ze benotzen awer net funktionnéiert, ech benotzen
amplaz vum Tag, an et huet net geschafft, keng Virschléi ?!
Zu Nisreen: de Code an der markéierter Këscht funktionnéiert net mat engem Cut'n'Paste. Dat eenzegt Zitat ass duerchernee. De Code vun der Demonstratiounslink ass awer gutt.
Hey, ech hunn däi Skript gär! Ech hunn et op hollännesch iwwersat, an ech hunn et a mengem Forum hei gepost!
super Aarbecht! genau wéi et um Client soll gemaach ginn
ganz flott Aarbecht ....
Merci Douglas, ech benotze se fir meng aktuell Aarbecht.
"P @ s $ w0rD" weist staark, obwuel et zimlech séier mat engem Dictionnaire Attack geknackt wier ...
Fir sou eng Feature op enger professionneller Léisung z'installéieren, gleewen ech et wichteg dëst Algorithmus mat engem Dictionnairecheck ze kombinéieren.
Wierker super an XULRunner mat e bësse verännert ronderëm. Merci!
Merci fir dëse klenge Code, ech kann et elo benotze fir mäi Passwuertstäerkt ze testen, wa meng Visiteuren hir Passwierder aginn,
Super Stéck Kodéierung
De Skript war super .Ech hat an eisem aktuelle Projet benotzt
Merci fir den Deelen!
Sou einfach a fantastesch Ausdrock. Ech als Tester hunn meng TCe vun dësem Ausdrock ofgeleet.
Merci fir deelen. Dir hutt e puer futtis Links op dëser Säit. FYI.
kann een soen, firwat et net mäin funktionnéiert ..
ech hunn de ganzen Code kopéiert, an en op Notizblock ++ gepecht, awer et funktionéiert guer net?
Hëllef Mir w.e.g..
Fantastesch !!!!! Merci.
Super Job Typ! Einfach an effektiv. Villmools Merci fir Deelen!
merci
Gutt, thx. Awer ... Wat ass e Beispill vun engem STRONG pw? 'fënnt keen! - {}
Dës Aart vu "Kraaftchecker" féiert d'Leit op e ganz geféierleche Wee. Et schätzt Charakterdiversitéit iwwer Passphraselängt, wat et féiert zu méi kuerzen, méi diverse Passwierder wéi méi staark wéi méi laang, manner divers Passwierder. Dat ass e Feeler deen Är Benotzer a Probleemer bréngt wa se jeemools mat enger seriöer Hacking Bedrohung stinn.
Ech sinn net averstan, Jordan! D'Beispill gouf einfach als Beispill vum Skript ausgestallt. Meng Empfehlung fir Leit ass e Passwuertverwaltungsinstrument ze benotze fir onofhängeg Passwierder fir all Site ze kreéieren déi eenzegaarteg sinn. Merci!
merci et schafft super.
Merci u et schafft gutt
ech si wierklech appréciéiert Dir sidd dëst vill Mol gesicht awer als lescht krut ech Äre Post a si wierklech amzed. MERCI
Merci Mate. Just op menger Websäit agesat an et funktionnéiert ganz gutt.
Léift dat ze héieren! Dir sidd häerzlech wëllkomm!
Ech appréciéieren Dir deelen! Hunn gesicht fir d'Passwuertstäerkt op eiser Websäit opzebauen an dës huet esou geschafft wéi ech wollt. Villmools Merci!
Merci, hoffen Dir kënnt et personaliséieren wéi néideg.