गाइड

Base64 क्या है? इतिहास, काम करने का तरीका और उपयोग

जानें Base64 कहाँ से आया, 3 bytes को 4 characters में कैसे बदलता है, padding व base64url क्या हैं और इसका सही उपयोग कब करें।

एक वाक्य में Base64

Base64 binary-to-text encoding है: यह bytes की किसी भी sequence को छोटे और व्यापक रूप से compatible alphabet की string में बदलता है। Bytes photo, PDF या शब्द बनाते हैं, इससे algorithm को फर्क नहीं पड़ता; वह बस उन्हें text-based system के लिए उपयुक्त पैकेज देता है।

यह transformation reversible और lossless है, लेकिन encryption, hash या compression नहीं है।

Base64 कहाँ से आया

शुरुआती network और email system हमेशा arbitrary 8-bit values को सुरक्षित नहीं ले जा पाते थे। कुछ gateway printable 7-bit text की अपेक्षा करते और binary data बदल सकते थे। uuencode जैसे पुराने scheme भी यही समस्या हल करते थे; RFC 1421 में Privacy-Enhanced Mail के लिए दिया गया 64-character printable encoding आधुनिक Base64 का सीधा पूर्वज है।

बाद में MIME ने email body और attachment के Content-Transfer-Encoding के रूप में Base64 नाम अपनाया। 2006 का RFC 4648 standard और URL-safe alphabet का सामान्य reference है। इसलिए Base64 एक व्यक्ति की अकेली खोज नहीं, interoperable standards का विकास है।

64 characters क्यों और 3 से 4 का नियम कैसे चलता है

6 bits ठीक 64 values, 0 से 63 तक, दिखा सकते हैं। Standard Base64 इन्हें A–Z, a–z, 0–9, + और / से map करता है। Encoder 3 bytes यानी 24 bits पढ़ता है, फिर सीमा बदलकर 6 bits के 4 group बनाता है। हर value alphabet का index बनकर एक character देती है।

“Man” के ASCII/UTF-8 bytes से 19, 22, 5 और 46 index मिलते हैं: T, W, F और u। Output TWFu है; decoding यही रास्ता उल्टा चलता है।

“Man” एक पूरा 24-bit block भरता है, इसलिए padding की जरूरत नहीं होती।
Input
Man
Input bytes
01001101 01100001 01101110
6-bit groups
010011 010110 000101 101110
Alphabet indexes
19 · 22 · 5 · 46
Base64 output
TWFu

Padding, Unicode और base64url

अंतिम block में 1 byte हो तो 2 data characters के बाद == आता है; 2 bytes हों तो 3 characters के बाद =। Padding data नहीं छिपाता, बस बताता है कि आखिरी 24-bit block में कितना वास्तविक data था। Length दूसरी तरह मालूम हो तो कुछ protocol इसे हटा देते हैं।

Base64 bytes पर काम करता है। हिन्दी, 中文 या emoji को पहले आम तौर पर UTF-8 bytes में बदलना पड़ता है। URL और filename के लिए base64url + और / को - और _ से बदलता है। यह संबंधित alphabet है, पर protocol देखे बिना variants नहीं मिलाने चाहिए।

Base64 कहाँ सच में उपयोगी है

MIME email attachment, certificate या key के PEM block और छोटी image या font वाली data: URL इसके सामान्य उपयोग हैं। JSON और XML छोटे binary payload को Base64 string में रख सकते हैं। HTTP Basic credentials Base64 और JWT segment base64url का उपयोग करते हैं; इससे content secret नहीं हो जाता।

मूल बात compatibility है: बाहरी channel text चाहता है, payload bytes है। यदि upload, object storage या database BLOB पहले से binary लेता है, तो Base64 अनावश्यक हो सकता है।

Size और performance की कीमत

हर पूरे 3 bytes से 4 characters बनते हैं। Exact length 4 × ceil(n / 3) है, इसलिए बड़े input में overhead लगभग 33.3% और छोटे input में उससे अधिक हो सकता है। Line wrapping या data: URL prefix थोड़ा और जोड़ते हैं।

दूसरे layer की compression network transfer घटा सकती है, फिर भी encoding memory और CPU लेती है। बड़े file के लिए direct binary transfer आम तौर पर बेहतर है।

Base64 क्या नहीं करता

Base64 confidentiality या authenticity नहीं देता। कोई भी बिना key decode और modify कर सकता है। Password, API token या personal data बचाने के लिए इसका उपयोग न करें। Secrecy के लिए encryption और TLS, digest के लिए cryptographic hash, और tamper detection के लिए signature या MAC चाहिए।

सरल नियम: Base64 text boundary पार करता है, security boundary की रक्षा नहीं करता।

तकनीकी स्रोत