آیا Base64 رمزنگاری است؟+−
خیر. Base64 یک رمزگذاری است، نه رمزنگاری - هر کسی از جمله همین ابزار میتواند آن را بلافاصله بدون هیچ کلید یا رمز عبوری رمزگشایی کند. این فقط بازنمایی داده را تغییر میدهد تا بتواند با امنیت از سیستمهایی عبور کند که متن انتظار دارند، نه باینری. هرگز از آن برای پنهان کردن چیزی حساس استفاده نکنید.
چرا متن رمزگذاریشده با Base64 با علامتهای = پایان مییابد؟+−
Base64 در بلوکهای ۳ بایتی کار میکند که هر کدام به ۴ کاراکتر خروجی تبدیل میشوند. وقتی ورودی مضربی از ۳ بایت نباشد، کاراکترهای = آخرین بلوک را تا ۴ کاراکتر کامل پر میکنند. نسخه امن برای URL معمولاً این padding را حذف میکند، زیرا رمزگشاها معمولاً میتوانند آن را از طول رشته استنباط کنند.
تفاوت بین الفبای استاندارد و الفبای امن برای URL چیست؟+−
Base64 استاندارد از + و / بهعنوان دو تا از ۶۴ کاراکتر خود استفاده میکند، اما هر دوی اینها در یک URL معنای خاصی دارند (بهترتیب فاصله و جداکننده مسیر)، بنابراین یک رشته Base64 استاندارد ممکن است هنگام قرار گرفتن مستقیم در یک URL یا نام فایل خراب شود. نسخه امن برای URL این دو کاراکتر را با - و _ جایگزین میکند، به همین دلیل این قالبی است که در JWT و توکنهای مشابه استفاده میشود.
چرا رمزگشایی گاهی داده باینری بهجای متن نشان میدهد؟+−
Base64 میتواند هر بایتی را بهطور تحتاللفظی رمزگذاری کند، نه فقط متن - یک تصویر، یک فایل فونت، یک فایل اجرایی. وقتی بایتهای رمزگشاییشده متن UTF-8 معتبری تشکیل ندهند، این ابزار نمیتواند آنها را بهصورت رشتهای خوانا نمایش دهد، اما همچنان میتوانید آنها را بهصورت فایل دانلود کنید تا محتوای باینری اصلی را بازیابی کنید.
چرا خروجی رمزگذاریشده با Base64 حدود یکسوم بزرگتر از داده اصلی میشود؟+−
Base64 هر ۳ بایت ورودی را به ۴ کاراکتر خروجی تبدیل میکند، بنابراین چه یک قطعه متن را رمزگذاری کنید و چه یک فایل کامل را، نتیجه رمزگذاریشده همیشه حدود ۴/۳ برابر (حدود ۳۳٪) بزرگتر از منبع است. این افزایش حجم، هزینهی نمایش دادههای باینری دلخواه تنها با ۶۴ کاراکتر قابل چاپ است - این طبیعی است و به این معنا نیست که مشکلی پیش آمده.
آیا باید پیش از رمزگشایی یک رشته Base64 امن برای URL، گزینه «الفبای امن برای URL» را فعال کنم؟+−
خیر - رمزگشایی همیشه کار میکند، چه رشته از الفبای استاندارد استفاده کند و چه از الفبای امن برای URL. در پشت صحنه، این ابزار بهطور خودکار - و _ را دوباره به + و / تبدیل میکند و هر padding از دسترفته = را خودش بازمیسازد، بنابراین میتوانید هر یک از این دو نسخه را مستقیماً در حالت رمزگشایی جایگذاری کنید. این چکباکس فقط هنگام رمزگذاری اهمیت دارد، چون تعیین میکند خروجی از کدام الفبا استفاده کند.