در زمان یادگیری پایتون، نیاز است با انجام پروژههای تمرینی مختلف، دانش و آموختههای خود را تثبیت کنید. در گذشته تمرین ساخت ماشین حساب با پایتون را در آکادمی سبزلرن منتشر کردیم و اکنون، قصد توسعه یک پروژه کوچک با عنوان پروژه ساخت پسورد رندوم در پایتون را داریم. اگر دوره آموزش پروژه های کاربردی با پایتون را دیده باشید حتما علاقه مند به توسعه پروژه های متنوع هستید پس این مقاله مختص شماست.
در ادامه اگر قصد شما تنها دریافت سورس کد ساخت پسورد رندوم در پایتون است میتوانید از کد زیر استفاده کنید:
# فراخوانی ماژول های موردنیاز
import random
import string
# فراخوانی ثابت های موردنیاز
special_characters = string.punctuation
digits = string.digits
letters = string.ascii_letters
# قرار دادن همه ثابت ها در یک متغیر
pass_characters = letters + digits + special_characters
# تعیین طول متغیر توسط کاربر
pass_length = int (input ("لطفا تعداد کاراکترهای رمز عبور را به عدد وارد کنید"))
# متغیر حاوی پسورد ساخته شده
password = ''
# حلقه سازنده پسورد
for i in range(pass_length):
password += ''.join(random.choice(pass_characters))
# نمایش پسورد ساخته شده به کاربر
print(password)
Pythonیا از طریق لینک دانلود فایل سورس کد ساخت پسورد تصادفی در پایتون را دریافت کنید؛ و اگر قصد دارید آموزش توسعه پروژه پسورد رندوم در پایتون را یاد بگیرید این مقاله مختص شماست.
اهداف پروژه برنامه تولید پسورد رندوم در پایتون
استفاده از رمز عبور قوی در سایتها و پلتفرمهای مختلف، یکی از موارد امنیتی است که از به خطر افتادن اطلاعات حساب جلوگیری میکند. پسوردهای قدرتمند، معمولا ترکیبی از اعداد و حروف کوچک و بزرگ هستند. همچنین متخصصان هک و امنیت پیشنهاد میکنند از علائم مختلف برای افزایش قدرت رمز عبور استفاده کنیم.
در این پروژه تمرینی، قصد ساخت برنامهای برای تولید پسورهای تصادفی با استفاده از پایتون داریم. این برنامه با دریافت تعداد کاراکترهای موردنیاز برای رمز عبور، یک رمز تصادفی قدرتمند با استفاده از اعداد، حروف انگلیسی کوچک و بزرگ و علائم خاص برای ما ایجاد میکند. این پروژه کوتاه و کاربردی را میتوانید به اشکال مختلف ویرایش و شخصیسازی کنید.
در ادامه، نحوه توسعه این پروژه را بررسی میکنیم.
ساخت برنامه تولید پسورد رندوم در پایتون
لطفا از مراحل زیر به عنوان یک راهنما استفاده کنید. در انتهای این راهنما، جدولی از ماژولها و ابزارهای کاربردی برای تغییر پروژه و شخصیسازی آن قرار داده شده که با استفاده از آنها، میتوانید پروژه ساخت پسورد تصادفی با پایتون را بسته به سلیقه خود، ویرایش کنید.
در قدم اول، باید ماژولهای موردنیاز را به پروژه اضافه کنیم.
- ماژول random
این ماژول دارای تابعی به نام ()random و البته توابعی دیگری است که اعداد و رشتههای شبه تصادفی موردنیاز ما را تولید میکنند.
- ماژول string
این ماژول حاوی ثابتهای مختلفی از نوع رشته است که با استفاده از آنها، کاراکترهای رمز عبور ساخته میشوند.
از آنجایی که این دو ماژول در کتابخانه استاندارد پایتون تعبیه شدهاند، میتوان به سادگی آنها را با استفاده از کد زیر فراخوانی و به پروژه اضافه کرد:
import random
import string
Pythonدر ادامه ثابتهایی که حاوی کاراکترهای موردنیاز برای ساخت پسورد تصادفی با پایتون هستند را به پروژه اضافه میکنیم.
اولین ثابت فراخوانی شده، ثابت string.punctuation است که حاوی علائم مختلف بوده و در افزایش قدرت پسورد تولید شده تاثیرگذار است. علائمی که درون این ثابت وجود دارند را میبینید:
special_characters = string.punctuation
Pythonعلائم درون این ثابت:
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Pythonدومین ثابت، string.digits است که کاراکترهای عددی را درون خود نگهداری میکند. درست است که اعداد مختلف درون این ثابت ذخیره شدهاند؛ اما نوع آنها رشته است و شامل همه اعداد ۰ تا ۹ میشود.
برای اضافه کردن این ثابت به پروژه، کد زیر را به پروژه اضافه کنید.
digits = string.digits
Pythonدر انتها نیاز به فراخوانی حروف انگلیسی داریم. در این بخش، سه انتخاب برای ما وجود دارد. میتوانیم حروف انگلیسی کوچک نظیر abcdefgh را به صورت جداگانه با استفاده از ثابت string.ascii_lowercase مورداستفاده قرار دهیم یا همین کار را با حروف بزرگ نظیر ABCDEFGH و ثابت string.ascii_uppercase انجام دهیم! برای استفاده از همه حروف، میتوانیم ثابت string.ascii_letters را فراخوانی کنیم.
letters = string.ascii_letters
Pythonبهتر است توضیح کوتاهی درباره عبارت Ascii داشته باشیم. ascii یک استاندارد کدگذاری کاراکتر است که برای رایانهها استفاده میشود. هر کاراکتر، اعداد، حروف و نماد در سیستم اسکی، به عنوان یک عدد بین ۰ تا ۱۲۷ تعریف شده و برای تبدیل زبان انسان به ماشین در رایانهها مورداستفاده قرار میگیرد.
حالا همه ثابتها را درون یک متغیر قرار میدهیم.
pass_characters = letters + digits + special_characters
Pythonدر ادامه، نیاز به دریافت تعداد کاراکترهای پسورد تصادفی از کاربر هستیم. به این منظور، یک متغیر از نوع عددی به نام pass_length ایجاد کرده و با استفاده از دستور input، ورودی آن را از کاربر دریافت میکنیم. درون دستور input میتوانید متنی برای راهنمایی کاربر بنویسید.
pass_length = int (input (":لطفا تعداد کاراکترهای رمز عبور را به عدد وارد کنید"))
Pythonتا اینجا تمام پیشنیازهایی که برای پروژه ساخت پسورد تصادفی در پایتون نیاز داشتیم را به پروژه اضافه کردیم. حالا نیاز به تعریف یک متغیر از نوع رشته برای نگهداری رمز تولید شده داریم.
password = ""
Pythonحالا با استفاده از یک حلقه، فرآیند تولید پسورد تصادفی در پایتون را تعریف میکنیم:
for i in range(pass_length):
password += ''.join(random.choice(pass_characters))
Pythonفرآیندهای انجام شده در این کد عبارتند از:
- ابتدا یک حلقه for ایجاد میکنیم که در آن، مقدار تکرار آن برابر با عددی است که کاربر به عنوان طول رمز عبور وارد کرده است.
- در ادامه، متد ()choice را داریم. این متد به صورت تصادفی، یکی از کاراکترهای درون متغیر pass_characters را انتخاب میکند.
- سپس با استفاده از متد ()join کاراکتر انتخاب شده را به متغیر password اضافه میکنیم.
- از آنجایی که نمیخواهیم بین کاراکترهای رمز عبور فاصله وجود داشته باشد، جداکننده (” “) را هم مشخص میکنیم.
در انتها، با استفاده از دستور print مقدار password که شامل رمز نهایی ما است را چاپ میکنیم:
print(password)
Pythonحالا پروژه را اجرا میکنیم. در قدم اول، متن نوشته شده در دستور input به ما نمایش داده میشود که باید یک عدد را به عنوان ورودی به آن بدهیم. ما مقدار ۱۰ را وارد کرده و دکمه enter را برای ثبت این مقدار وارد میکنیم. در ادامه، یک خروجی از کاراکترهای تصادفی به عنوان رمز عبور به ما نمایش داده میشود.
:لطفا تعداد کاراکترهای رمز عبور را به عدد وارد کنید
۱۰
v+vd4G3G1f
۸/?E?L?a4!
]]/\e"%;bv
Pythonهر بار که این کد را اجرا کنید، یک خروجی متفاوت دریافت میکنید. اگر طبق مراحل بالا پیش رفتهاید، کدی مشابه قطعه کد زیر خواهید داشت. برای راهنمایی بیشتر، هر بخش را با استفاده از کامنتها در پایتون جدا کردهایم.
سورس کد پروژه ساخت پسورد رندوم در پایتون :
# فراخوانی ماژول های موردنیاز
import random
import string
# فراخوانی ثابت های موردنیاز
special_characters = string.punctuation
digits = string.digits
letters = string.ascii_letters
# قرار دادن همه ثابت ها در یک متغیر
pass_characters = letters + digits + special_characters
# تعیین طول متغیر توسط کاربر
pass_length = int (input ("لطفا تعداد کاراکترهای رمز عبور را به عدد وارد کنید"))
# متغیر حاوی پسورد ساخته شده
password = ''
# حلقه سازنده پسورد
for i in range(pass_length):
password += ''.join(random.choice(pass_characters))
# نمایش پسورد ساخته شده به کاربر
print(password)
Pythonالبته به دلایلی، پیشنهاد میکنیم از رمزهای تولید شده به وسیله این برنامه در سایتها و پلتفرمهایی که امنیت، بخش حیاتی از آنها است، استفاده نکنید. در ادامه، راه حل این مشکل را برای شما شرح میدهیم.
چرا نباید رمزهای تولید شده با random را استفاده کنیم؟
ماژول random در پایتون برای شبیهسازی و تست برنامهها با دادههای شبه تصادفی ایجاد شده و مقادیر تولید شده در آن، کاملا تصادفی نیستند. به همین دلیل، بهتر است از رمزهای تولید شده توسط این ماژول در برنامههایی که نیاز به امنیت بسیار بالا دارند، استفاده نکنید. حتی در مستندات رسمی پایتون نیز تاکید شده از ماژول random برای مصارف امنیتی یا رمزنگاری استفاده نشود.
Warning The pseudo-random generators of this module should not be used for security purposes. For security or cryptographic uses, see the secrets module.
همینطور در این منبع گفته شده که میتوانید ماژول secrets را به عنوان یک مولد کاملا تصادفی مورداستفاده قرار دهید. روش استفاده از این ماژول، کاملا شبیه به ماژول random است. کافیست آن را با استفاده از دستور import به پروژه اضافه کنید و در حلقه for نیز مقدار secrets.choice را جایگزین مقدار random.choice کنید.
پایتون، ابزار همه فن حریف توسعه دهندگان آینده
زبان برنامهنویسی پایتون، ابزار قدرتمندی است که با تواناییهای فراوان و نهایت سادگی، به عنوان پلی برای تبدیل ایدههای مختلف به واقعیت عمل میکند. پروژهای که در این مطلب آن را توسعه دادیم، تنها چشمه کوچکی از تواناییهای این زبان برنامهنویسی بود. در صورت یادگیری پایتون میتوانید این پروژه را تا حد زیادی گسترش داده و امکانات جدیدی نظیر تعیین نوع رمز و کاراکترهای مورداستفاده، محدود کردن حداقل و حداکثر تعداد کاراکترهای یک پسورد، دکمه کپی پسورد، گرافیکی کردن پروژه و بسیاری موارد دیگر را به آن اضافه کنید.
چطور میتونم پروژههای حرفهایتر در پایتون توسعه بدم؟
برای یادگیری پروژههای حرفهایتر نمیشه فقط به مقالهها وابسطه بود، چون با بزرگتر شدن پروژه، پیچیدگیهای اون پروژه هم بیشتر میشه، اگه هدفتون ارتقا سطحتون باشه تا پروژههای بزرگتری انجام بدید یا اینکه حتی اعتبار کاریتون رو بالاتر ببرید، شما نیاز دارید که زیر نظر یک مدرس باتجربه آموزش ببینید، و کجا بهتر از سبزلرن؟ شما میتونید با شرکت در دوره آموزش پروژههای کاربردی با پایتون سبزلرن؛ چندین و چند پروژه مختلف رو زیر نظر یک مدرس باتجربه توسعه بدید؛ فصلهای اول این دوره کاملا رایگانه و همینطور این دوره چندین پشتیبان متخصص داره تا قدم به قدم راهنمای شما باشند؛ پس فرصت رو غنیمت بشمرید و یادگیری خودتون رو همین الان شروع کنید.