
जावास्क्रिप्ट और रेगुलर एक्सप्रेशंस के साथ पासवर्ड की ताकत की जांच करें (सर्वर-साइड उदाहरणों के साथ भी!)
मैं एक पासवर्ड स्ट्रेंथ चेकर का एक अच्छा उदाहरण खोजने पर कुछ शोध कर रहा था जो उपयोग करता है जावास्क्रिप्ट और नियमित अभिव्यक्ति (रेगेक्स)। मेरे काम पर एप्लिकेशन में, हम पासवर्ड की ताकत को सत्यापित करने के लिए एक पोस्ट बैक करते हैं और यह हमारे उपयोगकर्ताओं के लिए काफी असुविधाजनक है।
Regex क्या है?
एक नियमित अभिव्यक्ति वर्णों का एक क्रम है जो एक खोज पैटर्न को परिभाषित करता है। आमतौर पर, ऐसे पैटर्न का उपयोग स्ट्रिंग खोज एल्गोरिदम द्वारा किया जाता है खोज or ढूँढें और बदलें स्ट्रिंग्स पर या इनपुट सत्यापन के लिए संचालन।
यह लेख निश्चित रूप से आपको नियमित अभिव्यक्ति सिखाने के लिए नहीं है। बस यह जान लें कि रेगुलर एक्सप्रेशंस का उपयोग करने की क्षमता आपके विकास को बिल्कुल सरल बना देगी जैसा कि आप टेक्स्ट में पैटर्न खोजते हैं। यह भी ध्यान रखना महत्वपूर्ण है कि अधिकांश विकास भाषाओं ने नियमित अभिव्यक्ति उपयोग को अनुकूलित किया है ... इसलिए चरण-दर-चरण को पार्स करने और खोजने के बजाय, रेगेक्स आमतौर पर सर्वर और क्लाइंट-साइड दोनों में बहुत तेज है।
मैंने मिलने से पहले वेब को काफी खोजा एक उदाहरण कुछ महान नियमित अभिव्यक्तियाँ जो लंबाई, वर्ण और प्रतीकों के संयोजन की तलाश में हैं। कैसे भी हो, कोड मेरे स्वाद के लिए थोड़ा अधिक था और .NET के लिए सिलवाया गया था। इसलिए मैंने कोड को सरल बनाया और इसे जावास्क्रिप्ट में डाल दिया। यह इसे वापस पोस्ट करने से पहले क्लाइंट के ब्राउज़र पर वास्तविक समय में पासवर्ड की शक्ति को मान्य करता है ... और पासवर्ड की ताकत पर उपयोगकर्ता को कुछ प्रतिक्रिया प्रदान करता है।
एक पासवर्ड टाइप करें
कीबोर्ड के प्रत्येक स्ट्रोक के साथ, पासवर्ड को नियमित अभिव्यक्ति के खिलाफ परीक्षण किया जाता है और फिर उपयोगकर्ता को इसके नीचे एक स्पैन में फीडबैक प्रदान किया जाता है।
यहाँ कोड है
RSI नियमित अभिव्यक्ति कोड की लंबाई कम करने का शानदार काम करें। यह जावास्क्रिप्ट फ़ंक्शन एक पासवर्ड की ताकत की जांच करता है और क्या इसे विफल करना आसान, मध्यम, कठिन या अनुमान लगाने में बेहद कठिन है। जैसा कि व्यक्ति टाइप करता है, यह उसे मजबूत होने के लिए प्रोत्साहित करने के लिए सुझाव प्रदर्शित करता है। यह पासवर्ड के आधार पर मान्य करता है:
- लंबाई - यदि लंबाई 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;
}
}
आपका पासवर्ड अनुरोध हार्ड करना
यह आवश्यक है कि आप अपने जावास्क्रिप्ट के भीतर केवल पासवर्ड निर्माण को मान्य न करें। यह किसी को भी ब्राउज़र डेवलपमेंट टूल के साथ स्क्रिप्ट को बायपास करने में सक्षम करेगा और जो भी पासवर्ड उन्हें पसंद आएगा उसका उपयोग करेगा। आपको अपने प्लेटफ़ॉर्म में संग्रहीत करने से पहले पासवर्ड की ताकत को मान्य करने के लिए सर्वर-साइड जांच का उपयोग करना चाहिए।
पासवर्ड शक्ति के लिए पीएचपी समारोह
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"
सी # पासवर्ड शक्ति के लिए समारोह
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";
}
}
मुझे एक और पासवर्ड शक्ति चेकर्स मिला। शब्द शब्दकोश के आधार पर उनका एल्गोरिथ्म। Microsoft.com पर एक आज़माएं - http://www.microsoft.com/protect/yourself/password/checker.mspx और itsimpl.com पर एक - http://www.itsimpl.com
जी शुक्रिया! जी शुक्रिया! जी शुक्रिया! मैं 2 सप्ताह के लिए अन्य वेबसाइटों से लानत पासवर्ड शक्ति कोड के साथ बेवकूफ बना रहा हूं और अपने बालों को खींच रहा हूं। आपका संक्षिप्त है, ठीक वैसे ही काम करता है जैसे मैं चाहता हूं और सबसे अच्छा, जावास्क्रिप्ट नौसिखिया को संशोधित करना आसान है! मैं ताकत के फैसले पर कब्जा करना चाहता था और फॉर्म पोस्ट को वास्तव में उपयोगकर्ता के पासवर्ड को अपडेट करने की अनुमति नहीं देना चाहता था जब तक कि यह ताकत परीक्षण को पूरा नहीं करता। अन्य लोगों का कोड बहुत जटिल था या सही काम नहीं कर रहा था या कुछ और। मैं आप से प्रेम करता हूँ! XXXXX
आपका स्वागत है! आपका स्वागत है! आपका स्वागत है!
मैं भी तुमसे प्यार करता हूं!
कोड का एक टुकड़ा लिखने के लिए धन्यवाद जो वास्तव में कैन पर कहता है!
नमस्ते, उर प्रयासों के लिए सबसे पहले बहुत धन्यवाद, मैंने इसे asp.net के साथ उपयोग करने की कोशिश की, लेकिन काम नहीं किया, मैं उपयोग कर रहा हूं
टैग के बजाय, और यह काम नहीं किया, कोई सुझाव ?!
निसरीन के लिए: हाइलाइट किए गए बॉक्स में कोड कट'न'पेस्ट के साथ काम नहीं करता है। एकल उद्धरण गड़बड़ है। हालांकि प्रदर्शन लिंक का कोड ठीक है।
अरे, मुझे आपकी स्क्रिप्ट पसंद है! मैंने इसे डच में अनुवादित किया, और मैंने इसे अपने मंच पर यहां पोस्ट किया!
अच्छा काम! बिल्कुल यह क्लाइंट पर कैसे किया जाना चाहिए
बहुत अच्छा काम…।
धन्यवाद डगलस, मैं इसे अपनी वर्तमान नौकरी के लिए उपयोग करता हूं।
"पी @ $ w0rD" मजबूत पर दिखाता है, हालांकि यह एक काल्पनिक हमले के साथ काफी जल्दी टूट जाएगा ...
एक व्यावसायिक समाधान पर इस तरह की सुविधा को तैनात करने के लिए, मेरा मानना है कि इस एल्गोरिथ्म को एक डिक्शनरी चेक के साथ जोड़ना महत्वपूर्ण है।
XULRunner में थोड़ा बदलाव के साथ बढ़िया काम करता है। धन्यवाद!
इस छोटे कोड के लिए धन्यवाद, अब मैं अपने पासवर्ड की शक्ति का परीक्षण करने के लिए इसका उपयोग कर सकता हूं, जब मेरे आगंतुक अपने पासवर्ड का उपयोग करते हैं,
कोडिंग का शानदार नमूना
स्क्रिप्ट सुपर थी। मैंने हमारे वर्तमान प्रोजेक्ट में उपयोग किया था
आप दूसरों के साथ साझा करने के लिए धन्यवाद!
इतनी सरल और शानदार अभिव्यक्ति। मैं एक परीक्षक के रूप में इस अभिव्यक्ति से अपनी टीसी प्राप्त करता हूं।
साझा करने के लिए धन्यवाद। इस पृष्ठ पर आपके कुछ टूटे हुए लिंक हैं। FYI करें।
किसी को बता सकते हैं, यह मेरा काम क्यों नहीं किया ..
मैंने सभी कोड कॉपी किए, और नोटपैड ++ में पेस्ट किया, लेकिन यह बिल्कुल काम नहीं करता है?
कृपया मेरी मदद करें..
बहुत खुबस!!!!! धन्यवाद।
महान नौकरी वाला आदमी! सरल और प्रभावी। शेयर करने के लिए बहुत - बहुत शुक्रिया!
धन्यवाद
अच्छा धन्यवाद। लेकिन ... एक स्ट्रोंग पीड का उदाहरण क्या है? 'एक नहीं मिल सकता! - {}
इस प्रकार की "शक्ति चेकर" लोगों को एक बहुत ही खतरनाक रास्ते से नीचे ले जाती है। यह पासफ़्रेज़ लंबाई पर वर्ण विविधता को महत्व देता है, जिससे यह कम, अधिक विविध पासवर्डों की तुलना में कम, विविध विविध पासवर्डों को रेट करता है। यह एक ऐसी गिरावट है जो आपके उपयोगकर्ताओं को कभी भी हैकिंग के खतरे का सामना करने पर मुसीबत में डाल देगी।
मैं असहमत नहीं, जॉर्डन! उदाहरण को स्क्रिप्ट के उदाहरण के रूप में सामने रखा गया था। लोगों के लिए मेरी सिफारिश किसी भी साइट के लिए स्वतंत्र पासफ़्रेज़ बनाने के लिए पासवर्ड प्रबंधन टूल का उपयोग करना है जो इसके लिए अद्वितीय हैं। धन्यवाद!
धन्यवाद यह बहुत अच्छा काम करता है।
यू इसके काम ठीक है धन्यवाद
मैं वास्तव में सराहना कर रहा हूँ आप इसे कई बार खोज चुके हैं लेकिन अंत में मुझे आपकी पोस्ट मिल गई है और मैं वास्तव में चकित हूं। धन्यवाद
धन्यवाद दोस्त। बस मेरी वेबसाइट पर तैनात है और यह बहुत अच्छा काम कर रहा है।
यह सुनकर प्यार! आपका स्वागत है!
मैं आपको साझा करने की सराहना करता हूं! हमारी वेबसाइट पर पासवर्ड की शक्ति को देख रहे हैं और यह एक तरह से मैं चाहता था काम किया है। आपको बहुत - बहुत धन्यवाद!
धन्यवाद, आशा है कि आप इसे आवश्यकतानुसार अनुकूलित कर पाएंगे।
आप एक जीवित सेवर हैं! मैं सही और केंद्र छोड़ दिया तार पार्स कर रहा था और सोचा कि वहाँ एक बेहतर तरीका है और Regex का उपयोग कर अपने कोड का टुकड़ा मिला। मेरी साइट के लिए इसके साथ छेड़छाड़ करने में सक्षम था ... आपको पता नहीं है कि इससे कितनी मदद मिली। बहुत बहुत धन्यवाद डगलस !!
सुनने में अच्छा लगा!