Kontrolu Pasvortan Forton per Ĝavoskripto kaj Regulaj Esprimoj

Kontrolu Pasvortan Forton per Ĝavoskripto kaj Regulaj Esprimoj

Mi iom esploris pri trovado de bona ekzemplo de uzanto de Pasvorta Forto JavaScript kaj Regulaj Esprimoj (Regex). En la aplikaĵo ĉe mia laboro, ni redonas afiŝon por kontroli la pasvorton, kaj ĝi estas sufiĉe maloportuna por niaj uzantoj.

Kio estas Regex?

Regula esprimo estas vico de signoj, kiuj difinas serĉan ŝablonon. Kutime tiaj ŝablonoj estas uzataj per ĉenserĉaj algoritmoj trovi or trovi kaj anstataŭigi operacioj sur ĉenoj, aŭ por eniga validado. 

Ĉi tiu artikolo certe ne instruas al vi regulajn esprimojn. Nur sciu, ke la kapablo uzi Regulajn Esprimojn absolute simpligos vian evoluon dum vi serĉos ŝablonojn en teksto. Gravas ankaŭ rimarki, ke plej multaj evoluaj lingvoj optimumigis uzon de regula esprimo ... do anstataŭ analizi kaj serĉi ĉenojn paŝon post paŝo, Regex estas kutime multe pli rapida kaj servila kaj klienta.

Mi serĉis la retejon sufiĉe antaŭ ol mi trovis ekzemplo de iuj bonegaj Regulaj Esprimoj, kiuj serĉas kombinaĵon de longo, signoj kaj simboloj. Tamen la kodo estis iom troa laŭ mia gusto kaj adaptita por .NET. Do mi simpligis la kodon kaj metis ĝin en JavaScript. Ĉi tio igas ĝin validigi la pasvorton en realtempa en la retumilo de la kliento antaŭ afiŝi ĝin reen ... kaj donas iom da reago al la uzanto pri la forto de la pasvorto.

Tajpu A Pasvorton

Kun ĉiu bato de la klavaro, la pasvorto estas provita kontraŭ la regula esprimo kaj tiam reago estas donita al la uzanto en interspaco sub ĝi.




Tajpu Pasvorton

Jen la Kodo

la Regulaj Esprimoj fari mirindan laboron minimumigi la longon de la kodo:

  • Pli da roluloj - Se la longo estas malpli ol 8 signoj.
  • malforta - Se la longo estas malpli ol 10 signoj kaj ne enhavas kombinaĵon de simboloj, majuskloj, teksto.
  • mediumo - Se la longo estas 10 literoj aŭ pli kaj havas kombinaĵon de simboloj, majuskloj, teksto.
  • fortan - Se la longo estas 14 signoj aŭ pli kaj havas kombinaĵon de simboloj, majuskloj, teksto.

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

Malmoligi Vian Pasvortan Peton

Estas esence, ke vi ne nur validigu la pasvortan konstruon ene de via Ĝavaskripto. Ĉi tio ebligus al ĉiuj kun retumilaj iloj preteriri la skripton kaj uzi ĉian pasvorton, kiun ili ŝatus. Vi ĈIAM devas uzi servilan kontrolon por validigi la pasvortan forton antaŭ ol konservi ĝin en via platformo.

34 Komentoj

  1. 1
  2. 2

    DANKON! DANKON! DANKON! Mi trompas ĉirkaŭ 2 semajnoj per diabla pasvorta fortokodo de aliaj retejoj kaj eltiras miajn harojn. Via estas mallonga, funkcias kiel mi volas kaj plej bone, facile por ĝavaskripta novulo modifi! Mi volis kapti la fortan verdikton kaj ne lasi la formularon afiŝi por efektive ĝisdatigi la pasvorton de la uzanto krom se ĝi plenumis la fortan teston. Alia kodo estis tro komplika aŭ ne funkciis bone aŭ io alia. Mi amas vin! XXXXX

  3. 4

    dankon al Dio por homoj, kiuj efektive povas verki pecon de kodo ĝuste.
    Havis saman sperton kiel Janis.

    Ĉi tio funkcias tuj, kio estas perfekta por homoj kiel mi, kiuj ne povas kodi ĝavaskripton!

  4. 5
  5. 6

    Saluton, antaŭ ĉio dankegon pro viaj penoj, mi provis uzi ĉi tion kun Asp.net sed ne funkciis, mi uzas

    anstataŭ etikedo, kaj ĝi ne funkciis, ĉu iuj sugestoj ?!

  6. 7

    Al Nisreen: la kodo en la elstarigita skatolo ne funkcias kun tranĉebla pasto. La sola citaĵo estas fuŝita. La kodo de la demonstracia ligilo tamen bonas.

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

    "P @ s $ w0rD" montras forte, kvankam ĝi rompiĝus sufiĉe rapide per vortara atako ...
    Por disfaldi tian funkcion en profesia solvo, mi kredas, ke gravas kombini ĉi tiun algoritmon kun vortara kontrolo.

  11. 12
  12. 13

    Dankon pro ĉi tiu eta kodo, mi nun povas uzi ĝin por testi mian pasvorton, kiam miaj vizitantoj enigas siajn pasvortojn,

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

    ĉu iu povas diri, kial ĝi ne funkciis la mia ..

    Mi kopiis la tutan kodon, kaj almetis ĝin al notepad ++, sed ĝi tute ne funkcias?
    Bonvolu helpi min..

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

    Ĉi tiu speco de "fort-kontrolilo" kondukas homojn laŭ tre danĝera vojo. Ĝi taksas karakteran diversecon super pasfrazolongo, igante ĝin taksi pli mallongajn, pli diversajn pasvortojn kiel pli fortajn ol pli longaj, malpli diversaj pasvortoj. Tio estas misrezono, kiu problemigos viajn uzantojn, se ili iam alfrontos gravan hakan minacon.

    • 25

      Mi ne malkonsentas, Jordan! La ekzemplo estis simple elmetita kiel ekzemplo de la skripto. Mia rekomendo por homoj estas uzi pasvortan mastrumilon por krei sendependajn pasfrazojn por iuj retejoj unikaj al ĝi. Dankon!

  24. 26
  25. 27
  26. 28

    Mi vere dankas vin, ke mi serĉis ĉi tion multajn fojojn, sed finfine mi ricevis vian afiŝon kaj vere mizeras. DANKON

  27. 29
  28. 31
  29. 33

    Vi estas viva ŝparanto! Mi analizis kordojn maldekstre dekstre kaj centre kaj pensis, ke estas pli bona maniero kaj trovis vian kodpecon per Regex. Povis tintigi ĝin pri mia retejo ... Vi tute ne scias, kiom multe helpis ĉi tio. Dankegon Douglas !!

Kion vi pensas?

Ĉi tiu retejo uzas Akismeton por redukti spamon. Lernu, kiel via komento datiĝas.