برنامه نویسی و IT

الگوریتم های ساده ی رمزنگاری در پایتون

آشنایی با اصول رمزنگاری در پایتون

پایتون (Python) نام یک زبان برنامه‌نویسی است. به این معنی که ساختاری برای بیان ایده‌ها یا فرمان‌های برنامه‌نویس به ماشین می‌باشد. این نام از یک گروه کمدی بریتانیایی به نام Monty Python آمده است. گویدو ون روسوم (Guido van Rossum) خالق رمزنگاری پایتون در حین توسعه این زبان از اجراهای این گروه کمدی لذت می برد. ارجاعاتی هم از جریانات و اصطلاحات این گروه کمدی در نوشتن رمزنگار پایتون استفاده شده است. آخرین نسخه مربوط به دسامبر 2019 منتشر شده. در نسخه های پیش از 3.5 .py,.pyi,.pyc,.pyd,.pyo و پس از آن .pyw,.pyz اسم فایلی رمزنگاری در پایتون بوده است.

رمزنگاری در پایتون به صورت تفسیری، سطح بالا، چندمنظوره، شی گرا و بازتابی و متن باز است. چیزی فهمیدید؟ اصلا برنامه چی هست که نوشته میشه؟ تفسیری و سطح بالای متن باز بماند.

 

رمزنگاری در پایتون

 

برنامه‌نویسی در علم کامپیوتر به معنای فرایند تبدیل و سوق دادن فرمول حل یک مسئله یا الگوریتم محاسباتی به یک برنامه ی قابل اجرا (نرم‌افزار) تعریف می شود. زبان برنامه نویسی در واقع یک زبان صُوَری هستش که کلماتی را شامل می شود. حروفی که از یک الفبا گرفته شدند به صورت شکل ‌یافته ایی و طبق مجموعه ایی از قوانین این کلمات و زبان رو شکل داده اند.

زبان های کامپیوتری

مجموعه ای از قوانین که تولید کننده ی خروجی های متنوعی می باشد. زبان های کامپیوتری  برای به کاربستن و اجرای الگوریتم ها استفاده می شوندن. پس هرچی هست با دستورالعمل ها مواجه هستیم.

ما می خوایم بدانیم که این دستورالعمل ها چه چیزی هستند و مهم تر اینکه چطور تفسیری را می شود ارائه داد؟ این بستگی به هوشمندی برنامه نویس دارد.

رمزنگاری، حروف و کلمات در زبان انسانی و شعرسرایی ادبی را با برنامه نویس و کدهایی که می چیند و مجموعه هایی که ساخته می شوند را یکی می کند.

 

مقاله پییشنهادی : آموزش یادگیری ماشین لرنینگ با پایتون
آموزش یادگیری ماشین لرنینگ با پایتون

یادگیری ماشین

شاید بهترین راه برای توضیح یادگیری ماشین استفاده از یک مثال ساده باشد. فرض کنید شما میخواهید برنامه ایی بنویسید که به صورت خودکار یا اتوماتیک چیزی را در یک عکس تشخیص دهد. شما میخواهید برنامه ایی بنویسید که در یک عکس شی را تشخیص دهید. یادگیری ماشین معمولا از الگوی ورودی هایی که دریافت می کند به الگوریتمی برای تشخیص و اجرا می رسد.

آموزش رمزنگاری

یعنی شما میتوانید 1000 عکس A و 1000 عکس B را به یک الگوریتم یادگیری ماشین بدهید. به این ترتیب آن تفاوت بین A و B را به خوبی تشخیص می دهد. حال اگر به او یک تصویر جدید A یا B بدهید به خوبی قادر خواهد بود که آنها را شناسایی کند. رمزنگاری در پایتون و کتابخانه ی پیش نویس آن، کدها و الگوریتم هایی که در اختیار شما هستند، برای حل همین مسائل به ظاهر ساده به کار می روند تا پروژه های بزرگی که از طریق رمزنگاری در پایتون قابل طراحی هستند، راه اندازی کنیم.

شی گرایی و بازتاب آن در رمزنگار پایتون

خب پس منظور از اینکه رمزنگار در پایتون سطح بالا و تفسیری است را دریافتیم. یکی دیگر از اصطلاحاتی که با آن رمزنگار در پایتون تعریف شده است، شی گرا بودن آن است. شی گراها (Object-oriented) که با مخفف OCP شناخته میشوند در واقع یک پارادایم برنامه نویسی به حساب می آیند. همان طور که سطح بالا بودن و تفسیری ها یک پارادایم به حساب می امدند.

 

ویدیو پییشنهادی : آموزش پایتون جادی
آموزش پایتون جادی

پارادیم (Paradigm)

