ابزارهای کدگذاری
ابزارهایی برای کدگذاری و کدگشایی داده؛ Base64، کدگذاری URL و مبناهای عددی مثل دودویی و هگز، همه کاملاً در مرورگر شما.
کارهای سریع
با یک کلیک، ابزار از قبل برای همان کار تنظیمشده باز میشود.
ابزارهای کدگذاری آنلاین - Base64 و URL در مرورگر
کدگذاری، رمزنگاری نیست. چیزی را پنهان نمیکند و از چیزی محافظت نمیکند. کارش این است که دادهای را که چیزی را میشکند - کانالی که فقط متن حمل میکند، آدرسی که & را جداکننده میفهمد، یا سرآیند ایمیلی که قدیمیتر از یونیکد است - به نویسههایی تبدیل کند که سفر را زنده بمانند. ابزارهای این دسته این کار را در هر دو جهت و تماماً درون مرورگر شما انجام میدهند.
این تمایز ارزش صراحت دارد، چون رایجترین سوءتفاهم این حوزه است. Base64 را هر کسی میتواند بیدرنگ و بدون هیچ کلیدی برگرداند. رمز عبوری که به شکل Base64 ذخیره شده، رمز عبوری است که به شکل متن ساده ذخیره شده - فقط با یک قدم اضافه. اگر به محرمانگی نیاز دارید، به رمزنگاری نیاز دارید نه به کدگذاری.
این دسته شامل چیست
| ابزار | چه میکند | چه وقت به کارتان میآید |
|---|---|---|
| انکودر Base64 | متن و فایل را به Base64 و برعکس تبدیل میکند، از جمله گونهٔ امن برای URL | جاسازی یک تصویر در CSS، خواندن یک کلید API، یا عبور دادن داده باینری از میدانی که فقط متن میپذیرد |
| انکودر URL | آدرسها و مقادیر رشتهٔ پرسوجو را کدگذاری و رمزگشایی میکند | یک لینک سر اولین فاصله، اَمپرسند یا نویسهٔ غیرلاتین میشکند |
| مبدل مبنای اعداد | میان دودویی، هشتتایی، دهدهی، هگز و هر مبنا تا ۳۶ تبدیل میکند و متن را به بایت و برعکس برمیگرداند | مقداری در یک hex dump، یک ماسک بیتی یا یک مجوز فایل باید بهصورت عدد خوانده شود |
| کدگذار موجودیتهای HTML | متن را با موجودیتهای نامدار یا عددی برای HTML امن میکند و هر موجودیتی را به متن برمیگرداند | یک نمونهکد، نظر یک کاربر یا یک خروجی < یا & نشان میدهد، جایی که باید < یا & باشد |
Base64 واقعاً چه میکند
Base64 هر بار سه بایت - یعنی ۲۴ بیت - برمیدارد و آن را به چهار نویسه از الفبایی ۶۴ تایی بازنویسی میکند: A تا Z، a تا z، ۰ تا ۹، بهعلاوهٔ + و /. چون ۶۴ برابر ۲ به توان ۶ است، هر نویسهٔ خروجی دقیقاً شش بیت حمل میکند. وقتی ورودی بر سه بخشپذیر نباشد، خروجی با = پر میشود تا طول همیشه مضربی از چهار باشد.
نتیجهاش حساب است نه سلیقه: خروجی Base64 حدود ۳۳٪ بزرگتر از ورودی است. کدگذاری تصویری ۳۰۰ کیلوبایتی برای جاسازی در یک شیوهنامه، تقریباً ۴۰۰ کیلوبایت متن تولید میکند. این هزینهٔ واقعی است و همان دلیلی است که جاسازی برای آیکونهای کوچک میارزد و برای عکسها بهندرت.
نویسههای + و / داخل آدرس دردسرسازند، چون آنجا از پیش معنایی دارند. گونهٔ امن برای URL آنها را با - و _ جایگزین میکند و معمولاً پرکننده را هم حذف میکند. همین گونه است که توکنهای JSON Web از آن استفاده میکنند، و اشتباه گرفتن این دو با هم دلیل آن است که یک توکن گاهی در یک ابزار شکست میخورد و در دیگری کار میکند.
کدگذاری درصدی واقعاً چه میکند
یک آدرس دستور زبان دارد. ? رشتهٔ پرسوجو را آغاز میکند، & پارامترها را جدا میکند، = نام را به مقدار میچسباند، # قطعه را آغاز میکند، و فاصله اصلاً مجاز نیست. وقتی مقداری یکی از این نویسهها را داشته باشد، باید گریز داده شود وگرنه آدرس معنایی غیر از منظور شما پیدا میکند. کدگذاری درصدی نویسه را با % و بهدنبالش مقدار بایتش در مبنای شانزده جایگزین میکند: فاصله میشود %20، & میشود %26، و / میشود %2F.
متن غیر اَسکی بهصورت بایتهای UTF-8 کدگذاری میشود، یک %XX برای هر بایت. یک نویسهٔ فارسی یا ژاپنی معمولاً به سه گریز تبدیل میشود. به همین دلیل است که آدرسی حاوی یک عبارت جستوجو به خط غیرلاتین اینقدر بلندتر از خود عبارت به نظر میرسد.
دام اینجاست که بدانید کدام بخش از آدرس را کدگذاری میکنید. کدگذاری کل آدرس، :// و / آن را به گریز تبدیل و آدرس را نابود میکند. تقریباً همیشه میخواهید یک مقدار پارامتر را کدگذاری کنید و بعد آدرس را دور آن بسازید. انکودر URL هر دو را انجام میدهد، ولی انتخاب با شماست.
مبناهای عددی: کدگذاری زیر همهٔ کدگذاریهای دیگر
Base64 و کدگذاری درصدی هر دو روی بایتها کار میکنند، و بایتها معمولاً به هگز یا دودویی نوشته میشوند. مبدل مبنای اعداد مقداری را در هر مبنایی میخواند و بیدرنگ در مبناهای دیگر نشان میدهد، بدون محدودیت ۶۴ بیتی، و زبانهٔ «متن» آن بایتهای UTF-8 پشت یک رشته را نشان میدهد. این سریعترین راه برای دیدن این است که چرا é دو بایت میگیرد، چرا %C3%A9 شکل کدگذاریشدهٔ درصدی آن است و چرا 0xFF برابر ۲۵۵ است.
کجا با این کدگذاریها روبهرو میشوید
- Data URI - عبارت
data:image/png;base64,...تصویر را مستقیم در HTML یا CSS جاسازی میکند و یک درخواست صرفهجویی میشود. - احراز هویت پایهٔ HTTP - سرآیندش عیناً
Basicاست بههمراه Base64 عبارتکاربر:رمز. هر کسی که ببیندش میتواند برش گرداند، و به همین دلیل جایش فقط درون TLS است. - توکنهای JSON Web - سه بخش Base64 امن برای URL که با نقطه به هم وصل شدهاند. محتوایش بدون هیچ کلیدی خواندنی است.
- پیوستهای ایمیل - MIME از اوایل دههٔ ۱۹۹۰ داده باینری را بهصورت Base64 حمل میکند و هنوز هم میکند.
- رشتههای پرسوجو - هر عبارت جستوجو، مقصد تغییر مسیر یا مقدار فیلتری که فاصله یا نماد داشته باشد.
- فایلهای تنظیمات و اسرار - اسرار Kubernetes، کلیدهای حساب سرویس و گواهینامهها بهطور معمول به شکل Base64 نگهداری میشوند.
خطاهای رایج و علتشان
- کدگذاری دوباره. مقداری یک بار توسط کد شما و یک بار توسط فریمورک کدگذاری میشود و
%20به%2520تبدیل میگردد. اگر در آدرسی%25دیدید، چیزی علامت درصدی را کدگذاری کرده که خودش از قبل یک گریز بوده. - الفبای Base64 اشتباه. توکنی که رمزگشایی نمیشود معمولاً Base64 امن برای URL است که به رمزگشای استاندارد داده شده، یا برعکس.
- نبود پرکننده. بعضی تولیدکنندهها
=انتهایی را حذف میکنند. رمزگشاهای سختگیر نتیجه را رد میکنند، سهلگیرها بازسازیاش میکنند. - کدگذاری کل آدرس. طرح و مسیر گریز داده میشوند و لینک دیگر باز نمیشود.
- فرض امن بودن. Base64 در یک کوکی، یک سرآیند یا یک فایل تنظیمات، برای هر کسی که بتواند فایل را بخواند خواندنی است.
- علامت مثبت در رشتهٔ پرسوجو. در دادهٔ فرم،
+یعنی فاصله؛ در مسیر یعنی یک مثبت واقعی. یک نویسه، دو معنا.
چرا محلی بودن این پردازش اهمیت دارد
رشتههایی که مردم نیاز دارند کدگذاری و رمزگشایی کنند بهطور نامتناسبی حساساند: سرآیندهای مجوز، توکنهای نشست، کلیدهای حساب سرویس، آدرسهای امضاشده. چسباندن یکی از اینها در سایتی که سمت سرور پردازشش میکند، یعنی تحویل دادن یک اعتبارنامهٔ زنده به یک شخص ثالث. هر دو ابزار اینجا در مرورگر اجرا میشوند - ورودی هرگز از تب بیرون نمیرود و میتوانید در پنل شبکه راستیآزماییاش کنید.
دستههای مرتبط
- ابزارهای متن - همان JSON را که اغلب داخل یک محتوای کدگذاریشده نشسته، قالببندی و اعتبارسنجی کنید.
- ابزارهای توسعهدهنده - یک JWT را درست رمزگشایی کنید بهجای Base64 کردن دستی تکههایش، یا وقتی به اثر انگشت نیاز دارید نه به شکل برگشتپذیر، مقداری را هش کنید.
- تولیدکنندهها - همان شناسهها و اسراری را میسازند که بعداً کدگذاری میشوند.