من علی برنامه نویس در حوضه وب هستم :)
انکد؟ دیکد؟ درهمسازی؟ رمزنگاری؟ ?
پیام ی نفر توی یک کانال تلگرام | منبعی که توی این پست ذکر شده
انکد؟ دیکد؟ درهمسازی؟ رمزنگاری؟ ?
اقا ینفر اومده پیوی سورس انکدشو داده بود قرار بود سورسشو دیکد کنم بعد سورسش اجرا نمیشه نمیگم چرا اجرا نمیشه میگه یه فایل txt داشت اونو حذف کردم اجرا نشه اینو دیکد کن/: بعد هیچی دیگ اومدم توضیحش بدم گفت نوبیو رفت خابید.
➕ انکریپت/دکریپت: به الگوریتمای رمزنگاری میگن که متن رو با یک کلید (یا دو کلید) ترکیب میکنن و بدون اون کلید هیچجوره نمیشه به متن اصلی دسترسی داشت. متنو با کلید ترکیب کنه میشه انکریپت با کلید بخاد متنو برگردونه میشه دکریپت.
➕ انکد/دیکد: الگوریتمایی که صرفا جهت هدف خاصی و تغییر نمایش متن ساخته شدن و هیچ هدف امنیتیو رمزنگاریی ندارن. مثلا base64 که از ascii به یه محدوده خاصی از حروف متنو تبدیل میکنه یا utf8 که برای لود کردن فونت های مخصوصش باید رو متن خام اعمال بشه یا اصن json_encode هم یه انکد دکده که ارایه و متنو تو پحپ بهم تبدیل میکنه.
➕ کامپایلر: کامپایلر مربوط به یک زبان وظیفه داره کدای اون زبانو به یه زبان سطح پایین تر یا کد ماشین تبدیل کنه و یکطرفس چون به هرحال زبان ها دقیقا خصوصیات یکسان ندارن ک. اگه بخایم از زبان کامپایل شده به زبان اصلی برگردونیم خوب هم کار سختیه هم خیلی از اطلاعات از دست میره.
➕ مفسر: مفسر یه زبان صرفا یه برنامس ک خودش کامپایل شده و برای اجرای کد های اون زبان استفاده میشه مثل این میمونه ک هربار برنامه رو کامپایل کنه و بخاد اجراش کنه.
➕ ترنسپایلر: اگه یه زبانیو به یه زبان دیگه تبدیل کنی میشه این حالت معمولا برای دوتا زبان اسکریپتی اینو بکار میبرن.
خوب حالا چرا اینارو گفتم میخام بگم درهم ساز چیه.
درهم ساز برای اینه که دسترسی به کدها سخت بشه و قابل خوندن نباشه. هیچوقت غیرممکن نیس اصلا جزو رمزنگاری حساب نمیشه چون واسه ادم قابل خوندن نباشه درنهایت واسه کامپیوتر ک باید قابل خوندن باشه باید حتما اجرا بشه دیگ درسته؟
➕ درهم سازی: کاری که روی یک زبان معمولا اسکریپت انجام میدن تا کدهاش به سختی قابل خوندن باشه. خوب مشخصا شما انکد دیکد لازم ندارید هزار بارم base64_encode استفاده کنید درنهایت فقط سرعت اجرا رو پایین میارین پس باید چیکار کنیم. به طور کلی معمول ترین راه کاری شبیه اتفاقیه که توی کامپایلر یا ترنسپایلر میافته. شما باید جای کدو عوض کنید کدارو به چیزای عجیب تغییر بدین مثلا جای
if(true)print "hello"
بنویسین
!![]||(base64_decode("\x63\x48\x4a\x70\x62\x6e\x52\x66\x63\x67\x3d\x3d"))(hex2bin("\x36\x38\x36\x35\x36\x63\x36\x63\x36\x66"));
کد همونه زبانم همونه. اجرا میشه همون کارو میکنه فقط انگار دیگه به اون سادگی قبلی نیستش.
این میشه اصلی ترین چیزی که باید برای یه درهم سازی خوب انجام بشه. بقیشم به کلک های کسی که درهمسازی میکنه بستگی داره.
یه درهم ساز بد هم میاد صد بار base64 میکنه که فقط سرعتو پایین میاره.
? حالا خطاب به دوست عزیزی که میگفت قابلیت اجرای سورس رو حذف کردم دیکدش کن. عزیزم وقتی سورس رو خراب کنی دیگه اجرا نشه دیگه درهم سازی نیس. اونو باید کرک کرد ببینی چیبوده ک نمیشه قطعا. معنی درهم سازیو انکدو انکریپتو باهم قاطی نکنین تشکر❤️
مطلبی دیگر از این انتشارات
خلاصه ای از شروع تا گرفتن اولین پروژه ام به عنوان یک برنامه نویس
مطلبی دیگر از این انتشارات
applecake.js یه کتابخونه ی باحال
مطلبی دیگر از این انتشارات
چرا طراحی سایت ریسپانسیو؟