CRM және деректер платформаларыЭлектрондық пошта маркетингі және электрондық пошта маркетингін автоматтандыру

Құпия сөздің беріктігін JavaScript немесе jQuery және тұрақты өрнектермен тексеріңіз (сервер жағындағы мысалдармен де!)

Мен қолданатын құпия сөздің беріктігін тексерушінің жақсы үлгісін іздестіру бойынша біраз зерттеулер жүргіздім JavaScript және Тұрақты өрнектер (Регекс). Менің жұмысымдағы қолданбада біз құпия сөздің күшін тексеру үшін пост жасаймыз және бұл біздің пайдаланушыларымыз үшін өте ыңғайсыз.

Regex дегеніміз не?

Тұрақты өрнек - бұл іздеу үлгісін анықтайтын таңбалар тізбегі. Әдетте мұндай заңдылықтар үшін іздеу алгоритмі қолданылады табу or табу және ауыстыру жолдардағы операциялар немесе кірісті тексеру үшін. 

Бұл мақала сізге тұрақты тіркестерді үйретпейтіні сөзсіз. Тек тұрақты өрнектерді қолдану мүмкіндігі мәтіннен үлгілерді іздеу кезінде сіздің дамуыңызды мүлдем жеңілдететінін біліңіз. Даму тілдерінің көпшілігі экспрессияның тұрақты қолданысын оңтайландырғанын ескеру қажет ... сондықтан жолдарды кезең-кезеңімен талдауға және іздеуге қарағанда, Regex әдетте серверде де, клиентте де жылдамырақ болады.

Мен интернетті таппас бұрын біраз іздедім мысалы ұзындықтың, таңбалардың және таңбалардың тіркесімін іздейтін кейбір тамаша Тұрақты өрнектер. Дегенмен, код менің талғамым үшін аздап шамадан тыс болды және .NET үшін бейімделді. Сондықтан мен кодты жеңілдетіп, оны JavaScript-ге қойдым. Бұл оны кері жарияламас бұрын клиент браузерінде нақты уақыт режимінде құпия сөз күшін тексеруге мүмкіндік береді... және пайдаланушыға құпия сөздің күші туралы кейбір кері байланыс береді.

Құпия сөзді теріңіз

Пернетақтаның әр соққысы кезінде пароль кәдімгі сөйлемге қарсы тексеріліп, содан кейін пайдаланушыға оның арасына кері байланыс беріледі.

JavaScript құпия сөзінің күші функциясы

The Тұрақты өрнектер кодтың ұзындығын азайту үшін керемет жұмыс жасаңыз. Бұл Javascript функциясы құпия сөздің күшін және оны табу оңай, орташа, қиын немесе өте қиын екенін тексереді. Адам теріп жатқанда, ол оны күштірек болуға шақыратын кеңестерді көрсетеді. Ол құпия сөзді келесіге негіздейді:

  • ұзындық – Ұзындығы 8 таңбадан аз немесе одан көп болса.
  • Аралас жағдай – Құпия сөзде бас және кіші әріптер болса.
  • Numbers – Құпия сөзде сандар болса.
  • Ерекше кейіпкерлер – Құпия сөзде арнайы таңбалар болса.

Функция қиындықты, сондай-ақ құпия сөзді одан әрі қатайту бойынша кейбір кеңестерді көрсетеді.

function checkPasswordStrength(password) {
  // Initialize variables
  var strength = 0;
  var tips = "";

  // Check password length
  if (password.length < 8) {
    tips += "Make the password longer. ";
  } else {
    strength += 1;
  }

  // Check for mixed case
  if (password.match(/[a-z]/) && password.match(/[A-Z]/)) {
    strength += 1;
  } else {
    tips += "Use both lowercase and uppercase letters. ";
  }

  // Check for numbers
  if (password.match(/\d/)) {
    strength += 1;
  } else {
    tips += "Include at least one number. ";
  }

  // Check for special characters
  if (password.match(/[^a-zA-Z\d]/)) {
    strength += 1;
  } else {
    tips += "Include at least one special character. ";
  }

  // Return results
  if (strength < 2) {
    return "Easy to guess. " + tips;
  } else if (strength === 2) {
    return "Medium difficulty. " + tips;
  } else if (strength === 3) {
    return "Difficult. " + tips;
  } else {
    return "Extremely difficult. " + tips;
  }
}

Егер сіз ұштың түсін жаңартқыңыз келсе, оны кейін кодты жаңарту арқылы да жасауға болады // Return results түзу.

// Get the paragraph element
  var strengthElement = document.getElementById("passwordStrength");

  // Return results
  if (strength < 2) {
    strengthElement.textContent = "Easy to guess. " + tips;
    strengthElement.style.color = "red";
  } else if (strength === 2) {
    strengthElement.textContent = "Medium difficulty. " + tips;
    strengthElement.style.color = "orange";
  } else if (strength === 3) {
    strengthElement.textContent = "Difficult. " + tips;
    strengthElement.style.color = "black";
  } else {
    strengthElement.textContent = "Extremely difficult. " + tips;
    strengthElement.style.color = "green";
  }

