पासवर्ड वर्णों वाले एक स्ट्रिंग इनपुट को देखते हुए, कार्य पासवर्ड की ताकत की जांच करना है।
पासवर्ड की ताकत तब होती है जब आप बताते हैं कि पासवर्ड का आसानी से अनुमान लगाया जा सकता है या क्रैक किया जा सकता है। ताकत कमजोर, औसत और मजबूत से भिन्न होनी चाहिए। ताकत की जांच करने के लिए हमें निम्नलिखित बिंदुओं की जांच करनी होगी -
- पासवर्ड कम से कम 8 वर्णों का होना चाहिए।
- इसमें 1 लोअरकेस अक्षर होना चाहिए।
- इसमें 1 अपरकेस अक्षर होना चाहिए
- इसमें एक अंक होना चाहिए
- इसमें एक विशेष वर्ण होना चाहिए जैसे:!@#$%^&*()><,.+=-
जैसे एक पासवर्ड "ट्यूटोरियल पॉइंट" है जिसका आसानी से अनुमान लगाया जा सकता है, इसलिए हम कह सकते हैं कि उसने पासवर्ड "कमजोर" दिया है क्योंकि इसमें केवल लोअरकेस वर्ण हैं, जबकि पासवर्ड "ट्यूटोरियल पॉइंट@863!" अपरकेस और लोअरकेस दोनों के रूप में मजबूत है, एक अंक और एक विशेष वर्ण है और 8 वर्णों से अधिक लंबा है, इसलिए पासवर्ड को मजबूत बनाने के लिए सभी शर्तों को पूरा करता है।
यदि कोई पासवर्ड मजबूत पासवर्ड की आधे से अधिक विशेषताओं को पूरा करता है, तो हम पासवर्ड को मध्यम मानेंगे। पासवर्ड "tutorialspoint12" की तरह इसे मध्यम माना जाएगा क्योंकि इसमें लोअरकेस, एक अंक होता है और इसकी लंबाई 8 वर्णों से अधिक होती है।
उदाहरण
Input: tutoriAlspOint!@12 Output: Strength of password:-Strong Explanation: Password has 1 lowercase, 1 uppercase, 1 special character, more than 8 characters long and a digit, hence the password is strong. Input: tutorialspoint Output: Strength of password:-Weak
दृष्टिकोण हम दी गई समस्या को हल करने के लिए उपयोग करेंगे -
- पासवर्ड के लिए एक स्ट्रिंग आउटपुट लें।
- पासवर्ड की ताकत का आकलन करने के लिए जिम्मेदार सभी कारकों के लिए पासवर्ड की जांच करें।
- कारकों के अनुसार पासवर्ड की ताकत प्रिंट करें।
एल्गोरिदम
Start Step 1 ⇒ In function void printStrongNess(string& input) Declare and initialize n = input.length() Declare bool hasLower = false, hasUpper = false Declare bool hasDigit = false, specialChar = false Declare string normalChars = "abcdefghijklmnopqrstu" "vwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 " Loop For i = 0 and i < n and i++ If (islower(input[i])) Set hasLower = true If (isupper(input[i])) Set hasUpper = true If (isdigit(input[i])) Set hasDigit = true Set size_t special = input.find_first_not_of(normalChars) If (special != string::npos) Set specialChar = true End Loop Print "Strength of password:-" If (hasLower && hasUpper && hasDigit && specialChar && (n >= 8)) Print "Strong" else if ((hasLower || hasUpper) && specialChar && (n >= 6)) Print "Moderate" else print "Weak" Step 2 ⇒ In function int main() Declare and initialize input = "tutorialspoint!@12" printStrongNess(input) Stop
उदाहरण
#include <iostream> using namespace std; void printStrongNess(string& input) { int n = input.length(); // Checking lower alphabet in string bool hasLower = false, hasUpper = false; bool hasDigit = false, specialChar = false; string normalChars = "abcdefghijklmnopqrstu" "vwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 "; for (int i = 0; i < n; i++) { if (islower(input[i])) hasLower = true; if (isupper(input[i])) hasUpper = true; if (isdigit(input[i])) hasDigit = true; size_t special = input.find_first_not_of(normalChars); if (special != string::npos) specialChar = true; } // Strength of password cout << "Strength of password:-"; if (hasLower && hasUpper && hasDigit && specialChar && (n >= 8)) cout << "Strong" << endl; else if ((hasLower || hasUpper) && specialChar && (n >= 6)) cout << "Moderate" << endl; else cout << "Weak" << endl; } int main() { string input = "tutorialspoint!@12"; printStrongNess(input); return 0; }
आउटपुट
Strength of password:-Moderate