Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ में पासवर्ड की ताकत जांचने का कार्यक्रम

पासवर्ड वर्णों वाले एक स्ट्रिंग इनपुट को देखते हुए, कार्य पासवर्ड की ताकत की जांच करना है।

पासवर्ड की ताकत तब होती है जब आप बताते हैं कि पासवर्ड का आसानी से अनुमान लगाया जा सकता है या क्रैक किया जा सकता है। ताकत कमजोर, औसत और मजबूत से भिन्न होनी चाहिए। ताकत की जांच करने के लिए हमें निम्नलिखित बिंदुओं की जांच करनी होगी -

  • पासवर्ड कम से कम 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

  1. सी++ में इनवॉल्यूटरी मैट्रिक्स की जांच करने का कार्यक्रम

    एक मैट्रिक्स दिया गया है M[r][c], r पंक्तियों की संख्या को दर्शाता है और c कॉलम की संख्या को दर्शाता है जैसे कि r =c एक वर्ग मैट्रिक्स बनाता है। हमें यह जांचना है कि दिया गया वर्ग मैट्रिक्स एक इन्वॉल्वरी मैट्रिक्स . है या नहीं या नहीं। इनवॉल्यूटरी मैट्रिक्स एक मैट्रिक्स को इनवॉल्वरी . कहा जाता है म

  1. C++ में idempotent मैट्रिक्स की जांच करने का कार्यक्रम

    एक मैट्रिक्स दिया गया है M[r][c], r पंक्तियों की संख्या को दर्शाता है और c कॉलम की संख्या को दर्शाता है जैसे कि r =c एक वर्ग मैट्रिक्स बनाता है। हमें यह जांचना है कि दिया गया वर्ग मैट्रिक्स एक बेकार मैट्रिक्स . है या नहीं या नहीं। बेकार मैट्रिक्स एक मैट्रिक्स M को बेवकूफ मैट्रिक्स . कहा जाता है य

  1. सी ++ में विकर्ण मैट्रिक्स और स्केलर मैट्रिक्स की जांच करने का कार्यक्रम

    मैट्रिक्स M[r][c] दिया गया है, r पंक्तियों की संख्या को दर्शाता है और c कॉलम की संख्या को इस तरह दर्शाता है कि r =c एक वर्ग मैट्रिक्स बनाता है। हमें ज्ञात करना है कि दिया गया वर्ग आव्यूह विकर्ण . है या नहीं और स्केलर मैट्रिक्स या नहीं, अगर यह विकर्ण . है और स्केलर मैट्रिक्स फिर परिणाम में हाँ प्