الگوریتم Base64 Encoding چیست و چگونه کار می کند؟

الگوریتم Base64 Encoding چیست و چگونه کار می کند؟

Base64 شناخته شده ترین و معروف ترین روش کدگذاری کردن، برای تبدیل داده های باینری به ASCII و نمایش آن هاست. اما چرا ما از base64 استفاده می کنیم؟ الگوریتم کدگذاری کردن base64 چیست و دقیقا چگونه کار می کند؟

کدگذاری base64
Base64

چرا ما از base64 استفاده می کنیم؟

به این دلیل که بسیاری از سیستم ها، داده های باینری را آن گونه که باید نمایش نمی دهند، ما از base64 استفاده می کنیم. سیستم هایی که بر مبنای متن پایه گذاری شده اند، از این دسته اند. برای مثال در ابتدای کار mail، پروتکلی برای ارسال فایل به همراه ایمیل نبود و باید داده های باینری به متن تبدیل و سپس ارسال می شدند. یکی از گزینه های محبوب برای رفع این مشکل استفاده از base64 است.

شیوه ی base64 کدگذاری کردن

بگذارید الگوریتم کدگذاری کردن را با یک مثال یاد بگیریم. کلمه ی sokanacademy را در نظر می گیریم. هر کاراکتر یک نمایش باینری هشت بیتی دارد. در شکل زیر ما نمایش باینری هر کدام از حرف های آن را نشان داده ایم.

نمایش باینری کلمه ی sokanacademy
نمایش باینری sokanacademy

برای مثال حرف s مقداری برابر ۱۱۵ در جدول ASCII (بر مبنای ۱۰) دارد، که نمایش باینری آن به صورت 01110011 است.

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

نمایش باینری حروف sokanacademy را به صورت شش تایی گروه بندی می کنیم.
نمایش باینری 6 تایی

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

تبدیل نمایش باینری شش بیتی به مبنای ۱۰ بر اساس جدول base64
تبدیل کد باینری sokanacademy به مبنای 10

حال می توانیم با استفاده از جدول base64 این اعداد را ترجمه کنیم و به base64 کدگذاری شده ی sokanacademy برسیم. جدول base64 به صورت زیر است.

جدول base64

با استفاده از جدول بالا به عبارت c29rYW5hY2FkZW15 می رسیم که مقدار base64 کدگذاری شده ی sokanacademy است.

کدگذاری base64 برای کلمه ی sokanacademy که معادل می شود با c29rYW5hY2FkZW15
کد باینری sokanacademy

نکته های پایانی

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

همچنین به صورت قراردادی، تعداد کاراکتر نتیجه باید مضربی از ۴ باشد. به این منظور اگر برای مثال، نتیجه ی ما ۳ کاراکتر دارد به انتهای این رشته کاراکتر یک = اضافه می کنیم تا ۴ کاراکتر شود.

 

امیدوارم که این مقاله براتون مفید بوده باشد و سوال ها و نظرهایتان را در قسمت نظرات زیر این مقاله با من در میان بگذارید. همچنین می توانید برای تمرین، کلمه ی laravel را base64 کدگذاری کنید و در قسمت کامنت ها بنویسید.

 

نظرات
اگر login نکردی برامون ایمیلت رو بنویس: