توضیح کدگذاری Base64

Base64 همه جا هست. شما آن را در CSS و توکن‌های JWT می‌بینید. بسیاری از توسعه‌دهندگان بدون دانستن نحوه عملکرد آن از آن استفاده می‌کنند.

Base64 داده‌های باینری را به یک رشته متنی تبدیل می‌کند. این روش از ۶۴ کاراکتر استفاده می‌کند. این کاراکترها شامل A-Z، a-z، 0-9، علامت مثبت (+) و اسلش (/) هستند. همچنین از علامت مساوی (=) برای پدینگ (padding) استفاده می‌کند.

Base64 رمزنگاری (encryption) نیست. این روش داده‌های باینری را برای کانال‌های متنی ایمن می‌کند.

نحوه عملکرد:

  • داده‌های باینری را به گروه‌های ۳ بایتی تقسیم کنید.
  • این گروه‌ها را به چهار بخش ۶ بیتی تقسیم کنید.
  • هر بخش را به یک کاراکتر Base64 نگاشت کنید.

مثال: کلمه Man به TWFu تبدیل می‌شود.

شما از Base64 برای موارد زیر استفاده می‌کنید:

  • پیوست‌های ایمیل.
  • جاسازی تصاویر در HTML.
  • توکن‌های JWT.
  • ارسال داده‌های باینری از طریق JSON.
  • احراز هویت Basic HTTP.

Javascript به صورت بومی (native) از این قابلیت پشتیبانی می‌کند. برای کدگذاری از btoa استفاده کنید. برای رمزگشایی از atob استفاده کنید.

Node.js برای فایل‌ها از data.toString('base64') استفاده می‌کند.

برخی سیستم‌ها از Base64url استفاده می‌کنند. این نسخه برای URLها ایمن است. در این نسخه، علامت مثبت با خط تیره (-) و اسلش (/) با آندرلاین (_) جایگزین می‌شود و پدینگ حذف می‌گردد.

این نکات را به خاطر بسپارید:

  • Base64 یک کدگذاری است، نه یک روش امنیتی.
  • حجم خروجی ۳۳ درصد بیشتر است.
  • از آن برای ارسال داده‌های باینری از طریق کانال‌های متنی استفاده کنید.
  • برای URLها از Base64url استفاده کنید.

منبع: https://dev.to/moksh/base64-encoding-explained-a-practical-guide-for-developers-49hh