Base64 उन जगहों पर बाइट्स ले जाने के लिए मौजूद है जो सिर्फ टेक्स्ट हैंडल करती हैं, इसीलिए यह डेटा URLs, मेल अटैचमेंट, JSON Web Tokens, और हर उस कॉन्फ़िगरेशन फ़ॉर्मेट में मिलता है जिसे एक पूरे डॉक्यूमेंट को एक ही स्ट्रिंग वैल्यू में रखना होता है।
बग जो ज़्यादातर ब्राउज़र Base64 टूल्स में होता है
ब्राउज़र का बिल्ट-इन btoa फंक्शन U+00FF से ऊपर के किसी भी कोड
पॉइंट को रिजेक्ट कर देता है। जैसे ही आपके JSON में एक्सेंट वाला
अक्षर, करेंसी सिंबल, या इमोजी आता है, btoa एरर फेंकता है, इसीलिए
इतने सारे तेज़ Base64 टूल्स असली दुनिया के टेक्स्ट के संपर्क में आते
ही टूट जाते हैं।
JSON to Base64 कनवर्टर का उपयोग करना
यह टूल पहले UTF-8 बाइट्स में एन्कोड करता है, जो हर दूसरी भाषा और हर सर्वर करता है, इसलिए रिजल्ट उसी डॉक्यूमेंट के लिए बैकएंड के प्रोडक्शन से मेल खाता है। एन्कोडिंग
{"name":"café","price":"₹500","clef":"𝄞"}
एक Base64 स्ट्रिंग प्रोड्यूस करता है जो ब्राउज़र के अपने स्टैंडर्ड
atob और TextDecoder के ज़रिए डीकोड होकर वापस मूल डॉक्यूमेंट पर
आता है: café, ₹500 और संगीत सिंबल 𝄞 सब बरकरार रहते हैं,
उस आखिरी कैरेक्टर सहित, जिसे JavaScript में एक सरोगेट पेयर और
UTF-8 में चार बाइट्स की ज़रूरत होती है।
तीन फेल्योर, अलग-अलग पहचानी गईं
डीकोडिंग तीन सच में अलग तरीकों से गलत हो सकती है, और उन सबको “अवैध इनपुट” में मिला देना छिपा देता है कि आप कौन सी देख रहे हैं:
- बिल्कुल Base64 नहीं है। Base64 वर्णमाला के बाहर का एक कैरेक्टर
सीधा नामित होता है:
This is not Base64: "!" is not a Base64 character, पोज़िशन के साथ। - वैलिड Base64, लेकिन बाइट्स टेक्स्ट नहीं हैं। स्ट्रिंग बाइट्स के रूप में ठीक से डीकोड होती है, लेकिन वे बाइट्स वैलिड UTF-8 नहीं हैं, जिसका मतलब आमतौर पर है कि आपके पास किसी बाइनरी फ़ाइल का Base64 है किसी डॉक्यूमेंट का नहीं।
- वैलिड टेक्स्ट, लेकिन JSON नहीं। Base64 एक स्ट्रिंग में परफेक्टली डीकोड हुआ, और वह स्ट्रिंग JSON डॉक्यूमेंट नहीं है, उसी तरह के मैसेज से रिपोर्ट किया जाता है जो फ़ॉर्मैटर और वैलिडेटर टूटे JSON के लिए देते हैं।
कौन से फ़ॉर्मेट स्वीकार करता है
डीकोडिंग data: URL प्रीफ़िक्स, Base64 टेक्स्ट के अंदर लाइन ब्रेक,
�र URL सेफ वर्णमाला को बर्दाश्त करता है जो + और / की जगह - और
_ का उपयोग करती है। ब्राउज़र के नेटवर्क टैब से कॉपी किए गए डेटा
URL को सीधे पेस्ट करें; प्रीफ़िक्स ऑटोमैटिकली हटा दिया जाता है।
क्या यह एन्क्रिप्शन है
नहीं। Base64 एक एन्कोडिंग है, सिफर नहीं। कोई भी इसे किसी भी लैंग्वेज में एक लाइन कोड से डीकोड कर सकता है, इसमें इसी टूल में दूसरी दिशा में पेस्ट करना भी शामिल है। यह बाइट्स को सिर्फ टेक्स्ट चैनल से सुरक्षित रूप से ले जाने के लिए है, उन्हें गुप्त रखने के लिए नहीं।