در اینجا روش دسته بندی زبان های برنامه نویسی بر اساس ویژگی های آن است. شی گراها بر اساس اشیا (Objects) کار می کنند. شی می تواند داده (data) یا کد (code) ها باشند.

در این دسته برنامه ها، داده ها و کدها تا حد امکان در قالبی به نام شی در کنار یکدیگر جمع بندی شدند و یک واحد(شی) را تشکیل میدهند که نسبت به محیط بیرون کپسوله (Encapsulation) می باشد. کپسوله یا مخفی سازی باعث می شود اشیا بدون آن که از چگونگی کارکرد یکدیگر اطلاعی داشته باشند با هم کار کنند.

آموزش رمزنگاری در پایتون

رمزنگاری در پایتون به همین شکل عمل می نماید. تکنیک برنامه نویسی شی گرا به مراتب کارا و پیچیده تر از سبک برنامه نویسی مبتنی بر تابع است.

بازتابی(reflection)

رمزنگاری یک قابلیت دارد که به شکل یک فرایند عمل می نماید. فرایندی برای آزمودن، تشخیص نوع یا خصوصیات یک شی در حین اجرا و همچنین اصلاح (modify) ساختار و رفتار خود شی. این یعنی رمزنگاری در پایتون بازتابی محسوب می شود.

دلیل محبوبیت رمزنگار پایتون

رمزنگاری در پایتون رایگان است و قابل توجه تر اینکه رمزنگار در پایتون کتابخانه ای از تفسیرهای استاندارد و از پیش نوشته شده، برای کاربرهای خود دارد که به صورت به روز در دسترس همگان قرار دارند. ما می توانیم تفسیرهای استانداردی را به کتابخانه کتابخانه ی رمزنگار پایتون اهدا نمایید. این برای برنامه نویس های دیگه به صرفه در می آید.  همچنین در صرف هزینه های زمانی و مالی کمک شایانی خواهد کرد.

 

ویدیو پییشنهادی : آموزش پایتون مقدماتی
آموزش پایتون مقدماتی

کتابخانه ی رمزنگار پایتون

در واقع خیلی از مسیرهایی که باید رفت به صورت پیش فرض در کتابخانه ی رمزنگار پایتون قابل دریافت هست. رمزنگاری در پایتون شگفت انگیز به نظر میاد. کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شدند و در مقابل کتابخانه‌ هایی که در اختیار کاربر هستند، بسیار وسیع است. رمزنگاری در پایتون خصوصا در بین کسانی که به تازگی می خواهند برنامه نویسی رو آغاز کنند، بسیار محبوب است.

 

کتابخانه ی رمزنگار پایتون

 

به سطح بالا برگردیم، تاکیده شده است: “هیچ پاسخ درست یا غلطی وجود ندارد” یعنی اینکه الزاما رمزنگار پایتون زبان خوبی برای شروع نیست. اگر حوزه ایی که دنبال می کنید با این زبان نمی خونه، یا علاقه ی شخصی به این زبان ندارید، باید زبان های دیگر را برای شروع امتحان کرد.

رمزنگاری در پایتون سطح بالا(high level) می باشد

رمزنگاری در پایتون یک سطح که بر اساس مقدار انتزاعی که دارد و نسبت به سطح دیگر در یک قیاس، سطح بالا خوانده می شود. همین زبان در قیاس با زبان انسانی سطح پایین( low level) است. هرچند با این سطح پایین می تواند برنامه هایی تولید کند که زبان انسان توانایی آن را ندارد. پس بحث بر سر کاربرد یک زبان است، وگرنه زبان سطح بالا از سطح پایین برتر نیست.

 

مقاله پییشنهادی : داده کاوی با پایتون چیست
داده کاوی با پایتون چیست

 

هرقدر یک زبان از «زبان ماشین» دورتر باشد، سطح بالاتر خوانده می شود. زبان سطح بالا به مفسر و مترجم نیاز دارد. همچنین مفهومی دیگر به نام کمپایل (compile) می باشد. کمپایل یک زبان کامپیوتری را به زبان کامپیوتری دیگر تبدیل می کند.

 

رمزنگاری در پایتون سطح بالا(high level) می باشد

کمپایلرها باید بتوانند دستورالعمل های معتبر برنامه ی منبع رو بخوانند و یک همتا در برنامه ی هدف ایجاد کنند. اما مترجم یک زبان را به زبان های متعددی انتقال میدهد. برای ترجمه به یک برنامه دیگه نیاز داریم تا اینها رو بخواند و اجرا کند.

زبان های دیگری مثل پرل (perl)، روبی (Ruby) و متلب (MATLAB) نمونه هایی از این دسته از برنامه ها هستند که تفسیری-ترجمه ای می باشند.

رمزنگار در پایتون یکی از این زبان های برنامه نویسی سطح بالا است که کاربردهای بخصوصی را دنبال می کند رمزنگاری در پایتون با اینکه سطح بالا است اما این موضوع برای شروع است که بابت خوانا بودن کدهای نوشته شده و کدهای پیش نویس آن است. اما برای اینکه با رمزنگاری در پایتون بتوانید یه برنامه ی کاربردی و به روز تهیه کنید نیاز به دانش و تجربه دارید.

 

مقاله پییشنهادی : برنامه نویسی اندروید با پایتون
برنامه نویسی اندروید با پایتون

کاربرد رمزنگار پایتون و بازار کار

کاربرد رمزنگاری در پایتون در اسکریپت‌ نویسی (برای استفاده در سرورها)، ساخت برنامه‌ های تحت وب، تحلیل داده، بازی های کامپیوتری و هوش مصنوعی از جمله ی کاربردهای رمزنگار پایتون به حساب می آید. با توجه به در حال توسعه بودن ایران، رمزنگاری می تواند بازار کار بسیار مناسبی برای علاقه مندان به این حوزه به شمار آید.

شرکت های نرم افزاری معتبری که از پایتون استفاده کردن متعدد هستند. البته به این معنی نیست که تماما با همین رمزنگار نوشته شداست، اما از ان بهره گرفته شده است. برخی از اونها:

  • گوگل
  • اینستاگرام
  • فیسبوک
  • دراپ‌باکس‌
  • اسپاتیفای
  • پینترست

 

کاربرد رمزنگار پایتون و بازار کار

 

بیش ترین سهم حوزه ها در استفاده از رمزنگار پایتون، دانشگاه(آکادمیک)، الکترونیک و دولت ها بیشترین سهم را دارند

چگونه یک برنامه بنویسیم

برای شروع رمزنگاری در پایتون در ابتدا پایتون را روی نسخه سیستم عامل خود نصب کنید. معمولا با جستجو در گوگل به آموزش های گام به گام در این زمینه خواهید رسید و وبسایت پایتون به صورت رایگان در اختیار کاربر قرار داده است. اما پیش از نصب بدانید که بر روی برخی نسخه ها این برنامه به صورت پیش فرض نصب می شود، مثل مک و لینوکس.

 

مقاله پییشنهادی : دانستنی های هک با پایتون
دانستنی های هک با پایتون

 

برای سیستم عامل ویندوز دکمه ی Start را بزنید و Cmd را تایپ کنید تا command prompt باز بشه. توی همون پنجره python را تایپ کنید. اگر مطابق تصویر نسخه ای از پایتون را نصب داشته باشید پیغام مشابهی خواهید دید.

پیش از آغاز به یادگیری رمزنگاری در پایتون ممکن است خواسته باشید بدونید کدام محیط یکپارچه توسعه نرم افزار(IDE) و ویرایش گرهای متنی را انتخاب کنید تا ویرایش در پایتون را برای شما آسان کند و جستجو میان کتاب های مقدماتی و یا نظر انداختن بین نمونه کدهایی را فراهم کند که ممکن است برای پروژه ی رمزنگاری در پایتون شما کارساز باشند.

 

چگونه یک برنامه بنویسیم

 

برای یادگیری رمزنگاری در پایتون همه چیز در وبسایت پایتون مهیا است. حتی می توانید ویدیوهای آموزشی با زیرنویس پیدا کنید که برای تجربه ی رمزنگاری در پایتون قابل استفاده هستند.

PyCham

علاوه بر این رمزنگاری در پایتون تفسیری است و باید برنامه ویرایشگر (IDE) را هم انتخاب کنید. محیط های توسعه یا همان (IDE) بسیار متنوع و زیادی وجود دارند. اولین عامل محدویت کننده برای انتخاب زبان برنامه نویسی می باشد. در اینجا رمزنگاری در پایتون زبان مورد نظر ما می باشد، پس باید مطابق با آن محیط توسعه و ویرایشی خودمان را انتخاب کنیم. معروف ترین اون ها PyCham است.

برای شروع خودتان رو گیج نکنید و اجازه بدید مغز شما کم کم تفاوت ها رو تشخیص بدهد. رمزنگاری در پایتون وسعت زیادی دارد و باید گام به گام پیش برید. رمزنگار پایتون همچنین بخاطر خدمات وسیع رایگانش شناخته شده است.

 

PyCham

 

پس از دانلود و نصب بر نسخه ویندوز به command prompt رفته و python را تایپ کنید. در صورت شروع مطابق با عکس پیغامی دریافت می کنید. یکی از ساده ترین دستورات در پایتون دستور print است. جلوی فلش ها تایپ می کنیم:

