Ստուգեք գաղտնաբառի ուժը JavaScript- ի և կանոնավոր արտահայտությունների միջոցով

Ստուգեք գաղտնաբառի ուժը JavaScript- ի և կանոնավոր արտահայտությունների միջոցով

Ես որոշ ուսումնասիրություններ էի կատարում `օգտագործելու համար Գաղտնաբառ ուժի ստուգիչի լավ օրինակ գտնելու վերաբերյալ JavaScript և Կանոնավոր արտահայտություններ (Regex): Իմ աշխատանքի դիմումում մենք հետ ենք ուղարկել գրություն ՝ գաղտնաբառի ուժը ստուգելու համար, և դա բավականին անհարմար է մեր օգտվողների համար:

Ի՞նչ է Regex- ը:

Սովորական արտահայտությունը նիշերի հաջորդականությունն է, որոնք սահմանում են որոնման օրինակը: Սովորաբար, նման օրինաչափություններն օգտագործվում են լարերի որոնման ալգորիթմների միջոցով գտնել or գտնել և փոխարինել տողերի վրա գործողություններ կամ մուտքի վավերացման համար: 

Այս հոդվածը հաստատ ձեզ սովորական արտահայտություններ սովորեցնելու համար չէ: Պարզապես իմացեք, որ Կանոնավոր արտահայտություններ օգտագործելու հնարավորությունը բացարձակապես կպարզեցնի ձեր զարգացումը, երբ տեքստի նմուշներ եք որոնում: Կարևոր է նաև նշել, որ զարգացման լեզուների մեծ մասը օպտիմիզացրել են արտահայտության կանոնավոր օգտագործումը… այնպես որ, քան թե վերլուծեն և որոնեն տողերը փուլ առ փուլ, Regex- ը սովորաբար շատ ավելի արագ է և՛ սերվերի, և՛ հաճախորդի կողմից:

Ես գտա մինչև բավականին համացանց օրինակ մի քանի հոյակապ կանոնավոր արտահայտությունների, որոնք փնտրում են երկարության, նիշերի և խորհրդանիշների համադրություն: Այնուամենայնիվ, ծածկագիրը մի փոքր ավելորդ էր իմ ճաշակի համար և հարմարեցված էր .NET- ի համար: Այսպիսով, ես պարզեցրի կոդը և դրեցի այն JavaScript- ում: Սա ստիպում է այն իրական ժամանակում հաստատել հաճախորդի զննարկչի վրա գաղտնաբառի ուժը նախքան այն նորից փակցնելը some և որոշակի արձագանքներ է տալիս օգտվողին գաղտնաբառի ուժի վերաբերյալ:

Մուտքագրեք գաղտնաբառ

Ստեղնաշարի յուրաքանչյուր հարվածի դեպքում գաղտնաբառը ստուգվում է սովորական արտահայտության դեմ, այնուհետև օգտվողին հետադարձ կապ է տրամադրվում դրա տակ գտնվող տարածության տակ:




Մուտքագրեք գաղտնաբառը

Ահա օրենսգիրքը

The Կանոնավոր արտահայտություններ կատարեք ֆանտաստիկ աշխատանք `ծածկագրի երկարությունը նվազագույնի հասցնելու համար.

  • Ավելի շատ հերոսներ - Եթե երկարությունը 8 նիշից ցածր է:
  • Թույլ - Եթե երկարությունը 10 նիշից պակաս է և չի պարունակում խորհրդանիշների, գլխարկների, տեքստի համադրություն:
  • Միջին - Եթե երկարությունը 10 նիշ կամ ավելի է, ունի խորհրդանիշների, գլխարկների, տեքստի համադրություն:
  • Ուժեղ - Եթե ​​երկարությունը 14 նիշ կամ ավելի է, ունի խորհրդանիշների, գլխարկների, տեքստի համադրություն:

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

Կոշտացնել ձեր գաղտնաբառի հայցը

Կարևոր է, որ դուք պարզապես չվավերացնեք գաղտնաբառի կառուցումը ձեր Javascript- ում: Սա հնարավորություն կտա զննարկչի զարգացման գործիքներ ունեցող յուրաքանչյուր անձ շրջանցել սցենարը և օգտագործել ցանկացած գաղտնաբառ, որը կցանկանա: Դուք պետք է ՄԻՇՏ օգտագործեք սերվերի կողմից արված ստուգումը ՝ գաղտնաբառի ուժը հաստատելու համար նախքան այն ձեր համակարգչում պահելը:

