Préift Passwuert Kraaft mat JavaScript a Regular Expressiounen

Préift Passwuert Kraaft mat JavaScript a Regular Expressiounen

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.

32 Comments

  1. 1
  2. 2

    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

  3. 4

    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!

  4. 5
  5. 6

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

  6. 7

    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.

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

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

  11. 12
  12. 13

    Merci fir dëse klenge Code, ech kann et elo benotze fir mäi Passwuertstäerkt ze testen, wa meng Visiteuren hir Passwierder aginn,

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

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

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

    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.

    • 25

      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!

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

Wat denks du?

Dëse Site benotzt Akismet fir Spam ze reduzéieren. Léiert wéi Är Kommentarfaten veraarbecht ginn.