Decodex

DECODEX · BASE64 · UTF-8

Base64 में = और == क्यों होते हैं? पैडिंग समझें

Base64 पैडिंग, अमान्य लंबाई और Zg, Zg= तथा Zg== के अंतर को उदाहरणों से समझें।

Base64 तीन बाइट के समूह को चार अक्षरों में बदलता है। आखिरी समूह अधूरा हो तो = उसे भरता है। यह पैडिंग है, मूल टेक्स्ट का अक्षर नहीं।

अक्षर नहीं, बाइट गिनें

एक बचा बाइट ==, दो बाइट = और तीन बाइट कोई पैडिंग नहीं माँगते। f का Zg==, fo का Zm8= और foo का Zm9v होता है। UTF-8 बाइट गिनें: हिंदी अक्षर या इमोजी एक से ज्यादा बाइट ले सकते हैं।

गायब पैडिंग लौटाएँ

स्पेस हटाने के बाद लंबाई को 4 से भाग देने पर शेष 2 हो तो == और 3 हो तो = जोड़ा जा सकता है। शेष 1 वाली लंबाई पूर्ण Base64 डेटा के लिए संभव नहीं है; केवल = जोड़ना समाधान नहीं। अक्षर और प्रोटोकॉल भी जाँचें।

गायब और गलत पैडिंग में अंतर

Decodex Zg और Zg== स्वीकार करता है, लेकिन अधूरी मौजूद पैडिंग के कारण Zg= अस्वीकार करता है। A=AA और Zg=== भी अस्वीकार होते हैं। खराब डेटा छिपाने के लिए मनमाने अक्षर न हटाएँ। कुछ प्रोटोकॉल पूरी पैडिंग चाहते हैं, कुछ उसे हटाते हैं।

यह उदाहरण बदलें

टेक्स्टUTF-8 bytesBase64पैडिंग
f1Zg====
fo2Zm8==
foo3Zm9v—

यह उदाहरण बदलें →

Base64 → UTF-8 · UTF-8 → Base64

अक्सर पूछे जाने वाले प्रश्न

क्या बिना = की स्ट्रिंग हमेशा गलत है?

नहीं। बाइट की संख्या तीन का गुणज हो तो पैडिंग जरूरी नहीं। कुछ प्रोटोकॉल उसे स्पष्ट रूप से हटाते भी हैं।

संदर्भ

अन्य Base64 गाइड