Pārbaudiet paroles izturību, izmantojot JavaScript un regulārās izteiksmes

Pārbaudiet paroles izturību, izmantojot JavaScript un regulārās izteiksmes

Es veicu dažus pētījumus, lai atrastu labu piemēru paroles stipruma pārbaudītājam, kas izmanto JavaScript un Regulāras izteiksmes (Regex). Manā darbā esošajā lietojumprogrammā mēs veicam ziņojumu atpakaļ, lai pārbaudītu paroles stiprumu, un tas ir diezgan neērti mūsu lietotājiem.

Kas ir Regex?

Regulārā izteiksme ir rakstzīmju secība, kas nosaka meklēšanas modeli. Parasti šādus modeļus izmanto virkņu meklēšanas algoritmi atrast or atrast un aizstāt operācijas ar virknēm vai ievades validācijai. 

Šis raksts noteikti nav paredzēts, lai iemācītu jums regulāras izteiksmes. Vienkārši ziniet, ka spēja izmantot regulārās izteiksmes absolūti vienkāršos jūsu attīstību, meklējot rakstus tekstā. Ir arī svarīgi atzīmēt, ka lielākā daļa izstrādes valodu ir optimizējušas regulāru izteiksmju lietošanu ... tāpēc, nevis pakāpeniski parsējot un meklējot virknes, Regex parasti ir daudz ātrāks gan servera, gan klienta pusē.

Pirms atradu, es diezgan daudz meklēju tīmeklī piemērs no dažām lieliskām parastajām izteiksmēm, kas meklē garuma, rakstzīmju un simbolu kombināciju. Tomēr kods manai gaumei bija nedaudz pārmērīgs un pielāgots .NET. Tāpēc es vienkāršoju kodu un ievietoju to JavaScript. Tas ļauj reāllaikā pārbaudīt paroles stiprumu klienta pārlūkprogrammā, pirms to ievietot atpakaļ ... un sniedz lietotājam dažas atsauksmes par paroles stiprumu.

Ievadiet A paroli

Ar katru tastatūras taustiĦu parole tiek pārbaudīta salīdzinājumā ar parasto izteiksmi, un pēc tam lietotājam tiek sniegta atgriezeniskā saite zem tās.




Ievadiet paroli

Šeit ir kodekss

Jūsu darbs IR Klientu apkalpošana Regulāras izteiksmes veiciet fantastisku darbu, samazinot koda garumu:

  • Vairāk rakstzīmju - Ja garums ir mazāks par 8 rakstzīmēm.
  • Vājš - Ja garums ir mazāks par 10 rakstzīmēm un nesatur simbolu, vāciņu, teksta kombināciju.
  • vidējs - ja garums ir 10 vai vairāk rakstzīmes un tajā ir simbolu, vāciņu, teksta kombinācija.
  • Spēcīgs - Ja garums ir 14 vai vairāk rakstzīmes un tajā ir simboli, vāciņi, teksts.

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

Paroles pieprasījuma rūdīšana

Ir svarīgi, lai jūs ne tikai apstiprinātu paroles izstrādi savā Javascript. Tas ļautu ikvienam, kam ir pārlūkprogrammas izstrādes rīki, apiet skriptu un izmantot jebkuru vēlamo paroli. Pirms paroles saglabāšanas savā platformā, VIENMĒR jāizmanto servera puses pārbaude, lai pārbaudītu paroles stiprumu.

32 Komentāri

  1. 1
  2. 2

    PALDIES! PALDIES! PALDIES! Es jau 2 nedēļas blēņājos ar sasodītu paroles stiprības kodu no citām vietnēm un izvelku matus. Tavs ir īss, darbojas tieši tāpat kā es vēlos, un pats labākais, ja Javascript iesācējs to viegli modificē! Es gribēju uztvert spriedumu par spēku un neļaut veidlapai izlikt patiesu lietotāja paroles atjaunināšanu, ja vien tā nav izturējusi izturības pārbaudi. Citu cilvēku kods bija pārāk sarežģīts vai nedarbojās pareizi vai kaut kas cits. Es mīlu Tevi! XXXXX

  3. 4

    paldies dievam par cilvēkiem, kuri faktiski var pareizi uzrakstīt koda fragmentu.
    Viņam bija tāda pati pieredze kā Janim.

    Tas darbojas uzreiz no kastes, kas ir ideāli piemērots tādiem cilvēkiem kā es, kuri nevar kodu javascript!

  4. 5
  5. 6

    Sveiki, pirmkārt, daudz par jūsu centieniem, es centos to izmantot ar Asp.net, taču nedarbojos, es izmantoju

    tagu vietā, un tas nedarbojās, kādi ieteikumi ?!

  6. 7

    Nisreen: iezīmētajā lodziņā esošais kods nedarbojas ar izgrieztu pastas ielīmēšanu. Vienīgais citāts ir sajaukts. Demonstrācijas saites kods tomēr ir kārtībā.

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

    “P @ s $ w0rD” ir spēcīgs, lai gan ar vārdnīcas uzbrukumu tas tiktu uzlauzts diezgan ātri ...
    Lai šādu funkciju izmantotu profesionālā risinājumā, es uzskatu, ka ir svarīgi apvienot šo algoritmu ar vārdnīcas pārbaudi.

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

    vai kāds var pateikt, kāpēc tas man nedarbojās ..

    es nokopēju visu kodu un ielīmēju to notepad ++, bet tas vispār nedarbojas?
    Lūdzu palīdzi man..

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

    Šāda veida “spēka pārbaudītājs” ved cilvēkus pa ļoti bīstamu ceļu. Tas vērtē rakstzīmju daudzveidību paroles frāzes garumā, liekot īsākas, daudzveidīgākas paroles vērtēt kā spēcīgākas nekā garākas, mazāk dažādas. Tā ir maldība, kas radīs jūsu lietotājiem nepatikšanas, ja viņi kādreiz saskarsies ar nopietniem uzlaušanas draudiem.

    • 25

      Es nepiekrītu, Džordan! Piemērs tika vienkārši izlikts kā skripta piemērs. Mans ieteikums cilvēkiem ir izmantot paroļu pārvaldības rīku, lai izveidotu neatkarīgas paroles jebkurai vietnei, kas ir unikāla tikai tai. Paldies!

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

Ko jūs domājat?

Šī vietne izmanto Akismet, lai samazinātu surogātpastu. Uzziniet, kā tiek apstrādāts jūsu komentārs.