المشروع منقول من اكاديمية حاسوب بالرابط التالى : مشاريع بايثون عملية تناسب المبتدئين - بايثون - أكاديمية حسوب
مشروع التحقق من قوة كلمة المرور
ستحتاج في الكثير من مشاريع بايثون لا سيما في مواقع وتطبيقات الويب التي تحتاج لتسجيل دخول المستخدمين إلى التحقق من قوة كلمة المرور التي يدخلها المستخدم لضمان أمانه وحماية حسابه من الاختراق، وفي هذا المشروع سنكتب الكود البرمجي اللازم لفحص كلمة مرور المستخدم وتحديد فيما إذا كانت كلمة المرور قوية أم ضعيفة بناءً على مجموعة من الشروط وهي كالتالي:
- يجب أن تحتوي كلمة المرور على حروف صغيرة (a-z).
- يجب أن تحتوي كلمة المرور على حروف كبيرة (A-Z).
- يجب أن تحتوي كلمة المرور على محارف خاصة (!@#$^%).
- يجب أن تحتوي كلمة المرور على أرقام (0-9).
- يجب أن لا يقل طول الكلمة عن 8 محارف ولا يزيد على 20 محرف
إذا توفرت جميع هذه الشروط في كلمة المرور التي أدخلها المستخدم سنعتبرها كلمة مرور قوية وإذا لم تتوفر جميع الشروط سنعتبرها كلمة ضعيفة ونطلب منه إدخال كلمة أخرى.
حلى الشخصى للمشروع :
import string
import time
while True : # loop for renter
upper_case = []
lower_case = []
digits = []
punctuations = []
new_pass = input('''\nnew password .....
Note >> Passwrd must Contains :
1-Contains Small letter (a-z)
2-Contains Capital leter (A-Z)
3-Contains special chracters (#@$%^&*)
4-Contains Numbers (0-9)
5-Minimum 8 chracter & maximum 20 chracter
Enter a password : ''') # ask user for pass
for x in new_pass : # loop for adding pass to lists
if (x in string.ascii_lowercase) and (x not in string.digits) and (x not in string.punctuation) and (x not in string.ascii_uppercase) :
lower_case.append(x)
if (x in string.digits) and (x not in string.ascii_lowercase) and (x not in string.punctuation) and (x not in string.ascii_uppercase) :
digits.append(x)
if (x in string.punctuation) and (x not in string.digits) and (x not in string.ascii_lowercase) and (x not in string.ascii_uppercase) :
punctuations.append(x)
if (x in string.ascii_uppercase) and (x not in string.digits) and (x not in string.punctuation) and (x not in string.ascii_lowercase) :
upper_case.append(x)
if upper_case and lower_case and digits and punctuations : # pass spell final check
print ("Checking pass chracters & numbers ! \n")
time.sleep(2)
print ("Your pass strength is high 🤩\n")
else :
print ("your pass strength is weak \nTry again !")
continue
if len(new_pass) >= 8 and len(new_pass) <= 20 : # pass length check
print ("\n Checking pass length !")
time.sleep(2)
print ("\nYour pass length is within range 😊")
break
else :
print("Your pass length is not within range \n\nTry again !")
continue
print (f"\nYour PassWord :\n\n {new_pass} \n\nis saved successfuly.\n" ) # printing successful pass
طبعا ده مش clean code أو بمعنى اصح مش افضل حاجة وممكن التعديل فيه لتقليل الكود (بس الوقت ضيق