Programming

وبلاگ جامع برنامه نویسی

پیشنهاد ویژه

تمرین برنامه نویسی : مترجم آنلاین

  • ۲
تمرین برنامه نویسی :  مترجم آنلاین

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

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

 

نکته: سیستم داوری آنلاین از پایتون 3.4 استفاده می کند، در این نسخه دیکشنری ها ترتیب ورود اطلاعات به خود را به یاد نمی آورند و ممکن است در صورت مرتب سازی آنها به نتیجه مطلوب نرسید، برای رفع این مشکل به جای dict از OrderedDict استفاده کنید، این ساختار داده را می توانید از کتابخانه collections در برنامه وارد کنید.

 

ورودی نمونه:

5
hello salam
goodbye khodafez
say goftan
we ma
you shoma
we say goodbye to you tonight

 

خروجی نمونه:

ma goftan khodafez to shoma tonight

 

برای دانلود به ادامه مطلب مراجعه کنید.

پروژه هک از طریق Rainbow در پایتون

  • ۲
پروژه هک از طریق Rainbow در پایتون

از شما انتظار می رود در این دوره بتوانید پروژه هک را انجام دهید ؛ شما یک فایل csv در اختیار دارید که به دو بخش تقسیم شده است .

 

یک بخش از آن اسم و بخش دیگر یک hash از password است .

 

hash یک تابع یک طرفه است که براساس ورودی x خروجی y را می دهد. اما هیچ فرمول ریاضی وجود ندارد که بتوانید ازy  بهx  برسید .

 

کاربرد آن این است که شما یک چیزی را hash می کنید و بهy  می رسید  .

 

اگر یکی تابع x را هک کند، به password واقعی شما نمی رسد. ما تابع مختلفی برای hash داریم. هرکدام از تابع های hash به فرم خاصی کار می‌کند.

 

(به‌ عنوان نکته : همه ی پسورد ها 4 رقمی هستند و ارقام ‌می‌توانند اعداد 0 تا 9 باشند. همچنین ما می‌دانیم که از الگوریتم sha256  برای hash کردن استفاده شده است.)

 

پس انتظار می‌رود که بتوانید این فایل را باز کنید و اطلاعات فایل را جداسازی کرده و نام و پسورد مربوط به آن را مشخص کنید.

 

در واقع کافی است یک حلقه for بنویسید که مثلا از  0-9999 کار کند. هر دفعه عدد مورد نظر را با الگوریتم فوق رمزگذاری کند و یک رشته برمی‌گرداند و این رشته را رمزهای داده شده در فایل مقایسه کند و در صورت برابر بودن عدد نظیر این رشته را به عنوان رمز در خروجی ذخیره کند.

 

در این پروژه انتظار می رود با جستجو در وب بتوانید نحوه کار کردن با الگوریتم sha256 را یاد بگیرید.

 

به این روش هک کردن از طریق رنگین کمان ( Rainbow ) می‌‎گویند.

 

 

نمونه محتوای یک فایل csv:

danial,99b057c8e3461b97f8d6c461338cf664bc84706b9cc2812daaebf210ea1b9974

elham,85432a9890aa5071733459b423ab2aff9f085f56ddfdb26c8fae0c2a04dce84c

 

خروجی تسک:

danial,5104

elham,9770

 

برای دانلود و خرید پروژه به ادامه مطلب مراجعه کنید

آخرین آموزش ها

آخرین پروژه ها

آخرین مقالات

آخرین سوالات دانشجویان