পাসওয়ার্ড অক্ষর সম্বলিত একটি স্ট্রিং ইনপুট দেওয়া, কাজটি হল পাসওয়ার্ডের শক্তি পরীক্ষা করা৷
পাসওয়ার্ডের শক্তি হল যখন আপনি বলবেন যে পাসওয়ার্ডটি সহজেই অনুমান করা যায় বা ক্র্যাক হয়। শক্তি দুর্বল, গড় এবং শক্তিশালী থেকে পরিবর্তিত হওয়া উচিত। শক্তি পরীক্ষা করতে আমাদের নিম্নলিখিত পয়েন্টগুলি পরীক্ষা করতে হবে -
- পাসওয়ার্ড কমপক্ষে ৮ অক্ষরের হতে হবে।
- এতে অবশ্যই ১টি ছোট হাতের বর্ণমালা থাকতে হবে।
- এতে অবশ্যই 1টি বড় হাতের বর্ণমালা থাকতে হবে
- এতে অবশ্যই একটি সংখ্যা থাকতে হবে
- এতে একটি বিশেষ অক্ষর থাকতে হবে যেমন :!@#$%^&*()><,.+=-
যেমন একটি পাসওয়ার্ড "টিউটোরিয়াল পয়েন্ট" আছে যা সহজেই অনুমান করা যায় তাই আমরা বলতে পারি যে তিনি পাসওয়ার্ডটি "দুর্বল" কারণ এতে শুধুমাত্র ছোট হাতের অক্ষর রয়েছে, যেখানে পাসওয়ার্ড "Tutorialspoint@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