Перевірте надійність пароля за допомогою JavaScript та регулярних виразів

Перевірте надійність пароля за допомогою JavaScript та регулярних виразів

Я проводив деякі дослідження, щоб знайти хороший приклад перевірки надійності пароля, який використовує JavaScript і Регулярні вирази (Regex). У моїй програмі ми робимо повідомлення назад, щоб перевірити надійність пароля, і це досить незручно для наших користувачів.

Що таке Regex?

Регулярний вираз - це послідовність символів, що визначають шаблон пошуку. Зазвичай такі шаблони використовуються алгоритмами пошуку рядків для знаходити or знайти і замінити операції над рядками або для перевірки вводу. 

Ця стаття точно не навчить вас регулярних висловів. Просто знайте, що можливість використання регулярних виразів абсолютно спростить вашу розробку під час пошуку шаблонів у тексті. Важливо також зазначити, що більшість мов розробки оптимізували використання регулярних виразів ... тому замість парсингу та пошуку рядків, регулярний вираз зазвичай набагато швидший як на сервері, так і на стороні клієнта.

Я досить довго шукав в Інтернеті, перш ніж знайшов приклад деяких чудових регулярних виразів, які шукають поєднання довжини, символів та символів. Як би там не було, код був трохи надмірним на мій смак і пристосований для .NET. Тому я спростив код і помістив його в JavaScript. Це дозволяє перевіряти надійність пароля в режимі реального часу в браузері клієнта перед тим, як опублікувати його назад ... і надає користувачеві певний відгук про надійність пароля.

Введіть пароль

З кожним обведенням клавіатури пароль перевіряється на регулярний вираз, а потім користувачеві надається зворотний зв'язок у певному інтервалі під ним.




Введіть Пароль

Ось Кодекс

повне г, повне г,, показали, від, номер, XNUMX Регулярні вирази виконайте фантастичну роботу, мінімізуючи довжину коду:

  • Більше символів - Якщо довжина менше 8 символів.
  • Слабкий - Якщо довжина менше 10 символів і не містить комбінації символів, великих літер та тексту.
  • Medium - Якщо довжина складає 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. Це дозволило б кожному, хто має засоби розробки браузера, обходити сценарій та використовувати будь-який бажаний пароль. Ви повинні ЗАВЖДИ використовувати перевірку на стороні сервера, щоб перевірити надійність пароля, перш ніж зберігати його на своїй платформі.

32 Коментарі

  1. 1
  2. 2

    ДЯКУЮ! ДЯКУЮ! ДЯКУЮ! Я вже два тижні баламучу з проклятим кодом міцності пароля з інших веб-сайтів і вириваю волосся. Ваш короткий, працює так само, як я хочу, і найкраще, новачкові-javascript легко змінити! Я хотів зафіксувати вирок щодо міцності та не дозволити публікації форми фактично оновлювати пароль користувача, якщо він не відповідає випробуванню на міцність. Код інших людей був занадто складним або не працював правильно, або щось інше. Я тебе люблю! XXXXX

  3. 4

    слава богу за людей, які насправді вміють правильно писати шматок коду.
    Мав такий самий досвід, як Яніс.

    Це працює прямо з коробки, що ідеально підходить для таких людей, як я, які не можуть кодувати JavaScript!

  4. 5
  5. 6

    Привіт, перш за все велике спасибі за ваші зусилля, я намагався використати це з Asp.net, але не спрацював, я використовую

    замість тегу, і це не спрацювало, будь-які пропозиції ?!

  6. 7

    Для Nisreen: код у виділеному полі не працює з вирізаною пастою. Єдина цитата зіпсована. Хоча код демонстраційного посилання чудовий.

  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

      Я не погоджуюсь, Джордане! Приклад був просто викладений як приклад сценарію. Я рекомендую людям використовувати інструмент управління паролями для створення незалежних парольних фраз для будь-якого унікального для нього веб-сайту. Дякую!

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

    Я вдячний Вам за поділ! Я прагнув покращити надійність пароля на нашому веб-сайті, і цей працював так, як я хотів. Дуже дякую!

Що ви думаєте?

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.