خط اول(دایره) دستوری است که ما می دهیم. برنامه اجرا می کند و دستور ما پرینت می شود.

اما این اجرا بیهوده است. پس سراغ محیط توسعه ایی می رویم. ویژوال استودیو یک text editor هستش که میشه کدهای پایتون رو اون تو اجرا کرد. در نهایت با PyCham بهتره آشنا بشید.

 

مقاله پییشنهادی : آموزش PyQt در پایتون
آموزش PyQt در پایتون

رایگان بودن فضای آموزشی

خوبی رمزنگاری در پایتون رایگان بودن فضای آموزشی آن است. منابع زیادی به زبان انگلیسی و فارسی میشه پیدا کرد. یکی از این منابع آموزش 19ساعته ی محمد اردوخانی است که می شود به صورت رایگان و با زبانی روان و ساده تا سطح پیشرفته دنبال کنید.

همچنین دوره ی 57!!! ساعته از جادی میرمیرانی قابل دریافت است که وب سایت مکتب خونه این آموزش را در دروره های خود دارد. میشود به شکل عملی و کاربردی با این زبان برنامه نویسی آشنا بشوید. مطالب بسیار بسیار گسترده ای در باره ی آموزش رمزنگار پایتون است که با چند کلیک می توانید به اون ها دسترسی پیدا کنید.

 

رمزنگاری در پایتون

 

کتاب هایی هم به صورت گام به گام اقدام به آموزش رمزنگار پایتون کرده اند. در واقع از این بابت هیچ مشکلی پیدا نخواهید کرد و مهم پیگیری خودتان به روشی هدفمند است تا رمزنگاری در پایتون را به مهارت خودتون تبدیل کنید.

اگر بخواهید برای رمزنگاری در پایتون حرفه ای بشوید بهتر اینه که مهارت های برنامه نویسی و دانش عمومی خودتوان را هم ارتقا دهید. داشتن مهارت در سر فصل های زیر، یکی از ارکان موفقیت در این زمینه به حساب می آید:

مقاله پییشنهادی : مفهوم کلاس در پایتون و ارتباط آن با شی گرایی
مفهوم کلاس در پایتون و ارتباط آن با شی گرایی

باید دانشی درباره ی:

  1. رمزنگار پایتون و تفاوت نسخه ها
  2. Web frameworkها
  3. Object-relational mappers
  4. Understand multi-process architecture
  5. Restful APIs
  6. توانایی ارتباطی بالا
  7. توانایی طراحی بالا داشته باشیم.

بهتر است دانشی در باره ی:

  • مهارت های توسعه گرهای Front-end
  • دیتابیس
  • سیستم های administration
  • اسکریپت نویسی
  • دیگر زبان های برنامه نویسی مثل جاوا یا C++ داشته باشیم.

رمزنگار پایتون

چقد طول میکشه رمزنگار پایتون رو یاد بگیرم؟

مدت زمان لازم برای یادگیری رمزنگاری در پایتون بسته به شرایط زیادی دارد. اینکه آیا اولین تجربه ی برنامه نویسی شما همین رمزنگاری در پایتون یا سابقه ی برنامه نویسی در رمزنگارهای دیگه ای مثل Java رو داشتید. اما یه یه تایم-تیبل بخوایم ترسیم کنیم:

 

مقاله پییشنهادی : آموزش علم داده (Data Science) با پایتون
آموزش علم داده (Data Science) با پایتون

 

  • برای syntax های اساسی مدت 2 تا 3 روز
  • برای functions، Modules، Exeptions ، File Handling و غیره به مدت 4 روز
  • برای Object Oriented Python 4 تا 5ر وز
  • برای یادگیری regular expression و data structure حدودا 2روز
  • برای یادگیری پایتون پیشرفته مثل GUI ، Network Programming، Python و mySQL Database، Socket Programming و غیره حدودا 6 روز
  •  برای یادگیری اساس Framework حدودا 2 روز

این یک برنامه زمانی برای شروع رمزنگار پایتون و نه استادی در آن است.

سعید هابطی

چند سالی میشه که در زمینه سئو و دیجیتال مارکتینگ در حال فعالیت هستم. به موسیقی و فلسفه علاقه ی خاصی دارم و بیشتر زمان رو صرف مطالعه و نوازندگی می کنم.

نوشته های مشابه

یک دیدگاه

  1. سلام یه فایلی پایتونی هست که رمزگذاری شده نمیدونم برای شکستنش راهی هست یا نه نمیدونم از کجا شروع کنم تازه زبون پایتون رو شروع کردم و میخام یاد بگیرم کمکم کنید ممنون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا