English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
المهمة المقدمة هي فحص قوة كلمة المرور التي تحتوي على سلسلة من أحرف الإدخال.
قوة كلمة المرور هي عندما تخبرك إذا كانت كلمة المرور سهلة التنبؤ بها أم يمكن اختراقها. يجب أن تكون القوة من الضعيفة، المتوسطة والقوية إلى مختلفة. لفحص القوة، يجب علينا التحقق من النقاط التالية:
يجب أن يكون طول كلمة المرور على الأقل 8 أحرف
يجب أن تحتوي على حرف صغير
يجب أن تحتوي على حرف كبير
يجب أن تحتوي على رقم
يجب أن تحتوي على رمز خاص، مثل: !@#$%^&*()> <،.+=-
مثل كلمة المرور "w3codebox" التي يمكن التنبؤ بها بسهولة، لذا يمكننا القول بأنه يعطي كلمة المرور "ضعيف" لأنها تحتوي فقط على أحرف صغيرة، بينما تحتوي كلمة المرور "w3codebox @ 863!" على أحرف كبيرة وأحرف صغيرة وأرقام ورموز خاصة، وهي قوية وطولها أكثر من 8 أحرف، لذا تفي بجميع الشروط التي تجعل كلمة المرور أقوى.
إذا كان هناك بعض الكلمات المرور تmeet أكثر من نصف خصائص كلمة المرور القوية، فإننا سنعتبرها كلمة مرور متوسطة. مثل كلمة المرور "w3codebox12"، سيتم اعتبارها درجة متوسطة لأنها تحتوي على حرف صغير، رقم واحد وطول أكثر من 8 أحرف.
الإدخال: w3codebox!@12 الإخراج: قوة كلمة المرور: - قوية التوضيح: كلمة المرور تحتوي على 1 حرف صغير، 1 حرف كبير، 1 رمز خاص، طول أكثر من 8 أحرف ويحتوي على رقم، لذا كلمة المرور قوية. الإدخال: w3codebox الإخراج: قوة كلمة المرور: - ضعيف
الطريقة التي سنستخدمها لحل المشكلة المقدمة.-
إخراج النص ككلمة مرور.
تحقق مما إذا كانت جميع العوامل يمكن استخدامها لتحديد قوة كلمة المرور.
طباعة قوة كلمة المرور بناءً على العوامل.
البداية الخطوة 1 ⇒ في وظيفة void طباعة قوة النسخة (النص& إدخال) تعلن و initialize ن = طول إدخال تعلنُ بول هاسلور = صحيح، هاسأبليور = صحيح اجعل bool hasDigit = false, specialChar = false اجعل string normalChars = "abcdefghijklmnopqrstu" "vwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 " دورة للـ For i = 0 و i < n و i++ إذا (islower(input[i])) اجعل hasLower = true إذا (isupper(input[i])) اجعل hasUpper = true إذا (isdigit(input[i])) اجعل hasDigit = true اجعل size_t special = input.find_first_not_of(normalChars) إذا (special != string::npos) اجعل specialChar = true انتهاء الدورة اطبع "قوة كلمة المرور:-" إذا (hasLower && hasUpper && hasDigit && specialChar && (n >= 8) اطبع "قوي" else if ((hasLower || hasUpper) && specialChar && (n >= 6) اطبع "متوسط" else print "Week" خطوة 2 ⇒ في الدالة int main() Declare and initialize input = "w3codebox!@12" printStrongNess(input) توقف
#include <iostream> using namespace std; void printStrongNess(string& input) { int n = input.length(); // تحقق من وجود الحروف الصغرى في النص 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; } //قوة كلمة المرور 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 = "w3codebox!@12"; printStrongNess(input); return 0; }
نتيجة الإخراج
قوة كلمة المرور:-متوسطة