JavaScript va oddiy iboralar yordamida parol kuchini tekshiring

JavaScript va oddiy iboralar yordamida parol kuchini tekshiring

Men foydalanadigan Parolni kuchaytirish tekshirgichining yaxshi namunasini topish bo'yicha tadqiqotlar olib bordim JavaScript va Muntazam iboralar (Regex). Mening ishimdagi dasturda biz parolni kuchliligini tekshirish uchun post yuboramiz va bu foydalanuvchilarimiz uchun juda noqulay.

Regex nima?

Doimiy ifoda - bu izlash uslubini belgilaydigan belgilar ketma-ketligi. Odatda, bunday naqshlar uchun qatorlarni qidirish algoritmlari ishlatiladi topish or toping va almashtiring satrlarda yoki kiritishni tekshirish uchun operatsiyalar. 

Ushbu maqola, albatta, sizga doimiy so'z birikmalarini o'rgatmaydi. Shuni bilingki, odatiy iboralardan foydalanish qobiliyati sizning matndagi naqshlarni izlashda sizning rivojlanishingizni mutlaqo soddalashtiradi. Shuni ham ta'kidlash kerakki, ko'pgina ishlab chiqish tillari muntazam ekspression foydalanishni optimallashtirdi ... shuning uchun satrlarni bosqichma-bosqich tahlil qilish va qidirishdan ko'ra, Regex odatda serverda ham, mijoz tomonidan ham tezroq ishlaydi.

Topishdan oldin veb-saytni biroz qidirdim bir misol uzunlik, belgilar va belgilarning kombinatsiyasini qidiradigan ba'zi bir ajoyib muntazam iboralardan. Qanday bo'lmasin, kod mening ta'mim uchun biroz ortiqcha edi va .NET uchun moslashtirilgan edi. Shuning uchun men kodni soddalashtirdim va JavaScript-ga joylashtirdim. Bu uni qayta joylashtirmasdan oldin mijozning brauzerida parolning kuchini real vaqtda tasdiqlaydi ... va foydalanuvchiga parolning kuchi to'g'risida ba'zi fikrlarni bildiradi.

Parolni kiriting

Klaviaturaning har bir zarbasi bilan parol odatdagi ifodaga nisbatan sinovdan o'tkaziladi va keyin uning ostidagi foydalanuvchiga fikr bildiriladi.




Parolni kiriting

Mana Kod

The Muntazam iboralar kodning uzunligini minimallashtirish bo'yicha ajoyib ishni bajaring:

  • Boshqa belgilar - Agar uzunligi 8 belgidan kam bo'lsa.
  • Zaif - Agar uzunligi 10 ta belgidan kam bo'lsa va unda ramzlar, bosh harflar, matn birikmasi bo'lmasa.
  • o'rta - Agar uzunlik 10 ta yoki undan ortiq belgidan iborat bo'lsa va unda belgilar, bosh harflar, matnlar birikmasi bo'lsa.
  • kuchli - Agar uzunlik 14 ta va undan ortiq belgidan iborat bo'lsa va unda belgilar, bosh harflar, matnlar birikmasi bo'lsa.

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

Parol so'rovini qattiqlashtirish

Javascriptingizda parolni yaratishni tasdiqlashingiz shart emas. Bu brauzerni ishlab chiqish vositalariga ega bo'lgan har bir kishiga skriptni chetlab o'tishi va xohlagan paroldan foydalanishi mumkin. O'zingizning platformangizda saqlashdan oldin har doim parol kuchini tekshirish uchun server tomonidan tekshiruvdan foydalanishingiz kerak.

34 Comments

  1. 1
  2. 2

    RAHMAT! RAHMAT! RAHMAT! Men boshqa veb-saytlardan parolni kuchaytirish kodi bilan ikki hafta davomida aldanib, sochimni tortib oldim. Qisqasi qisqa, men xohlaganimdek ishlaydi va eng muhimi, javascript yangi boshlovchisi o'zgartirishi oson! Men kuchga oid qarorni qabul qilmoqchi edim va agar forma posti foydalanuvchi parolini kuchliligi testiga to'g'ri kelmasa, uni haqiqatan ham yangilashiga yo'l qo'ymasligim kerak edi. Boshqalarning kodi juda murakkab edi yoki to'g'ri ishlamadi yoki boshqa biron bir narsa. Men seni Sevaman! XXXXX

  3. 4

    aslida bir parcha kodni to'g'ri yoza oladigan odamlar uchun xudoga shukur.
    Janis singari tajribaga ega edi.

    Bu javascript kodini ololmaydigan men kabi odamlar uchun juda mos bo'lgan qutidan tashqarida ishlaydi!

  4. 5
  5. 6

    Assalomu alaykum, birinchi navbatda ur harakatlari uchun katta rahmat, men buni Asp.net bilan ishlatishga harakat qildim, lekin ishlamadi, foydalanayapman

    tag o'rniga, va u ishlamadi, biron bir taklif ?!

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

    "P @ s $ w0rD" kuchli ko'rinishga ega, garchi u lug'at hujumi bilan juda tez yorilib ketsa ham ...
    Bunday xususiyatni professional echimga joylashtirish uchun ushbu algoritmni lug'at tekshiruvi bilan birlashtirish muhim deb o'ylayman.

  11. 12
  12. 13

    Ushbu kichik kod uchun rahmat, endi tashrif buyuruvchilar o'zlarining parollarini kiritganda parol kuchini sinab ko'rish uchun uni ishlata olaman,

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

    kimdir aytishi mumkin, nima uchun bu meniki ishlamadi ..

    men barcha kodlarni nusxa ko'chirdim va uni bloknot ++ ga joylashtirdim, lekin u umuman ishlamayaptimi?
    Iltimos, menga yordam bering..

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

    Ushbu turdagi "kuch tekshiruvchisi" odamlarni juda xavfli yo'lga olib boradi. Bu parol uzunligiga nisbatan belgi xilma-xilligini qadrlaydi, shuning uchun u qisqa va xilma-xil parollarni uzunroq va kamroq parollarga qaraganda kuchliroq qilib baholaydi. Bu sizning foydalanuvchilaringizni jiddiy xakerlik tahdidiga duch kelganda muammoga olib keladigan xato.

    • 25

      Men rozi emasman, Iordaniya! Ushbu misol oddiygina ssenariyga misol sifatida keltirildi. Odamlar uchun mening tavsiyam shuki, o'ziga xos bo'lgan har qanday sayt uchun mustaqil parollarni yaratish uchun parolni boshqarish vositasidan foydalanish. Rahmat!

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

    Siz jonli tejamkorsiz! Men chapdan o'ngga va o'rtadagi satrlarni tahlil qilar edim va Regex yordamida kodning parchasini topdim deb o'ylardim. Mening saytim uchun u bilan gaplasha oldimmi ... Buning qanchalik yordam bergani haqida tasavvurga ega emassiz. Duglasga katta rahmat !!

Siz nima deb o'ylaysiz?

Ushbu sayt spamni kamaytirish uchun Akismet-dan foydalanadi. Fikringiz ma'lumotlarining qanday ishlashini bilib oling.