Проверете силата на паролата с JavaScript и регулярни изрази

Проверете силата на паролата с JavaScript и регулярни изрази

Правих някои изследвания за намиране на добър пример за проверка на паролата за сила, която използва JavaScript и Редовни изрази (Regex). В приложението в моята работа правим обратно съобщение, за да проверим силата на паролата и е доста неудобно за нашите потребители.

Какво е Regex?

Регулярният израз е последователност от символи, които определят модела на търсене. Обикновено такива модели се използват от алгоритми за търсене на низове за намерите or намерете и заменете операции върху низове или за проверка на входа. 

Тази статия определено не е за да ви научи на регулярни изрази. Просто знайте, че възможността за използване на регулярни изрази ще опрости абсолютно вашето развитие, докато търсите шаблони в текста. Също така е важно да се отбележи, че повечето езици за разработка са оптимизирали използването на регулярни изрази ... така че вместо да анализира и търси низове стъпка по стъпка, Regex обикновено е много по-бърз както от страна на сървъра, така и от страна на клиента.

Потърсих в мрежата доста преди да открия пример на някои страхотни регулярни изрази, които търсят комбинация от дължина, символи и символи. Колкото и да е, кодът беше малко прекален за моя вкус и пригоден за .NET. Затова опростих кода и го сложих в JavaScript. Това го прави да проверява силата на паролата в реално време в браузъра на клиента, преди да я публикува обратно ... и предоставя известна обратна връзка на потребителя за силата на паролата.

Напишете парола

С всеки ход на клавиатурата паролата се тества спрямо регулярния израз и след това се предоставя обратна връзка на потребителя в интервал под него.




Въведете парола

Ето кода

Най- Редовни изрази направете фантастична работа за минимизиране на дължината на кода:

  • Още герои - Ако дължината е под 8 знака.
  • Слаб - Ако дължината е по-малка от 10 знака и не съдържа комбинация от символи, главни букви, текст.
  • M - Ако дължината е 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

    БЛАГОДАРЯ ТИ! БЛАГОДАРЯ ТИ! БЛАГОДАРЯ ТИ! Заблуждавам се от 2 седмици с проклет код за сила на паролата от други уебсайтове и си скубя косата. Вашият е кратък, работи точно както аз искам и най-доброто, лесно за начинаещи в javascript за промяна! Исках да уловя присъдата за сила и да не позволя на формуляра да актуализира действително паролата на потребителя, освен ако не отговаря на теста за сила. Кодът на други хора беше твърде сложен или не работеше както трябва или нещо друго. Обичам те! XXXXX

  3. 4

    слава богу за хора, които всъщност могат да напишат парче код правилно.
    Имах същия опит като Янис.

    Това работи веднага, което е идеално за хора като мен, които не могат да кодират JavaScript!

  4. 5
  5. 6

    Здравейте, първо благодаря много за вашите усилия, опитах се да използвам това с Asp.net, но не работи, използвам

    вместо таг и не се получи, някакви предложения ?!

  6. 7

    До Nisreen: кодът в маркираното поле не работи с cut'n'paste. Единичната оферта е объркана. Кодът на демонстрационната връзка е добре.

  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

    може ли някой да каже, защо не работи моето ..

    копирах целия код и го поставих в notepad ++, но изобщо не работи?
    Моля, помогни ми..

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

    Този тип „проверка на силата“ води хората по много опасен път. Той оценява разнообразието от знаци по дължината на паролата, което го кара да оценява по-кратките и по-разнообразни пароли като по-силни от по-дългите и по-малко разнообразни пароли. Това е заблуда, която ще затрудни потребителите ви, ако някога се изправят пред сериозна заплаха от хакерство.

    • 25

      Не съм несъгласен, Йордания! Примерът просто беше представен като пример за сценария. Моята препоръка за хората е да използват инструмент за управление на пароли, за да създават независими пароли за всеки сайт, който е уникален за него. Благодаря!

  24. 26
  25. 27
  26. 28

    Наистина оценявам, че сте претърсван много пъти, но накрая получих вашия пост и наистина съм изумен. БЛАГОДАРЯ ТИ

  27. 29
  28. 31

    Оценявам, че споделяте! Търсех да подобря силата на паролата на нашия уебсайт и този работи така, както исках. Много благодаря!

Какво мислите?

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните за коментарите ви.