پیاده سازی ابزار ایجاد پسورد

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/05/25
  • تعداد بازدید: 10

پروژه: تولید پسورد با استفاده از کلاس‌ها و شی‌ءگرایی

اهداف پروژه

  • تمرین استفاده از کلاس‌ها و ارث‌بری
  • تمرین تعریف کلاس‌های انتزاعی (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 ساخته شده و پسوردی ۲۰ کاراکتری تولید و نمایش داده می‌شود

 

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد
0/600

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.