كيفية إنشاء مولد كلمة مرور باستخدام Python؟

نشرت: 2021-08-20

الأمن هو أحد أهم أجزاء حياتنا. تزداد أهمية الأمان يومًا بعد يوم نظرًا لأن معظم الأشياء تنتقل عبر الإنترنت. تظهر كلمات المرور في الضوء بينما نتحدث عن الأمان.

في هذه المقالة ، سننشئ مولد كلمات مرور يساعدنا في إنشاء كلمات مرور عشوائية وقوية بسرعة.

لماذا نحتاج إلى مولد كلمة المرور؟

لأننا لا نستطيع التفكير في أنماط مختلفة من كلمات المرور على الفور.

لكن ليس الأمر نفسه مع أجهزة الكمبيوتر. يمكن لأجهزة الكمبيوتر إنشاء كلمات مرور عشوائية وقوية بناءً على تخصيصاتنا في ثوانٍ. هناك العديد من مولدات كلمات المرور المتاحة.

هل يمكننا إنشاء التخصيصات التي نحبها؟

نعم ، يمكننا بالتأكيد إنشاء واحد. وهنا سوف نوضح لك كيفية القيام بذلك.

لنقم بإنشاء مولد كلمة مرور.

مولد كلمة السر

أفضل شيء في إنشاء مولد كلمات المرور الخاص بنا هو أنه يمكننا تخصيصه كما نشاء.

أولاً ، سننشئ مولد كلمة مرور يسأل عن طول كلمة المرور وينشئ كلمة مرور عشوائية تحتوي على أرقام وحروف أبجدية وأحرف خاصة.

بعد ذلك ، سنقوم بتحسينه عن طريق السؤال عن رقم كل نوع من الأحرف ، مثل عدد الأرقام والحروف الهجائية والأحرف الخاصة.

لذلك ، دون مزيد من اللغط ، دعنا نرى خطوات إنشاء مولد كلمة مرور باستخدام Python.

خطوات

  • قم بتخزين جميع الشخصيات على شكل قائمة. يمكننا استخدام وحدة سلسلة Python أو كتابة كل منهم.
  • اطلب من المستخدم إدخال طول كلمة المرور.
  • قم بتبديل الأحرف باستخدام طريقة random.shuffle .
  • قم بتهيئة قائمة فارغة لتخزين كلمة المرور.
  • اكتب حلقة تكرر مرات length .
    • اختر حرفًا عشوائيًا من جميع الأحرف باستخدام طريقة random.choice .
    • قم بإلحاق الحرف العشوائي بكلمة المرور.
  • قم بترتيب قائمة كلمات المرور الناتجة عشوائيًا لجعلها أكثر عشوائية.
  • تحويل قائمة كلمات المرور إلى سلسلة باستخدام طريقة join .
  • اطبع كلمة المرور.

اتبع الخطوات المذكورة أعلاه وحاول كتابة الكود. لا تقلق ، حتى لو لم تكن قادرًا على كتابة الكود. تحقق من الكود أدناه.

رمز

 import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

الكود أعلاه لا يحتاج إلى شرح. لقد اتبعنا للتو الخطوات الموضحة لكتابة التعليمات البرمجية. لذلك ، لن تجد أي مشكلة في فهم الكود إذا قرأت الخطوات.

الآن ، قم بتشغيل الكود وإنشاء كلمة مرور. سيكون إخراج المثال على النحو التالي.

 Enter password length: 10 d&amIzK%d)

لاحظ كلمة المرور في الإخراج أعلاه. هل يوجد أي رقم؟ لا ، لأنه لا يوجد ما يضمن أن البرنامج سيتضمن أرقامًا.

بعد ذلك ، نحاول أن نضمن أن البرنامج سيتضمن أرقامًا وأحرفًا خاصة عن طريق مطالبة المستخدم بإدخال عدد الأرقام والحروف الأبجدية والأحرف الخاصة التي يريدها.

عندما يقوم المستخدم بإدخال عدد الأحرف لكل نوع ، سيقوم البرنامج بتضمين عدد أنواع الأحرف ذات الصلة في كلمة المرور.

دعنا نرى الكود الذي يقبل عدد الأحرف لكل نوع وينشئ كلمة المرور.

 import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

إذن ما الفرق بين الكود السابق وهذا الكود؟

  • لقد كتبنا حلقات منفصلة لكل نوع من الأحرف لإضافتها إلى كلمة المرور.
  • هناك نوعان من عمليات الفحص الشرطية للتحقق من صحة إجمالي عدد الأحرف بطول كلمة المرور.

لقد أضفنا بعض التعليمات البرمجية الإضافية. لكن النمط مشابه للرمز السابق. لذلك لن تجد صعوبة في فهمه.

الآن ، حان الوقت للتنفيذ والتحقق من الإخراج. انظر إلى التشغيل التجريبي التالي.

 Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1

إذا رأيت كلمة المرور تم إنشاؤها هذه المرة ، فهذا يعني أنها تحتوي على أقل عدد من الأحرف التي يريدها المستخدم. وقد تضمن البرنامج حرفين عشوائيين آخرين لجعل طول كلمة المرور مساويًا لإدخال المستخدم.

يا هلا! لدينا مولد كلمات مرور قوي كامل.

استنتاج

لقد رأينا كيفية إنشاء مولد كلمة مرور من البداية. هل يمكننا إضافة المزيد من الميزات إليها؟ نعم ، يمكننا إضافة أكبر عدد نريده. ولكن تأكد من أن كلمة المرور الناتجة قوية بما يكفي.

قم بإنشاء كلمات المرور من الرمز واستخدمها لحسابك التالي عبر الإنترنت.

بعد ذلك ، تعرف على كيفية بناء لعبة tic-tac-toe في Python.

ترميز سعيد!