پروژه ساخت پسورد رندوم در پایتون
در زمان یادگیری پایتون، نیاز است با انجام پروژههای تمرینی مختلف، دانش و آموختههای خود را تثبیت کنید. در گذشته تمرین ساخت ماشین حساب با پایتون را در آکادمی سبزلرن منتشر کردیم و اکنون، قصد توسعه یک پروژه کوچک با عنوان پروژه ساخت پسورد رندوم در پایتون را داریم. اگر دوره آموزش پروژه های کاربردی با پایتون را دیده باشید حتما علاقه مند به توسعه پروژه های متنوع هستید پس این مقاله مختص شماست.
در ادامه اگر قصد شما تنها دریافت سورس کد ساخت پسورد رندوم در پایتون است میتوانید از کد زیر استفاده کنید:
# فراخوانی ماژول های موردنیاز 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)
یا از طریق لینک دانلود فایل سورس کد ساخت پسورد تصادفی در پایتون را دریافت کنید؛ و اگر قصد دارید آموزش توسعه پروژه پسورد رندوم در پایتون را یاد بگیرید این مقاله مختص شماست.
اهداف پروژه برنامه تولید پسورد رندوم در پایتون
استفاده از رمز عبور قوی در سایتها و پلتفرمهای مختلف، یکی از موارد امنیتی است که از به خطر افتادن اطلاعات حساب جلوگیری میکند. پسوردهای قدرتمند، معمولا ترکیبی از اعداد و حروف کوچک و بزرگ هستند. همچنین متخصصان هک و امنیت پیشنهاد میکنند از علائم مختلف برای افزایش قدرت رمز عبور استفاده کنیم.
در این پروژه تمرینی، قصد ساخت برنامهای برای تولید پسورهای تصادفی با استفاده از پایتون داریم. این برنامه با دریافت تعداد کاراکترهای موردنیاز برای رمز عبور، یک رمز تصادفی قدرتمند با استفاده از اعداد، حروف انگلیسی کوچک و بزرگ و علائم خاص برای ما ایجاد میکند. این پروژه کوتاه و کاربردی را میتوانید به اشکال مختلف ویرایش و شخصیسازی کنید.
در ادامه، نحوه توسعه این پروژه را بررسی میکنیم.
ساخت برنامه تولید پسورد رندوم در پایتون
لطفا از مراحل زیر به عنوان یک راهنما استفاده کنید. در انتهای این راهنما، جدولی از ماژولها و ابزارهای کاربردی برای تغییر پروژه و شخصیسازی آن قرار داده شده که با استفاده از آنها، میتوانید پروژه ساخت پسورد تصادفی با پایتون را بسته به سلیقه خود، ویرایش کنید.
در قدم اول، باید ماژولهای موردنیاز را به پروژه اضافه کنیم.
- ماژول random
این ماژول دارای تابعی به نام ()random و البته توابعی دیگری است که اعداد و رشتههای شبه تصادفی موردنیاز ما را تولید میکنند.
- ماژول string
این ماژول حاوی ثابتهای مختلفی از نوع رشته است که با استفاده از آنها، کاراکترهای رمز عبور ساخته میشوند.
از آنجایی که این دو ماژول در کتابخانه استاندارد پایتون تعبیه شدهاند، میتوان به سادگی آنها را با استفاده از کد زیر فراخوانی و به پروژه اضافه کرد:
import random import string
در ادامه ثابتهایی که حاوی کاراکترهای موردنیاز برای ساخت پسورد تصادفی با پایتون هستند را به پروژه اضافه میکنیم.
اولین ثابت فراخوانی شده، ثابت string.punctuation است که حاوی علائم مختلف بوده و در افزایش قدرت پسورد تولید شده تاثیرگذار است. علائمی که درون این ثابت وجود دارند را میبینید:
special_characters = string.punctuation
علائم درون این ثابت:
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
دومین ثابت، string.digits است که کاراکترهای عددی را درون خود نگهداری میکند. درست است که اعداد مختلف درون این ثابت ذخیره شدهاند؛ اما نوع آنها رشته است و شامل همه اعداد 0 تا 9 میشود.
برای اضافه کردن این ثابت به پروژه، کد زیر را به پروژه اضافه کنید.
digits = string.digits
در انتها نیاز به فراخوانی حروف انگلیسی داریم. در این بخش، سه انتخاب برای ما وجود دارد. میتوانیم حروف انگلیسی کوچک نظیر abcdefgh را به صورت جداگانه با استفاده از ثابت string.ascii_lowercase مورداستفاده قرار دهیم یا همین کار را با حروف بزرگ نظیر ABCDEFGH و ثابت string.ascii_uppercase انجام دهیم! برای استفاده از همه حروف، میتوانیم ثابت string.ascii_letters را فراخوانی کنیم.
letters = string.ascii_letters
بهتر است توضیح کوتاهی درباره عبارت Ascii داشته باشیم. ascii یک استاندارد کدگذاری کاراکتر است که برای رایانهها استفاده میشود. هر کاراکتر، اعداد، حروف و نماد در سیستم اسکی، به عنوان یک عدد بین 0 تا 127 تعریف شده و برای تبدیل زبان انسان به ماشین در رایانهها مورداستفاده قرار میگیرد.
حالا همه ثابتها را درون یک متغیر قرار میدهیم.
pass_characters = letters + digits + special_characters
در ادامه، نیاز به دریافت تعداد کاراکترهای پسورد تصادفی از کاربر هستیم. به این منظور، یک متغیر از نوع عددی به نام pass_length ایجاد کرده و با استفاده از دستور input، ورودی آن را از کاربر دریافت میکنیم. درون دستور input میتوانید متنی برای راهنمایی کاربر بنویسید.
pass_length = int (input (":لطفا تعداد کاراکترهای رمز عبور را به عدد وارد کنید"))
تا اینجا تمام پیشنیازهایی که برای پروژه ساخت پسورد تصادفی در پایتون نیاز داشتیم را به پروژه اضافه کردیم. حالا نیاز به تعریف یک متغیر از نوع رشته برای نگهداری رمز تولید شده داریم.
password = ""
حالا با استفاده از یک حلقه، فرآیند تولید پسورد تصادفی در پایتون را تعریف میکنیم:
for i in range(pass_length): password += ''.join(random.choice(pass_characters))
فرآیندهای انجام شده در این کد عبارتند از:
- ابتدا یک حلقه for ایجاد میکنیم که در آن، مقدار تکرار آن برابر با عددی است که کاربر به عنوان طول رمز عبور وارد کرده است.
- در ادامه، متد ()choice را داریم. این متد به صورت تصادفی، یکی از کاراکترهای درون متغیر pass_characters را انتخاب میکند.
- سپس با استفاده از متد ()join کاراکتر انتخاب شده را به متغیر password اضافه میکنیم.
- از آنجایی که نمیخواهیم بین کاراکترهای رمز عبور فاصله وجود داشته باشد، جداکننده (” “) را هم مشخص میکنیم.
در انتها، با استفاده از دستور print مقدار password که شامل رمز نهایی ما است را چاپ میکنیم:
print(password)
حالا پروژه را اجرا میکنیم. در قدم اول، متن نوشته شده در دستور input به ما نمایش داده میشود که باید یک عدد را به عنوان ورودی به آن بدهیم. ما مقدار 10 را وارد کرده و دکمه enter را برای ثبت این مقدار وارد میکنیم. در ادامه، یک خروجی از کاراکترهای تصادفی به عنوان رمز عبور به ما نمایش داده میشود.
:لطفا تعداد کاراکترهای رمز عبور را به عدد وارد کنید 10 v+vd4G3G1f 8/?E?L?a4! ]]/\e"%;bv
هر بار که این کد را اجرا کنید، یک خروجی متفاوت دریافت میکنید. اگر طبق مراحل بالا پیش رفتهاید، کدی مشابه قطعه کد زیر خواهید داشت. برای راهنمایی بیشتر، هر بخش را با استفاده از کامنتها در پایتون جدا کردهایم.
سورس کد پروژه ساخت پسورد رندوم در پایتون :
# فراخوانی ماژول های موردنیاز 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)
البته به دلایلی، پیشنهاد میکنیم از رمزهای تولید شده به وسیله این برنامه در سایتها و پلتفرمهایی که امنیت، بخش حیاتی از آنها است، استفاده نکنید. در ادامه، راه حل این مشکل را برای شما شرح میدهیم.
چرا نباید رمزهای تولید شده با 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 کنید.
معرفی سایر متدها و دستورات کاربردی در این پروژه
در جدول زیر، برخی از متدها و توابعی که کمک میکنند کارکرد پروژه ساخت پسورد تصادفی با پایتون را بهبود ببخشید، آورده شده است. این متدها را از قصد در پروژه استفاده نکردیم و شما باید با استفاده از دانش و خلاقیت خود، از آنها استفاده کنید
متدها و توابع پیشنهادی | کاربرد |
string.ascii_lowercase | نوعی ثابت که حاوی حروف انگلیسی کوچک است |
string.ascii_uppercase | نوعی ثابت که حاوی حروف انگلیسی بزرگ است |
()shuffle | نوعی تابع برای برهم زدن ترتیب یک لیست، آرایه یا مقادیری در یک متغیر |
()any | نوعی تابع برای بررسی وجود یک آیتم در یک لیست، آرایه یا مقادیری در یک متغیر |
پایتون، ابزار همه فن حریف توسعه دهندگان آینده
زبان برنامهنویسی پایتون، ابزار قدرتمندی است که با تواناییهای فراوان و نهایت سادگی، به عنوان پلی برای تبدیل ایدههای مختلف به واقعیت عمل میکند. پروژهای که در این مطلب آن را توسعه دادیم، تنها چشمه کوچکی از تواناییهای این زبان برنامهنویسی بود. در صورت یادگیری پایتون میتوانید این پروژه را تا حد زیادی گسترش داده و امکانات جدیدی نظیر تعیین نوع رمز و کاراکترهای مورداستفاده، محدود کردن حداقل و حداکثر تعداد کاراکترهای یک پسورد، دکمه کپی پسورد، گرافیکی کردن پروژه و بسیاری موارد دیگر را به آن اضافه کنید.
چطور میتونم پروژههای حرفهایتر در پایتون توسعه بدم؟
برای یادگیری پروژههای حرفهایتر نمیشه فقط به مقالهها وابسطه بود، چون با بزرگتر شدن پروژه، پیچیدگیهای اون پروژه هم بیشتر میشه، اگه هدفتون ارتقا سطحتون باشه تا پروژههای بزرگتری انجام بدید یا اینکه حتی اعتبار کاریتون رو بالاتر ببرید، شما نیاز دارید که زیر نظر یک مدرس باتجربه آموزش ببینید، و کجا بهتر از سبزلرن؟ شما میتونید با شرکت در دوره آموزش پروژههای کاربردی با پایتون سبزلرن؛ چندین و چند پروژه مختلف رو زیر نظر یک مدرس باتجربه توسعه بدید؛ فصلهای اول این دوره کاملا رایگانه و همینطور این دوره چندین پشتیبان متخصص داره تا قدم به قدم راهنمای شما باشند؛ پس فرصت رو غنیمت بشمرید و یادگیری خودتون رو همین الان شروع کنید.
جالب بود
🙏❤️