JavaScript किंवा jQuery आणि रेग्युलर एक्सप्रेशन्ससह पासवर्ड स्ट्रेंथ तपासा (सर्व्हर-साइड उदाहरणांसह, खूप!)
मी वापरत असलेल्या संकेतशब्द सामर्थ्य परीक्षकांचे चांगले उदाहरण शोधण्यासाठी मी काही संशोधन करत होतो जावास्क्रिप्ट आणि नियमित अभिव्यक्ती (रेजेक्स). माझ्या कामावरील अनुप्रयोगामध्ये, आम्ही पासवर्डची ताकद सत्यापित करण्यासाठी एक पोस्ट परत करतो आणि आमच्या वापरकर्त्यांसाठी ते खूप गैरसोयीचे आहे.
रेजेक्स म्हणजे काय?
नियमित अभिव्यक्ती म्हणजे वर्णांची अनुक्रम जो शोध नमुना परिभाषित करते. सहसा, अशा नमुन्यांचा वापर स्ट्रिंग शोध अल्गोरिदमसाठी केला जातो शोधणे or शोधा आणि पुनर्स्थित करा तारांवर ऑपरेशन किंवा इनपुट वैधतेसाठी.
हा लेख आपल्याला नियमित अभिव्यक्ती शिकवण्यासाठी नक्कीच नाही. फक्त हे जाणून घ्या की नियमित अभिव्यक्ती वापरण्याची क्षमता आपला मजकूरातील नमुन्यांचा शोध घेताना आपला विकास पूर्णपणे सुलभ करेल. हे लक्षात घेणे देखील महत्त्वाचे आहे की बर्याच विकास भाषांनी नियमित अभिव्यक्ती वापर अनुकूलित केले आहे… म्हणून चरण-दर-चरण तारांचे विश्लेषण आणि शोध घेण्याऐवजी, रेजेक्स सर्व्हर आणि क्लायंट-साइड दोन्हीपेक्षा वेगवान असतो.
मी सापडण्यापूर्वी मी वेबवर थोडा शोध घेतला एक उदाहरण काही उत्कृष्ट रेग्युलर एक्सप्रेशन्स जे लांबी, वर्ण आणि चिन्हे यांचे संयोजन शोधतात. तथापि, कोड माझ्या चवीनुसार थोडा जास्त होता आणि .NET साठी तयार केलेला होता. म्हणून मी कोड सरलीकृत केला आणि तो JavaScript मध्ये टाकला. हे ते परत पोस्ट करण्यापूर्वी क्लायंटच्या ब्राउझरवर रिअल-टाइममध्ये पासवर्डची ताकद सत्यापित करते… आणि वापरकर्त्याला पासवर्डच्या सामर्थ्याबद्दल काही अभिप्राय प्रदान करते.
पासवर्ड टाइप करा
कीबोर्डच्या प्रत्येक स्ट्रोकसह संकेतशब्दाची नियमित अभिव्यक्तीविरूद्ध चाचणी केली जाते आणि त्यानंतर त्यास खाली असलेल्या कालावधीत वापरकर्त्यास अभिप्राय प्रदान केला जातो.
JavaScript पासवर्ड स्ट्रेंथ फंक्शन
अगोदर निर्देश केलेल्या बाबीसंबंधी बोलताना नियमित अभिव्यक्ती कोडची लांबी कमी करण्यासाठी एक विलक्षण काम करा. हे JavaScript फंक्शन पासवर्डची ताकद तपासते आणि तो फॉइल करणे सोपे, मध्यम, कठीण किंवा अंदाज लावणे अत्यंत कठीण आहे की नाही हे तपासते. व्यक्ती टाईप करत असताना, ती अधिक मजबूत होण्यासाठी प्रोत्साहित करण्याच्या टिपा प्रदर्शित करते. हे यावर आधारित पासवर्ड प्रमाणित करते:
- लांबी - लांबी 8 वर्णांपेक्षा कमी किंवा जास्त असल्यास.
- मिश्र केस - पासवर्डमध्ये अप्पर आणि लोअरकेस असे दोन्ही वर्ण असल्यास.
- संख्या - पासवर्डमध्ये क्रमांक असल्यास.
- विशेष वर्ण - पासवर्डमध्ये विशेष वर्ण असल्यास.
फंक्शन अडचण दाखवते तसेच पासवर्ड आणखी कडक करण्याच्या काही टिप्स दाखवते.
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 सह, आम्हाला ऑनइनपुट अपडेटसह फॉर्म लिहिण्याची गरज नाही:
<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";
}
}
पासवर्ड स्ट्रेंथसाठी पायथन फंक्शन
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";
}
}
पासवर्ड स्ट्रेंथसाठी जावा फंक्शन
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";
}
}
आणि जर तुम्ही फक्त एक उत्तम पासवर्ड जनरेटर शोधत असाल, तर त्यासाठी मी एक छोटेसे ऑनलाइन साधन तयार केले आहे.