Новые технологииЭлектронный маркетинг и автоматизация электронного маркетинга

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

Я проводил небольшое исследование, чтобы найти хороший пример средства проверки надежности пароля, которое использует JavaScript и Обычные выражения (Регулярное выражение). В приложении, в котором я работаю, мы делаем пост назад, чтобы проверить надежность пароля, и это довольно неудобно для наших пользователей.

Что такое регулярное выражение?

Регулярное выражение - это последовательность символов, определяющая шаблон поиска. Обычно такие шаблоны используются алгоритмами поиска строк для найдите or найти и заменить операции со строками или для проверки ввода. 

Эта статья определенно не для того, чтобы научить вас регулярным выражениям. Просто знайте, что возможность использовать регулярные выражения абсолютно упростит вашу разработку при поиске шаблонов в тексте. Также важно отметить, что большинство языков разработки оптимизировали использование регулярных выражений ... поэтому вместо пошагового синтаксического анализа и поиска строк Regex обычно намного быстрее как на стороне сервера, так и на стороне клиента.

Я немного искал в Интернете, прежде чем нашел пример некоторых отличных регулярных выражений, которые ищут комбинацию длины, символов и символов. Однако, на мой вкус, код был немного избыточным и адаптирован для .NET. Поэтому я упростил код и поместил его в JavaScript. Это заставляет его проверять надежность пароля в реальном времени в браузере клиента, прежде чем отправлять его обратно ... и предоставляет пользователю некоторую обратную связь о надежности пароля.

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

При каждом нажатии клавиатуры пароль проверяется на соответствие регулярному выражению, а затем пользователю предоставляется обратная связь в промежутке под ним.




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

Вот код

Игровой автомат Обычные выражения сделать фантастическую работу по минимизации длины кода:

  • Больше персонажей - Если длина меньше 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. Это позволит любому, у кого есть инструменты разработки браузера, обойти скрипт и использовать любой пароль, который ему нужен. Вы должны ВСЕГДА использовать проверку на стороне сервера, чтобы проверить надежность пароля, прежде чем сохранять его на своей платформе.

Douglas Karr

Douglas Karr является основателем Martech Zone и признанный эксперт по цифровой трансформации. Дуг - это Основной докладчик и публичный спикер по маркетингу. Он вице-президент и соучредитель Highbridge, фирма, специализирующаяся на оказании помощи корпоративным компаниям в цифровой трансформации и максимальном увеличении их инвестиций в технологии с использованием технологий Salesforce. Он разработал стратегии цифрового маркетинга и продуктов для Dell Technologies, GoDaddy, Salesforce, Веб-трендыи СмартФОКУС. Дуглас также является автором Корпоративный блог для чайников и соавтор Лучшая бизнес-книга.

33 комментариев

  1. СПАСИБО! СПАСИБО! СПАСИБО! Я дурачился в течение 2 недель с чертовым кодом надежности пароля с других веб-сайтов и рвал на себе волосы. Ваш короткий, работает так, как я хочу, и, что самое приятное, его легко изменить новичку в javascript! Я хотел зафиксировать вердикт надежности и не позволять сообщению формы фактически обновлять пароль пользователя, если он не прошел тест на надежность. Чужой код был слишком сложен, или работал неправильно, или еще что-то. Я тебя люблю! ХХХХХ

  2. Привет, прежде всего большое спасибо за ваши усилия, я пытался использовать это с Asp.net, но не сработало, я использую

    вместо тега, и это не сработало, есть предложения?!

  3. Для Нисрин: код в выделенном поле не работает с вырезанием и вставкой. Одинарная кавычка перепутана. Однако код демонстрационной ссылки в порядке.

  4. «P@s$w0rD» показывает сильный результат, хотя атаку по словарю можно довольно быстро взломать…
    Чтобы развернуть такую ​​функцию в профессиональном решении, я считаю важным совместить этот алгоритм с проверкой по словарю.

  5. Спасибо за этот небольшой код, теперь я могу использовать его для проверки надежности пароля, когда мои посетители вводят свои пароли,

  6. Спасибо, что поделились. У вас есть несколько неработающих ссылок на этой странице. к вашему сведению.

  7. может кто-нибудь сказать, почему это не сработало у меня..

    Я скопировал весь код и вставил его в блокнот++, но он вообще не работает?
    Пожалуйста, помогите мне ..

  8. Этот тип «проверки силы» ведет людей по очень опасному пути. Он ценит разнообразие символов, а не длину парольной фразы, что приводит к тому, что более короткие и разнообразные пароли оцениваются как более надежные, чем более длинные и менее разнообразные пароли. Это заблуждение, из-за которого у ваших пользователей возникнут проблемы, если они когда-нибудь столкнутся с серьезной угрозой взлома.

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

  9. Я действительно ценю, что вы искали это много раз, но, наконец, я получил ваш пост и действительно поражен. БЛАГОДАРЮ ВАС

  10. Вы живая заставка! Я разбирал строки слева направо и по центру и подумал, что есть лучший способ, и нашел ваш фрагмент кода с помощью Regex. Удалось повозиться с ним для моего сайта… Вы не представляете, насколько это помогло. Большое спасибо Дуглас!!

Как вы думаете?

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.

Статьи по теме