تبدیل Base64 به JSON: چطور دادههای کوکی و نشست را امن دیکد کنیم
Digital Account Market
· آخرین بهروزرسانی:
یک رشته طولانی و ناخوانا از حرف و عدد دارید که قرار است دادههای کوکی یا نشست (سشن) را در خود داشته باشد، و برای خواندن واقعی آن به تبدیل Base64 به JSON نیاز دارید. شاید فروشنده، یک افزونه مرورگر یا پنل ایمپورت آن را به شما داده است و میخواهید پیش از دادن آن به ابزار دیگری، فیلدهایش را ببینید.
این راهنما نشان میدهد چطور یک رشته Base64 را تشخیص دهید، با یک ابزار رایگان آن را به JSON مرتب دیکد کنید، خطاهای رایج را رفع کنید و وقتی پنلی همین قالب را میخواهد، JSON را دوباره به Base64 برگردانید. همچنین درباره خصوصی نگه داشتن دادههای دیکدشده توضیح میدهد، چون مقادیر کوکی و توکن حساس هستند.
Base64 چیست و چرا کوکیها و توکنها را در آن بستهبندی میکنند
Base64 هر نوع دادهای را، حتی متنی با گیومه، آکولاد و حروف فارسی، فقط با ۶۴ نویسه امن مینویسد: A تا Z، a تا z، 0 تا 9 و دو نماد + و /. سیستمهایی که با علائم نگارشی خام یا خط جدید مشکل دارند هم میتوانند داده را جابهجا کنند، چون Base64 همهچیز را به متن ساده و قابلکپی تبدیل میکند.
به همین دلیل در عمل با رشته کوکی بهصورت Base64 روبهرو میشوید. ابزاری که داده نشست را بهشکل JSON خروجی میدهد ممکن است آن را در Base64 بپیچد تا از یک کادر متن، یک پارامتر URL یا یک پیام چت بدون آسیب عبور کند، و پنل ایمپورت نیز ممکن است هنگام ورود همان بستهبندی را انتظار داشته باشد.
نکته مهم این است که Base64 یک روش کدگذاری است، نه رمزنگاری. رمز عبور و کلیدی در کار نیست و هر کسی که رشته را دارد میتواند آن را به متن اصلی برگرداند. پس با این رشته طوری رفتار کنید که انگار خودِ داده است.
چطور رشته Base64 را تشخیص دهیم
پیش از دیکد کردن هر چیزی، مطمئن شوید واقعاً Base64 است. معمولاً سه بررسی سریع کافی است.
مجموعه نویسهها
رشته استاندارد Base64 فقط شامل حرف، رقم، + و / است. اگر دو نقطه، فاصله بین کلمات یا علامت @ میبینید، احتمالاً چیز دیگری است. سطرهای تحویل مثل username:password:email:email_password:auth_token متنی هستند که با دو نقطه جدا شدهاند و Base64 نیستند؛ هیچ دیکدری از آنها معنایی بیرون نمیآورد.
پدینگ
Base64 با گروههای چهارتایی کار میکند. وقتی داده گروه آخر را کامل نکند، یک یا دو علامت مساوی بهعنوان پدینگ اضافه میشود. رشتهای که به = یا == ختم میشود نشانه قویای است، اما رشتههای بدون علامت مساوی هم وقتی طولشان اتفاقاً جور باشد معتبرند، و بعضی ابزارها عمداً پدینگ را حذف میکنند.
شروع شناسا
شیء JSON با آکولاد و گیومه شروع میشود و این جفت همیشه به یک شکل کدگذاری میشود. رشتهای که با eyJ شروع شود تقریباً همیشه یک شیء JSON است، W3si معمولاً فهرستی از اشیا را نشان میدهد و WyJ فهرستی از مقادیر متنی را. اگر رشته شما اینطور شروع میشود، دیکد کردنش باید JSON بدهد.
مطمئن نیستید؟ یک نمونه را در ابزار تشخیص قالب بچسبانید. این ابزار الفبا، پدینگ و طول را بررسی میکند و میگوید متن شبیه Base64 است، شبیه JSON یا چیز دیگر.
تبدیل Base64 به JSON: دیکد با ابزار رایگان
ابزار تبدیل Base64 به JSON کل کار را درون مرورگر شما انجام میدهد و چیزی آپلود نمیشود، پس رشته روی دستگاه خودتان میماند.
- رشته Base64 را در کادر ورودی بچسبانید. اگر میخواهید ابتدا ببینید نتیجه درست چه شکلی است، دکمه مثال را بزنید.
- نتیجه فوراً نمایش داده میشود. اگر متن دیکدشده JSON معتبر باشد، با دو فاصله تورفتگی مرتب میشود تا فیلدهای تودرتو راحت دیده شوند.
- ساختار را بخوانید و سپس با دکمه کپی، JSON را ببرید.
ابزار پیش از دیکد کردن فاصلهها و خطهای جدید را حذف میکند و بایتها را بهصورت UTF-8 میخواند، بنابراین حروف فارسی و نویسههای دارای لهجه بهجای نمادهای درهمریخته درست نمایش داده میشوند. برای آزمایش، eyJ1c2VyIjoiaGVzYXAxIiwidG9rZW4iOiJhYmMxMjMifQ== را بچسبانید؛ شیئی با فیلد user و فیلد token میگیرید.
اگر متن دیکدشده خواناست اما JSON نیست، ابزار آن را بهصورت متن ساده نشان میدهد و نتیجه را دور نمیاندازد. این برای یک توکن تنها رایج است و باز هم دیکد موفقی محسوب میشود.
رفع خطاهای دیکد: پدینگ، خط جدید و نسخه URL-safe
وقتی دیکد شکست میخورد، علت تقریباً همیشه یکی از اینهاست.
پدینگ گمشده
رشته بریده شده یا علامتهای مساویاش حذف شده است. eyJpZCI6MX0= را با eyJpZCI6MTIzfQ== مقایسه کنید: اولی یک علامت مساوی لازم دارد و دومی دو تا. آنقدر = اضافه کنید که طول بر چهار بخشپذیر شود. استثنا رشتهای است که طولش بر چهار تقسیم شود و باقیمانده یک بماند: هیچ پدینگی آن را درست نمیکند، چون هنگام کپی چند نویسه از دست رفته و باید دوباره از نسخه اصلی کپی بگیرید.
خط جدید و فاصلههای اضافی
برنامههای ایمیل، اپهای پیامرسان و فایلهای متنی اغلب رشتههای بلند را در چند خط میشکنند. این شکستها جزو داده نیستند. ابزار ما آنها را برایتان برمیدارد، اما دیکدرهای دیگر شاید این کار را نکنند.
نسخه URL-safe
رشتههایی که برای آدرس وب ساخته شدهاند، برای اینکه درون لینک سالم بمانند، + را با - و / را با _ عوض میکنند و دیکدر استاندارد این دو نویسه را نمیپذیرد. هر - را به + و هر _ را به / تبدیل کنید، پدینگ را برگردانید و دوباره دیکد کنید.
سطرهای حساب که اشتباهی چسبانده شدهاند
اگر سطرهایی از داده تحویل را که با دو نقطه جدا شدهاند چسباندهاید، ابزار اعلام میکند که شبیه فهرست حسابهاست. این متن دیکدر نمیخواهد، جداکننده ستون میخواهد. برای بیرون کشیدن فیلدهای موردنیاز از ابزار تقسیم با جداکننده استفاده کنید.
تبدیل JSON به Base64: برگرداندن برای ابزارهایی که این قالب را میخواهند
بعضی پنلها و ابزارهای ایمپورت داده نشست را بهجای JSON خام بهصورت Base64 میخواهند. این جهت را ابزار تبدیل JSON به Base64 انجام میدهد. JSON خود را بچسبانید، خروجی فشرده تکخطی یا خروجی خوانا با تورفتگی را انتخاب کنید و نتیجه را کپی کنید. حالت فشرده برای بیشتر ایمپورتها پیشفرض بهتری است، چون کوتاهترین رشته را میدهد.
ابزار نخست JSON شما را اعتبارسنجی میکند؛ پس کاما از قلمافتاده یا آکولاد بستهنشده پیش از کدگذاری یک بار داده خراب گرفته میشود. کدگذاری با UTF-8 انجام میشود و همین رفتوبرگشت را مطمئن میکند: رشتهای را دیکد کنید، یک فیلد را عوض کنید، دوباره کدگذاری کنید، و همه فیلدهای دیگر دقیقاً همانطور که بودند برمیگردند.
اگر کوکیهای شما در یک فایل متنی با قالب Netscape است، با ابزار کوکی Netscape تبدیلشان کنید و راهنمای ما درباره تبدیل کوکیهای Netscape به JSON را دنبال کنید. اگر با auth_token کار میکنید، مطلب ورود به Twitter با auth_token را ببینید.
دادههای دیکدشده را خصوصی نگه دارید
دادههای کوکی و نشستِ دیکدشده ممکن است توکنهایی داشته باشند که مثل کلید حساب عمل میکنند، پس چند عادت ارزش دارد.
- محلی کار کنید. ابزار مبتنی بر مرورگر که ورودی شما را آپلود نمیکند، از هر سایت دلبخواهی که متن شما را به سروری بفرستد که نمیتوانید بررسی کنید، مناسبتر است.
- مقادیر دیکدشده را در چت عمومی، تیکت یا اسکرینشات نچسبانید. هنگام درخواست کمک فقط نام فیلدها را بگذارید.
- رشته اصلی را دستنخورده نگه دارید، یک کپی را دیکد کنید و پس از پایان کار فایلهای کاری را پاک کنید.
برای تبدیلهای ساده و تکراری مثل اینها معمولاً یک مبدل محلی کافی است. مطلب ما درباره زمانی که مبدل محلی قالب کافی است توضیح میدهد چطور تصمیم بگیرید. وقتی آماده انتخاب حساب شدید، دسته حسابهای قدیمی را ببینید و برای هرچه بین تحویل و ورود لازم دارید از صفحه ابزارها بهصورت رایگان استفاده کنید.
پرسشهای متداول
از کجا بفهمم رشتهای Base64 است؟
سه چیز را بررسی کنید: فقط حرف، رقم، + و / دارد، طولش با گروههای چهارتایی و پدینگ اختیاری = جور است، و اگر شیء JSON باشد اغلب با eyJ شروع میشود. ابزار تشخیص قالب این بررسی را خودکار انجام میدهد.
چرا Base64 من بعد از دیکد به نویسههای ناخوانا تبدیل میشود؟
یا داده از اول متن نبوده، مثلاً تصویر یا محتوای فشرده بوده، یا از مجموعه نویسه دیگری استفاده کرده است. اگر رشته نسخه URL-safe باشد و پیش از دیکد تبدیل نشده باشد هم خروجی درهم میشود.
علامت مساوی آخر رشته یعنی چه؟
پدینگ است. Base64 در بلوکهای چهارنویسهای کدگذاری میکند و یک یا دو علامت مساوی بلوک آخر را وقتی داده کم باشد پر میکند. خودِ آنها اطلاعاتی در خود ندارند.
آیا Base64 نوعی رمزنگاری است؟
نه. Base64 فقط شیوه نوشتن داده را عوض میکند و هر کسی بدون کلید میتواند آن را برگرداند. از رشته Base64 همانطور محافظت کنید که از داده خوانا محافظت میکردید.
چطور JSON را دوباره به Base64 برگردانم؟
JSON را در ابزار تبدیل JSON به Base64 بچسبانید، خروجی فشرده یا با تورفتگی را انتخاب کنید و نتیجه را کپی کنید. ابزار پیش از کدگذاری، JSON نامعتبر را گزارش میدهد.

