Сырсөздүн күчүн JavaScript же jQuery жана кадимки туюнтмалар менен текшериңиз (Сервер тараптагы мисалдар менен да!)
Мен колдонгон Сырсөздүн күчүн текшергичтин жакшы мисалын табуу боюнча бир нече изилдөө жүргүзүп жаткам JavaScript жана Туруктуу сөздөр (regex). Менин жумушумдагы тиркемеде биз сырсөздүн күчүн текшерүү үчүн пост жазабыз жана бул биздин колдонуучулар үчүн ыңгайсыз.
Регекс деген эмне?
Туруктуу сөз айкашы - издөө моделин аныктаган белгилердин ырааттуулугу. Адатта, мындай схемалар үчүн издөө алгоритмдери колдонулат табуу or табуу жана алмаштыруу саптардагы операциялар, же киргизүүнү текшерүү үчүн.
Бул макала сизге туруктуу сөз айкаштарын үйрөтпөйт. Тексттен туруктуу үлгүлөрдү колдонуу мүмкүнчүлүгү сиздин өнүгүшүңүздү таптакыр жөнөкөйлөтөт деп билиңиз. Көпчүлүк өнүгүү тилдеринде сөз айкаштарын үзгүлтүксүз колдонууну оптималдаштыргандыгын белгилей кетүү маанилүү ... андыктан, саптарды этап-этабы менен талдоонун ордуна, Regex адатта серверде дагы, кардар тарапта дагы тезирээк иштейт.
Мен таба электе эле Интернеттен бир аз издедим мисал узундуктун, символдордун жана символдордун айкалышын издеген кээ бир улуу Регулярдуу туюнтмалардын. Бирок, код менин табитиме бир аз ашыкча болуп, .NET үчүн ылайыкташтырылган. Ошентип, мен кодду жөнөкөйлөтүп, аны JavaScriptке койдум. Бул аны кайра жайгаштыруудан мурун кардардын браузеринде сырсөздүн күчүн реалдуу убакытта текшерет... жана колдонуучуга сырсөздүн күчү жөнүндө бир аз пикир берет.
Сыр сөздү териңиз
Ар бир баскычтоп басылган сайын, сыр сөз кадимки сөз айкашына каршы текшерилет, андан кийин колдонуучуга анын аралыгында кайтарым байланыш берилет.
JavaScript сырсөз күчү функциясы
The Туруктуу сөздөр коддун узундугун азайтуу боюнча фантастикалык ишти аткарыңыз. Бул JavaScript функциясы сырсөздүн күчүн жана аны жок кылуу оңойбу, ортобу, кыйынбы же өтө кыйын экенин текшерет. Адам түрүн жазганда, ал күчтүүрөөк болууга үндөгөн кеңештерди көрсөтөт. Ал сырсөздү төмөнкүлөрдүн негизинде тастыктайт:
- узундук – Узундугу 8 белгиден аз же андан көп болсо.
- Mixed Case – Сырсөздө чоң жана кичине тамгалар болсо.
- номерлер – Эгер сырсөз сандарды камтыса.
- Атайын Characters – Эгер сырсөздө атайын символдор камтылса.
Функция кыйынчылыкты, ошондой эле сырсөздү андан ары катаалдаштыруу боюнча кээ бир кеңештерди көрсөтөт.
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 сырсөзүнүн күчү функциясы
jQuery менен биз форманы oninput жаңыртуусу менен жазуубуз керек эмес:
<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";
}
}
Эгер сиз жөн гана мыкты сырсөз генераторун издеп жатсаңыз, мен ал үчүн сонун кичинекей онлайн куралды курдум.