Base64 प्रतिबंधित पाठ वर्णमाला का उपयोग करके बाइट्स का प्रतिनिधित्व है। यह तब उपयोगी होता है जब कोई ट्रांसपोर्ट टेक्स्ट स्वीकार करता है लेकिन पेलोड बाइनरी होता है। ऑपरेशन प्रतिवर्ती है: एक सही डिकोडर मूल बाइट्स को पुनर्प्राप्त करता है, जिसमें शून्य और मान शामिल हैं जो मान्य वर्ण नहीं हैं। उन बाइट्स की व्याख्या करने का तरीका चुनना एक अलग कदम है।
तीन बाइट्स चार अक्षर बन जाते हैं
एक बाइट में आठ बिट होते हैं। तीन बाइट्स 24 बिट्स की आपूर्ति करते हैं, जो समान रूप से छह के चार समूहों में विभाजित होते हैं। प्रत्येक समूह 64 वर्णमाला वर्णों में से एक का चयन करता है। मानक वर्णमाला में अपरकेस अक्षर, लोअरकेस अक्षर, अंक, प्लस और स्लैश शामिल हैं। ASCII टेक्स्ट के लिए Man, बाइट्स हैं 4d 61 6e हेक्साडेसिमल में, और एन्कोडेड आउटपुट है TWFu.
Input bytes: 01001101 01100001 01101110
Six-bit sets: 010011 010110 000101 101110
Indexes: 19 22 5 46
Output: T W F u
पैडिंग अंतिम समूह का वर्णन करता है
जब एक बाइट शेष रह जाती है, तो आउटपुट में दो वर्णमाला वर्ण और दो समान चिह्न होते हैं। शेष दो बाइट्स तीन वर्णमाला वर्ण और एक बराबर चिह्न उत्पन्न करते हैं। इस प्रकार M बन जाता है TQ==, जबकि Ma बन जाता है TWE=. पैडिंग एन्कोडिंग की संरचना का हिस्सा है; मनमाने बराबर चिह्न जोड़ने से खोया हुआ डेटा-वर्ण वापस नहीं मिलता। कैनोनिकल एन्कोडिंग में वर्णमाला के अंतिम वर्ण की अप्रयुक्त बिट्स भी शून्य होनी चाहिए।
के लिए n इनपुट बाइट्स के लिए पैडिंग सहित आउटपुट में होते हैं 4 × ceil(n / 3) वर्ण। इसलिए Data URI उपसर्ग या लाइन ब्रेक जोड़ने से पहले 1,024-बाइट फ़ाइल 1,368 वर्ण बनती है। Base64 संपीड़न नहीं करता, हालांकि परिवहन की अलग संपीड़न परत अंतिम स्थानांतरण आकार को कम कर सकती है।
व्याख्या करने से पहले सत्यापित करें
किसी परिभाषित प्रोटोकॉल के विरुद्ध निर्माता का परीक्षण करते समय सख्त मोड का उपयोग करें। संगतता मोड का उपयोग तब करें जब किसी ज्ञात स्रोत ने ASCII लाइन ब्रेक डाला हो, पैडिंग हटा दी हो, या डेटा URI रैपर शामिल किया हो। दर्ज किए गए समायोजनों की समीक्षा करें. अप्रत्याशित विराम चिह्न, मिश्रित अक्षर और गैर-शून्य अप्रयुक्त बिट्स जांच के लायक हैं, चुपचाप हटाने के नहीं।
अंत में, डिकोड किए गए बाइट्स का निरीक्षण करें। मान्य Base64 में अमान्य UTF-8 अनुक्रम, एक छोटी छवि, या अपूर्ण PDF हो सकता है। एक सफल डिकोड केवल एन्कोडिंग परत को सिद्ध करता है। बाइनरी परिणामों को बाइट्स के रूप में सहेजें और उनकी संरचना की जांच करने के लिए उपयुक्त फ़ाइल पार्सर का उपयोग करें। वर्णमाला, पैडिंग और कैनोनिकल-बिट नियम निर्दिष्ट हैं RFC 4648.