پروژه: تولید پسورد با استفاده از کلاسها و شیءگرایی
اهداف پروژه
- تمرین استفاده از کلاسها و ارثبری
- تمرین تعریف کلاسهای انتزاعی (Abstract Class)
- تمرین پیادهسازی متدهای انتزاعی
- کار با کتابخانههای string و random
- ساخت برنامهای که به صورت پویا پسورد تولید میکند
۱. وارد کردن ماژولها و متغیرهای سراسری
from abc import ABC,abstractmethod
import string
import random
وارد کردن کتابخانههای مورد نیاز: abc برای کلاسهای انتزاعی، string برای مجموعه حروف و اعداد و random برای انتخاب تصادفی
۲. تعریف کلاس انتزاعی تولید پسورد
class PasswordGeneratorAbstract(ABC):
@abstractmethod
def generate_password(self,length=8):
pass
اینجا یک کلاس انتزاعی تعریف شده که هر کلاس فرزند موظف است متد generate_password را پیادهسازی کند
۳. کلاس تولید پسورد عددی
class NumericPasswordGenerator(PasswordGeneratorAbstract):
letters = string.digits
def generate_password(self, length=8):
return "".join(str(random.choice(self.letters)) for _ in range(length))
این کلاس پسوردهایی شامل اعداد تولید میکند
۴. کلاس تولید پسورد حروفی
class LetterPasswordGenerator(PasswordGeneratorAbstract):
letters = string.ascii_letters
def generate_password(self, length=8):
return "".join(str(random.choice(self.letters)) for _ in range(length))
این کلاس پسوردهایی شامل حروف انگلیسی بزرگ و کوچک تولید میکند
۵. کلاس تولید پسورد ترکیبی
class MixedPasswordGenerator(PasswordGeneratorAbstract):
letters = string.ascii_letters + string.digits
def generate_password(self, length=8):
return "".join(str(random.choice(self.letters)) for _ in range(length))
این کلاس پسوردهایی شامل حروف و اعداد به صورت ترکیبی تولید میکند
۶. اجرای برنامه و تولید پسورد
generator = MixedPasswordGenerator()
print(generator.generate_password(20))
در این بخش یک نمونه از کلاس MixedPasswordGenerator ساخته شده و پسوردی ۲۰ کاراکتری تولید و نمایش داده میشود