گیکی
گیکی
خواندن ۲ دقیقه·۹ ماه پیش

جوری پایتون بنویسید که آدمایی که کنجکاو نیستن و پیگیر نیستن نفهمن!

اونهمه کد توی یک خط
اونهمه کد توی یک خط


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

درواقع کد رو base64 کرده بود و بعدش با دستور exec، معمولی شده اونو اجرا میکرد.

در ادامه با من همراه باشید تا یک نمونه ساده تر رو بهتون نشون بدم.



بسیار خب.

اول از همه باید بدونیم چطور کار میکنه؟
بیاین با base64 کردن یک متن شروع کنیم(اگه راجب base64 نمیدونید خب برید بدونید!).

برای این کار از ماژول base64 پایتون به نحو زیر کمک میگیریم:

c2FsYW0=ونطور که مشاهده میکنید، salam شده
c2FsYW0=ونطور که مشاهده میکنید، salam شده

یک نکته ای بگم. حتما باید قبل کوتیشن، یدونه b بزارید.(چرا؟)

خب ادامه میدیم با معرفی یک دستور دیگه در پایتون

این شما و این exec

تاجایی که میدونم، میاد و دستورای پایتونی داخلشو که به صورت string هست، اجرا میکنه!

همونطور که میبینید استرینگ حاوی پرینت یک عبارت رو از طریق exec اجرا کردیم
همونطور که میبینید استرینگ حاوی پرینت یک عبارت رو از طریق exec اجرا کردیم

خب ادامه میدیم.

در بالا یاد گرفتیم چطور یک متن رو به base64 تبدیل کنیم. حالا وقتشه برعکسشو یاد بگیریم!

یک base64 تبدیل شد به یک متن
یک base64 تبدیل شد به یک متن

خب حالا بنظرم فهمیدید قراره چه اتفاقی رخ بده.

با ترکیب این دوتا مثلا میتونید یک برنامه بنویسید که دوتا عدد رو بگیره و باهم جمعشون کنه و نتیجه رو بگه.

کد های برنامه اصلی به این قراره:

print(int(input(&quotEnter first : &quot))+int(input(&quotEnter first : &quot)))

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

حالا وقت base64 کردن برناممونه:

دقت کنید کوتیشن اینکد کردن رو تریبل بزارید که با کوتیشن های داخل کد اشتباه نکنه که ببنده
دقت کنید کوتیشن اینکد کردن رو تریبل بزارید که با کوتیشن های داخل کد اشتباه نکنه که ببنده

خب حالا آخرین قدم رو انجام میدیم

خروجی رو کپی میکنیم. اون رو دیکُد میکنیم و بلافاصله اجرا میکنیم.

این هم پایان کار
این هم پایان کار

فقط یک نکته دیگه

کد شما لزوما نباید یک خطی باشه. بزارید یک مثال بزنم:

اینجا مثلا ی کد 3 خطی داریم
اینجا مثلا ی کد 3 خطی داریم

حالا میریم و base64 میکنیم:

و خروجی کد باز هم base64 هست.



خب این هم تموم شد.

محیطی که کد هامونو روش اجرا کردیم colab بود(حوصله بالا آوردن vs نبود).

میدونم بد توضیح دادم به همین علت اگه سوالی داشتید در قسمت کامنت ها آزاد باشید برای پرسیدنش :)


base ۶۴کدپایتونآموزش پایتونexec
یک کنجکاو و علاقه مند به علوم کامپیوتر از برنامه نویسی تا سخت افزار و شبکه و...
شاید از این پست‌ها خوشتان بیاید