Base64 तीन बाइट के समूह को चार अक्षरों में बदलता है। आखिरी समूह अधूरा हो तो = उसे भरता है। यह पैडिंग है, मूल टेक्स्ट का अक्षर नहीं।
अक्षर नहीं, बाइट गिनें
एक बचा बाइट ==, दो बाइट = और तीन बाइट कोई पैडिंग नहीं माँगते। f का Zg==, fo का Zm8= और foo का Zm9v होता है। UTF-8 बाइट गिनें: हिंदी अक्षर या इमोजी एक से ज्यादा बाइट ले सकते हैं।
गायब पैडिंग लौटाएँ
स्पेस हटाने के बाद लंबाई को 4 से भाग देने पर शेष 2 हो तो == और 3 हो तो = जोड़ा जा सकता है। शेष 1 वाली लंबाई पूर्ण Base64 डेटा के लिए संभव नहीं है; केवल = जोड़ना समाधान नहीं। अक्षर और प्रोटोकॉल भी जाँचें।
गायब और गलत पैडिंग में अंतर
Decodex Zg और Zg== स्वीकार करता है, लेकिन अधूरी मौजूद पैडिंग के कारण Zg= अस्वीकार करता है। A=AA और Zg=== भी अस्वीकार होते हैं। खराब डेटा छिपाने के लिए मनमाने अक्षर न हटाएँ। कुछ प्रोटोकॉल पूरी पैडिंग चाहते हैं, कुछ उसे हटाते हैं।
यह उदाहरण बदलें
| टेक्स्ट | UTF-8 bytes | Base64 | पैडिंग |
|---|---|---|---|
f | 1 | Zg== | == |
fo | 2 | Zm8= | = |
foo | 3 | Zm9v | — |
अक्सर पूछे जाने वाले प्रश्न
क्या बिना = की स्ट्रिंग हमेशा गलत है?
नहीं। बाइट की संख्या तीन का गुणज हो तो पैडिंग जरूरी नहीं। कुछ प्रोटोकॉल उसे स्पष्ट रूप से हटाते भी हैं।