34 Comments

  1. 1
  2. 2

    ՇՆՈՐՀԱԿԱԼՈՒԹՅՈՒՆ! ՇՆՈՐՀԱԿԱԼՈՒԹՅՈՒՆ! ՇՆՈՐՀԱԿԱԼՈՒԹՅՈՒՆ! Ես արդեն 2 շաբաթ հիմարություն եմ անում այլ կայքերից ստացված անիծյալ գաղտնաբառի ուժի ծածկագրով և մազերս հանում: Քոնը կարճ է, աշխատում է այնպես, ինչպես ես եմ ուզում և ամենակարևորը, javascript սկսնակի համար հեշտ է փոփոխել: Ես ուզում էի ֆիքսել ուժի վերաբերյալ դատավճիռը և թույլ չտալ, որ ձևաթուղթը տեղադրի օգտագործողի գաղտնաբառն իրականում թարմացնի, եթե այն չհամապատասխանի ուժի ստուգմանը: Այլ մարդկանց ծածկագիրը չափազանց բարդ էր կամ ճիշտ չէր գործում կամ այլ բան: Ես քեզ սիրում եմ! XXXXX

  3. 4

    փառք Աստծո այն մարդկանց համար, ովքեր իրականում կարող են պատշաճ կերպով գրել մի կտոր կոդ:
    Նույն փորձը ունեցել է, ինչ Janանիսը:

    Սա գործում է տուփից դուրս, որը կատարյալ է ինձ նման մարդկանց համար, ովքեր չեն կարող javascript ծածկագրել:

  4. 5
  5. 6

    Ողջույն, նախ շնորհակալություն շատ ջանքերի համար, ես փորձեցի դա օգտագործել Asp.net- ի հետ, բայց չաշխատեց, ես օգտագործում եմ

    պիտակի փոխարեն, և այն չաշխատեց, որևէ առաջարկ ?!

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

    «P @ s $ w0rD» ցուցադրելն ուժեղ է, չնայած այն բավականին արագ կջարդվեր դիկտոնական հարձակման դեպքում
    Մասնագիտական ​​լուծման վրա նման հատկություն տեղակայելու համար, կարծում եմ, որ կարևոր է այս ալգորիթմը համատեղել գեղարվեստական ​​ստուգման հետ:

  11. 12
  12. 13

    Շնորհակալություն այս փոքրիկ կոդի համար, ես այժմ կարող եմ այն ​​օգտագործել ՝ ստուգելու համար իմ գաղտնաբառի ուժը, երբ իմ այցելուները. Մուտքագրում են իրենց գաղտնաբառերը,

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

    ինչ-որ մեկը կարո՞ղ է ասել, թե ինչու դա իմը չի աշխատել:

    ես պատճենել եմ բոլոր ծածկագրերը և տեղադրել դրանք գրառման գրքույկում ++, բայց դա ընդհանրապես չի աշխատում:
    խնդրում եմ օգնիր ինձ..

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

    Այս «ուժի ստուգիչը» մարդկանց տանում է դեպի շատ վտանգավոր ուղի: Այն գնահատում է բնույթի բազմազանությունը գաղտնաբառի արտահայտության երկարության վրա, ինչը թույլ է տալիս նրան գնահատել ավելի կարճ, ավելի բազմազան գաղտնաբառերը ՝ ավելի ուժեղ, քան ավելի երկար, ավելի քիչ բազմազան գաղտնաբառերը: Դա կեղծիք է, որը ձեր օգտվողներին դժվարությունների կհանգեցնի, եթե նրանք երբևէ բախվեն հակերության լուրջ սպառնալիքի հետ:

    • 25

      Ես համաձայն չեմ, Jordanորդան: Օրինակն ուղղակի ներկայացվեց որպես սցենարի օրինակ: Մարդկանց համար իմ առաջարկությունն է օգտագործել գաղտնաբառի կառավարման գործիք `ստեղծելու անկախ գաղտնաբառեր ցանկացած կայքի համար, որը հատուկ է դրան: Շնորհակալություն

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

    Դուք կենդանի խնայարար եք: Ես վերլուծում էի ձախ և աջ տողերը և մտածում էի, որ ավելի լավ միջոց կա և գտա ձեր կոդի կտորը Regex- ի միջոցով: Կարողացա դրանով զբաղվել իմ կայքի համար ... Դուք գաղափար չունեք, թե որքանով դա օգնեց: Շատ շնորհակալ եմ Դուգլասից !!

Ինչ եք կարծում?

Այս կայքը օգտագործում է Akismet- ը սպամի նվազեցման համար: Իմացեք, թե ինչպես է ձեր տվյալները մշակվում.