+ को - से, / को _ से बदलता है और = पैडिंग को हटाता है (RFC 4648 §5)। यह कैसे काम करता है
Base64 डेटा को 64 प्रिंट करने योग्य ASCII वर्णों से दर्शाता है। प्रत्येक 3 इनपुट बाइट 4 वर्णों में बदल जाते हैं, इसीलिए परिणाम मूल से लगभग 33% अधिक जगह लेता है।
यह न एन्क्रिप्शन है न संपीड़न: यह एक प्रतिवर्ती एन्कोडिंग है जिसे कोई भी डिकोड कर सकता है। इसका उपयोग केवल टेक्स्ट के लिए बने माध्यमों से बाइनरी डेटा भेजने के लिए होता है।
URL-सेफ़ वैरिएंट (RFC 4648 §5) + और / के बजाय - और _ का उपयोग करता है, और = पैडिंग को छोड़ देता है, ताकि परिणाम को बिना एस्केप किए URL और फ़ाइल नामों में शामिल किया जा सके।
उदाहरण
Hello WorldSGVsbG8gV29ybGQ=CaféQ2Fmw6k=UTF-8 में गैर-ASCII वर्ण एक से अधिक बाइट लेते हैं, इसीलिए "é" दो बाइट जोड़ता है।>>>?estándar: Pj4+Pw== · URL-safe: Pj4-PwURL-सेफ़ वैरिएंट + और / को - और _ से बदल देता है, और = पैडिंग हटा देता है।उपयोग के मामले
- data URI के माध्यम से छवियों, फ़ॉन्ट या आइकनों को सीधे HTML/CSS में एम्बेड करना।
- ईमेल अटैचमेंट (MIME) या किसी JSON के भीतर बाइनरी डेटा भेजना।
- कुंजियों, प्रमाणपत्रों या टोकनों को पर्यावरण चर और कॉन्फ़िगरेशन फ़ाइलों में संग्रहीत करना।
- HTTP के Authorization: Basic हेडर के लिए क्रेडेंशियल एन्कोड करना।
अक्सर पूछे जाने वाले प्रश्न
क्या Base64 एक एन्क्रिप्शन विधि है?
नहीं। यह बिना कुंजी वाली प्रतिवर्ती एन्कोडिंग है: कोई भी इसे डिकोड कर सकता है। यह कोई सुरक्षा नहीं देती; डेटा की रक्षा के लिए उसे एन्क्रिप्ट करना पड़ता है।
परिणाम "=" पर क्यों समाप्त होता है?
"=" पैडिंग है, जो तब 4 वर्णों के ब्लॉक पूरा करने के लिए होती है जब इनपुट 3 बाइट का गुणज न हो। URL-सेफ़ वैरिएंट इसे छोड़ देता है।
URL-सेफ़ वैरिएंट कब उपयुक्त है?
जब मान किसी URL, फ़ाइल नाम या पहचानकर्ता में जाता है, क्योंकि + और / वर्णों का उन संदर्भों में विशेष अर्थ होता है।
एन्कोड किया गया टेक्स्ट मूल से लंबा क्यों होता है?
क्योंकि यह प्रत्येक 3 इनपुट बाइट के लिए 4 वर्णों का उपयोग करता है, इसलिए आकार लगभग 33% बढ़ जाता है।
क्या मेरा टेक्स्ट किसी सर्वर पर अपलोड होता है?
नहीं। एन्कोडिंग और डिकोडिंग पूरी तरह आपके ब्राउज़र में होती है।