jQuery Password Strength функциясы

jQuery көмегімен пішінді енгізуді жаңартумен жазудың қажеті жоқ:

<form>
    <label for="password">Enter password:</label>
    <input type="password" id="password">
    <p id="password-strength"></p>
</form>

Қаласақ, хабарлардың түсін де өзгерте аламыз. 

$(document).ready(function() {
    $('#password').on('input', function() {
        var password = $(this).val();
        var strength = 0;
        var tips = "";
  
        // Check password length
        if (password.length < 8) {
            tips += "Make the password longer. ";
        } else {
            strength += 1;
        }
  
        // Check for mixed case
        if (password.match(/[a-z]/) && password.match(/[A-Z]/)) {
            strength += 1;
        } else {
            tips += "Use both lowercase and uppercase letters. ";
        }
  
        // Check for numbers
        if (password.match(/\d/)) {
            strength += 1;
        } else {
            tips += "Include at least one number. ";
        }
  
        // Check for special characters
        if (password.match(/[^a-zA-Z\d]/)) {
            strength += 1;
        } else {
            tips += "Include at least one special character. ";
        }
  
        // Update the text and color based on the password strength
        var passwordStrengthElement = $('#password-strength');
        if (strength < 2) {
            passwordStrengthElement.text("Easy to guess. " + tips);
            passwordStrengthElement.css('color', 'red');
        } else if (strength === 2) {
            passwordStrengthElement.text("Medium difficulty. " + tips);
            passwordStrengthElement.css('color', 'orange');
        } else if (strength === 3) {
            passwordStrengthElement.text("Difficult. " + tips);
            passwordStrengthElement.css('color', 'black');
        } else {
            passwordStrengthElement.text("Extremely difficult. " + tips);
            passwordStrengthElement.css('color', 'green');
        }
    });
});

Парольге деген сұранысты қатайту

Сіз өзіңіздің Javascript ішіндегі парольдің құрылысын тексеріп қана қоймаңыз. Бұл браузерді дамыту құралдары бар кез келген адамға сценарийді айналып өтіп, қалаған құпия сөзін қолдануға мүмкіндік береді. Сіз өзіңіздің платформаңызда сақтамас бұрын құпия сөздің сенімділігін тексеру үшін әрдайым серверлік тексеруді қолданғаныңыз жөн.

Құпия сөздің беріктігіне арналған PHP функциясы

function checkPasswordStrength($password) {
  // Initialize variables
  $strength = 0;

  // Check password length
  if (strlen($password) < 8) {
    return "Easy to guess";
  } else {
    $strength += 1;
  }

  // Check for mixed case
  if (preg_match("/[a-z]/", $password) && preg_match("/[A-Z]/", $password)) {
    $strength += 1;
  }

  // Check for numbers
  if (preg_match("/\d/", $password)) {
    $strength += 1;
  }

  // Check for special characters
  if (preg_match("/[^a-zA-Z\d]/", $password)) {
    $strength += 1;
  }

  // Return strength level
  if ($strength < 2) {
    return "Easy to guess";
  } else if ($strength === 2) {
    return "Medium difficulty";
  } else if ($strength === 3) {
    return "Difficult";
  } else {
    return "Extremely difficult";
  }
}

Құпия сөздің беріктігіне арналған Python функциясы

def check_password_strength(password):
  # Initialize variables
  strength = 0

  # Check password length
  if len(password) < 8:
    return "Easy to guess"
  else:
    strength += 1

  # Check for mixed case
  if any(char.islower() for char in password) and any(char.isupper() for char in password):
    strength += 1

  # Check for numbers
  if any(char.isdigit() for char in password):
    strength += 1

  # Check for special characters
  if any(not char.isalnum() for char in password):
    strength += 1

  # Return strength level
  if strength < 2:
    return "Easy to guess"
  elif strength == 2:
    return "Medium difficulty"
  elif strength == 3:
    return "Difficult"
  else:
    return "Extremely difficult"

Құпиясөз күші үшін C# функциясы

public string CheckPasswordStrength(string password) {
  // Initialize variables
  int strength = 0;

  // Check password length
  if (password.Length < 8) {
    return "Easy to guess";
  } else {
    strength += 1;
  }

  // Check for mixed case
  if (password.Any(char.IsLower) && password.Any(char.IsUpper)) {
    strength += 1;
  }

  // Check for numbers
  if (password.Any(char.IsDigit)) {
    strength += 1;
  }

  // Check for special characters
  if (password.Any(ch => !char.IsLetterOrDigit(ch))) {
    strength += 1;
  }

  // Return strength level
  if (strength < 2) {
    return "Easy to guess";
  } else if (strength == 2) {
    return "Medium difficulty";
  } else if (strength == 3) {
    return "Difficult";
  } else {
    return "Extremely difficult";
  }
}

Құпия сөздің беріктігіне арналған Java функциясы

public String checkPasswordStrength(String password) {
  // Initialize variables
  int strength = 0;

  // Check password length
  if (password.length() < 8) {
    return "Easy to guess";
  } else {
    strength += 1;
  }

  // Check for mixed case
  if (password.matches(".*[a-z].*") && password.matches(".*[A-Z].*")) {
    strength += 1;
  }

  // Check for numbers
  if (password.matches(".*\\d.*")) {
    strength += 1;
  }

  // Check for special characters
  if (password.matches(".*[^a-zA-Z\\d].*")) {
    strength += 1;
  }

  // Return strength level
  if (strength < 2) {
    return "Easy to guess";
  } else if (strength == 2) {
    return "Medium difficulty";
  } else if (strength == 3) {
    return "Difficult";
  } else {
    return "Extremely difficult";
  }
}

Ал егер сіз жай ғана тамаша құпия сөз генераторын іздеп жатсаңыз, мен ол үшін тамаша кішкентай онлайн құрал жасадым.

Құпия сөз генераторы

Douglas Karr

Douglas Karr негізін қалаушы болып табылады Martech Zone және цифрлық трансформация бойынша танымал сарапшы. Дуглас бірнеше сәтті MarTech стартаптарын бастауға көмектесті, Martech сатып алулары мен инвестицияларына 5 миллиард доллардан астам қаржыны мұқият тексеруге көмектесті және өзінің жеке платформалары мен қызметтерін іске қосуды жалғастыруда. Ол негізін қалаушы Highbridge, цифрлық трансформация бойынша консалтингтік фирма. Дуглас сонымен қатар Dummie's guide және бизнес көшбасшылығы кітабының жарияланған авторы.

Қатысты Мақалалар

33 Пікірлер

  1. РАҚМЕТ СІЗГЕ! РАҚМЕТ СІЗГЕ! РАҚМЕТ СІЗГЕ! Мен 2 апта бойы басқа сайттардың пароль күшінің кодын алдап, шашымды жұлып алдым. Сіздікі қысқа, мен қалағандай жұмыс істейді және ең жақсысы, javascript жаңадан бастаушыға оңай өзгертіледі! Мен күш туралы шешімді қабылдағым келді және форма жазбасында пайдаланушының паролін тексеруге сәйкес келмесе, оның паролін шынымен жаңартуына мүмкіндік бермегім келді. Басқа адамдардың коды тым күрделі болды немесе дұрыс жұмыс істемеді немесе басқасы. Мен сені жақсы көремін! ХХХХ

  2. Сәлеметсіз бе, бәрінен бұрын көп күш салғаныңыз үшін алғыс айтамын, мен оны Asp.net-пен қолдануға тырыстым, бірақ жұмыс істемеді

    орнына тег, ал ол жұмыс істемеді, қандай да бір ұсыныстар ?!

  3. Nisreen үшін: бөлектелген қораптағы код кесілген пастамен жұмыс істемейді. Жалғыз дәйексөз бұзылған. Демонстрациялық сілтеменің коды жақсы.

  4. «P @ s $ w0rD» қатты көрінеді, дегенмен ол сөздік шабуылмен тез арада бұзылады ...
    Мұндай мүмкіндікті кәсіптік шешімге орналастыру үшін мен бұл алгоритмді сөздік тексерумен үйлестіру маңызды деп санаймын.

  5. Осы кішкентай код үшін рахмет, мен оны келушілер құпия сөздерін берген кезде оны құпия сөзімнің күшін тексеру үшін қолдана аламын,

  6. біреу айта алады, неге бұл менің жұмысым болмады ..

    Мен барлық кодты көшірдім және оны блокнотқа ++ қойдым, бірақ ол мүлдем жұмыс істемейді?
    өтінемін маған көмектесіңіз..

  7. «Күшті тексергіштің» бұл түрі адамдарды өте қауіпті жолға түсіреді. Ол құпия фразаның ұзындығына қарағанда таңбалардың әртүрлілігін жоғары бағалайды, сондықтан қысқа, әр түрлі парольдерді ұзын, азырақ парольдерге қарағанда күшті етіп бағалауға мүмкіндік береді. Бұл сіздің қолданушыларыңызға күрделі хакерлік қауіп төніп тұрса, оларды қиындықтарға душар ететін жаңылыс.

    1. Мен келіспеймін, Джордан! Мысал тек сценарийдің мысалы ретінде келтірілді. Адамдарға ұсынысым - кез-келген сайтқа ғана тән парольдерді құру үшін парольдерді басқару құралын пайдалану. Рахмет!

  8. Сіз тірі үнемдеушісіз! Мен солдан және оң жақтан жолдарды талдап, одан да жақсы жол бар деп ойладым және сіздің код бөлігіңізді Regex көмегімен таптым. Менің сайтым үшін онымен ойнай алды ма ... Мұның қаншалықты көмектескенін білмейсіз. Дугласқа үлкен рахмет !!

Сен не ойлайсың?

Бұл сайт спамның төмендеуі үшін Akismet пайдаланады. Деректеріңіздің қалай өңделетінін біліңіз.