Programming

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

پیشنهاد ویژه

پروژه هک از طریق 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

 

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

چگونه در سال ۲۰۲۱ به یک توسعه دهنده موفق وب تبدیل شویم؟

  • ۲
چگونه در سال ۲۰۲۱ به یک توسعه دهنده موفق وب تبدیل شویم؟

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

 

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

توسعه وب چیست؟

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

توسعه دهنده وب چه کاری انجام می دهد؟

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

نکات کلی برای توسعه دهندگان وب

در اینجا به نکاتی پرداخته ایم که برای توسعه دهندگانی که در بخش های مختلف کار میکنند، مفید است، حالا چه شما یک توسعه دهنده فول استک باشید، چه در بخش های front-end و یا back-end کار میکنید.

۱. همیشه به روز باشید : مسیری که به عنوان توسعه دهنده وب انتخاب کرده اید چیزی است که مرتباً تغییر می کند. همانطور که تکنولوژی هر روز پیشرفت میکند، وب نیز روز به روز تغییر می کند. برای همراهی با این تغییرات می توانید مقالات و یا وبلاگ های مرتبط با حوزه کاری خود را دنبال کنید.

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

۳. اصول کلی برنامه نویسی را بیاموزید : این کارشامل بازبینی کدها، همکاری با سایر توسعه دهندگان، اصلاح مجدد و اظهارنظر درباره کدها، استفاده از روش های Clean Code ، حل مسئله و رفع اشکال و البته آزمایش کدهاست.

۴- یادگیری خود را مستند کنید : اگر می خواهید پیشرفت کنید، مستند سازی کاری است که باید مرتباً انجام دهید. روی هرچیزی که کار میکنید چه یک پروژه تمرینی باشد و یا یک پروژه واقعی، مستند سازی را فراموش نکنید. البته مستند سازی میتواند به اشکال مختلفی از جمله استفاده از رسانه های اجتماعی برای نمایش یا نوشتن یک مقاله ساده باشد. هنگام یادگیری یک موضوع خاص، موفقیت ها یا شکست های خود را بنویسید و یا آموخته های خود را به دیگران آموزش دهید.

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

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

۷- در یک رویداد شرکت کنید یا در آن سخنرانی کنید : اگر عاشق ملاقات با مردم هستید، حضور در رویدادها، وبینارها یا کنفرانس ها در سراسر جهان برای شما مفید خواهد بود. شما می توانید سخنران باشید یا فقط یک شرکت کننده باشید. این کار به شما اطلاعات ارزشمندی را منتقل خواهد کرد.

۸. برنامه نویسی جفتی : شما و دوستتان میتوانید روی یک پروژه باهم همکاری داشته باشید. این امر زمانی بسیار کارآمد می شود که شما همچنین نیاز به بازبینی کدها داشته باشد. از طرفی کسی که ضعیف تر است میتواند، موارد جدیدی را یاد بگیرد.

۹. هرگز تسلیم نشوید : وقتی چنین لیست عظیمی از اطلاعات را برای کدنویسی در وب دارید، ممکن است گاهی اوقات گیج شوید و یا امید خود را از دست دهید. اما شما باید هدف خود را بدانید و هرگز تسلیم نشوید. نیازی نیست که خودتان را دست کم بگیرید.

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


نکاتی برای توسعه دهندگان front-end

توسعه وب در بخش Front-end روشی است برای تولید فایل های HTML ،CSS و JavaScript برای یک وب سایت به طوری که کاربر بتواند آنها را مستقیماً ببیند و با آنها تعامل کند. در زیر نکاتی را برای توسعه دهندگان این بخش آورده ایم:

۱. پیش زمینه ای در مورد طراحی داشته باشید : شما به عنوان یک توسعه دهنده front-end، با طراحان محصول که رابط کاربری یک وب سایت را ایجاد می کنند، همکاری نزدیک خواهید داشت. داشتن کمی دانش در مورد شگردهای طراحی ضرری ندارد زیرا شما از برخی از بهترین اقدامات لازم برای ایجاد یک رابط کاربری زیبای وب مطلع خواهید شد.

۲. هرگز اصول اساسی را نادیده نگیرید : در هسته وب سایتی که ایجاد می کنید، سه فناوری مورد نیاز است:  HTML ،  CSS و  JavaScript . قبل از حرکت بیشتر باید در مورد این سه زبان بدانید زیرا نیازهای اصلی شما هستند. یادگیری این زبان ها کار چندان دشواری نیست.

۳.CSS را دست کم نگیرید!  اکثر مردم می گویند زبان CSS قدرت چندانی ندارد اما مطالب زیادی وجود دارد که باید در مورد آن بدانید! پس از یادگیری CSS میتوانید از فریمورک هایی مانند بوت استرپ برای راحت تر کردن کار خود استفاده کنید.

۴. فریمورکی متناسب با نیازهای خود انتخاب کنید : نیازی به جستجوی جدیدترین فریمورک موجود نیست. یکی را که شرکت شما با آن کار میکند، انتخاب کنید(مثلا آنگولار، ویو یا ری اکت). بسته به نیاز خود فریمورک مرتبط را مشخص کنید.

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

نکاتی برای توسعه دهندگان back-end

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

۱. یک زبان back-end را یاد بگیرید : در بخش backend شما با داده ها کار خواهید کرد. زبانهایی مانند PHP ، Python یا Go در این بخش مورد استفاده قرار میگیرند.

۲. در مورد پایگاه داده ها اطلاعات کسب کنید : شما باید حداقل دانش لازم در مورد نحوه کار با پایگاه داده ها را داشته باشید.

۳. فریمورک مورد نظر را انتخاب کنید : می توانید سراغ فریمورک های  Laravel ،  Express یا  Ruby on Rails بروید.

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

 

نکاتی که در بالا بیان شد، همگی به شما کمک میکنند به یک توسعه دهنده عالی در سال ۲۰۲۱ تبدیل شوید، امیدوارم این مقاله به شما کمک کرده باشد.

 

 

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

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

آخرین مقالات

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