Құпия сөздің беріктігін 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";
}
}
Ал егер сіз жай ғана тамаша құпия сөз генераторын іздеп жатсаңыз, мен ол үшін тамаша кішкентай онлайн құрал жасадым.