Base64 क्या है? एन्कोडिंग समझें

Base64 बाइनरी डेटा — इमेज, फ़ाइल, एन्क्रिप्टेड बाइट्स, कुछ भी — को सिर्फ़ 64 प्रिंट होने योग्य कैरेक्टर (A–Z, a–z, 0–9, + और /) से दिखाने का तरीका है। यह इसलिए है क्योंकि कई चैनल टेक्स्ट के लिए बने थे: ईमेल, JSON, XML, URL, HTTP हेडर और कुकी सभी Base64 स्ट्रिंग सुरक्षित रूप से ले जा सकते हैं जहाँ कच्चे बाइट्स बिगड़ जाते या रिजेक्ट हो जाते।

यह गाइड बताती है कि एन्कोडिंग कैसे काम करती है, यह कब सही विकल्प है, Base64 और Base64URL में क्या फ़र्क़ है, और वे गलतियाँ जो बिगड़ा आउटपुट देती हैं — सबसे अहम गलती समेत: Base64 एन्क्रिप्शन नहीं है।

Base64 एन्कोडिंग कैसे काम करती है

Base64 इनपुट को एक बार में तीन बाइट (24 बिट) लेता है और उन्हें छह-छह बिट के चार ग्रुप में बाँटता है। हर छह-बिट वैल्यू (0–63) अल्फ़ाबेट के एक कैरेक्टर से मैप होती है। तीन बाइट अंदर, चार कैरेक्टर बाहर — इसीलिए Base64 आउटपुट हमेशा इनपुट से लगभग 33% बड़ा होता है।

जब इनपुट की लंबाई तीन का गुणज नहीं होती, आख़िरी ग्रुप को ज़ीरो बिट से भरा जाता है और एक या दो "=" जोड़े जाते हैं ताकि डिकोडर जाने कि कितने असली बाइट की उम्मीद करनी है।

Text:   Hi!
Bytes:  01001000 01101001 00100001
Groups: 010010 000110 100100 100001
Index:  18     6      36     33
Base64: S      G      k      h        → "SGkh"

Text:   Hi      (2 bytes → one "=" of padding)
Base64: SGk=

आज़माएँ: Base64 एन्कोडर आज़माएँ: बाइनरी एन्कोडर / डिकोडर

Base64 एन्क्रिप्शन नहीं है

कोई भी Base64 को बिना key के तुरंत डिकोड कर सकता है — यह उलटने योग्य एन्कोडिंग है, जैसे किसी नंबर को हेक्साडेसिमल में लिखना। यह कुछ नहीं छिपाता। Base64 से "प्रोटेक्ट" किया पासवर्ड, API key या टोकन उसे देखने वाले हर व्यक्ति के सामने खुला है। डेटा प्रोटेक्ट करने के लिए असली एन्क्रिप्शन (AES, TLS) इस्तेमाल करें और Base64 सिर्फ़ उसे ले जाने के लिए।

आज़माएँ: Base64 डिकोडर

Base64 कब इस्तेमाल करें

  • छोटी इमेज या फ़ॉन्ट को HTML, CSS या JSON में data: URI के रूप में एम्बेड करना।
  • JSON या XML पेलोड के अंदर बाइनरी कंटेंट भेजना, जो सिर्फ़ टेक्स्ट रख सकते हैं।
  • HTTP Basic ऑथेंटिकेशन: हेडर में "username:password" का Base64 जाता है (सिर्फ़ ट्रांसपोर्ट — हमेशा HTTPS पर)।
  • JWT और दूसरे टोकन, जो अपने हेडर, पेलोड और सिग्नेचर के लिए URL-सेफ़ वेरिएंट इस्तेमाल करते हैं।
  • ईमेल अटैचमेंट (MIME) और कोई भी पुराना प्रोटोकॉल जो 7-बिट टेक्स्ट की उम्मीद करता है।
  • बड़ी फ़ाइलों के लिए नहीं, जहाँ बाइनरी चैनल मौजूद है — 33% ओवरहेड और अतिरिक्त एन्कोडिंग स्टेप सरासर बर्बादी है।

Base64 बनाम Base64URL

स्टैंडर्ड Base64 "+" और "/" इस्तेमाल करता है, दोनों का URL में ख़ास मतलब है, और "=" पैडिंग जो अक्सर परसेंट-एन्कोड होती है। Base64URL (RFC 4648 §5) इन्हें "-" और "_" से बदलता है और आमतौर पर पैडिंग हटा देता है, ताकि नतीजा URL, फ़ाइल नाम या JWT में बिना और एस्केपिंग के इस्तेमाल हो सके। एक वेरिएंट की उम्मीद करने वाला डिकोडर दूसरे को रिजेक्ट करेगा, और "वैध" टोकन के डिकोड न होने की यह सबसे आम वजह है।

आज़माएँ: URL एन्कोडर आज़माएँ: JWT डिकोडर

टेक्स्ट एन्कोड करना: कैरेक्टर सेट पर ध्यान दें

Base64 बाइट्स एन्कोड करता है, कैरेक्टर नहीं, इसलिए टेक्स्ट को पहले बाइट्स में बदलना पड़ता है — लगभग हमेशा UTF-8 में। हिंदी, अरबी और इमोजी मल्टी-बाइट सीक्वेंस बनते हैं; अगर एन्कोडर UTF-8 इस्तेमाल करे और डिकोडर Latin-1 मान ले (या उल्टा) तो आउटपुट बिगड़ा हुआ (mojibake) होगा। जब दो सिस्टम किसी Base64 स्ट्रिंग पर असहमत हों, तो कैरेक्टर सेट सबसे पहले जाँचने की चीज़ है।

आज़माएँ: Base64 एन्कोडर आज़माएँ: Hex एन्कोडर

डिकोडिंग क्यों फ़ेल होती है

  • गलत अल्फ़ाबेट — Base64URL स्ट्रिंग ("-", "_") स्टैंडर्ड डिकोडर को दी गई, या उल्टा।
  • पैडिंग गायब या ज़्यादा — कुछ एन्कोडर "=" छोड़ देते हैं, और सख़्त डिकोडर चार के गुणज की लंबाई माँगते हैं।
  • स्ट्रिंग के अंदर व्हाइटस्पेस या लाइन ब्रेक — MIME 76 कैरेक्टर पर लाइन रैप करता है; डिकोड करने से पहले हटाएँ।
  • डबल एन्कोडिंग — दो बार Base64-एन्कोड की गई स्ट्रिंग वैध दिखती है लेकिन डिकोड होकर और Base64 देती है।
  • यह Base64 था ही नहीं — hex, हैश या रैंडम टोकन मिलता-जुलता लग सकता है। Base64 ठीक 64 कैरेक्टर और "=" इस्तेमाल करता है, और पैडेड होने पर उसकी लंबाई चार का गुणज होती है।

आज़माएँ: Base64 डिकोडर

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

क्या Base64 सुरक्षित है?

नहीं। यह बिना key की उलटने योग्य एन्कोडिंग है। यह कोई गोपनीयता नहीं देता; उसके लिए एन्क्रिप्शन इस्तेमाल करें।

Base64 "=" या "==" पर क्यों ख़त्म होता है?

पैडिंग। इनपुट तीन-तीन बाइट के ग्रुप में प्रोसेस होता है; जब एक या दो बाइट बचते हैं, "==" या "=" जोड़ा जाता है ताकि डिकोडर असली लंबाई जाने।

Base64 आउटपुट कितना बड़ा होता है?

लगभग 33% — हर 3 बाइट 4 कैरेक्टर बनते हैं। 300 KB की इमेज लगभग 400 KB टेक्स्ट बन जाती है।

क्या Base64 इमेज या PDF एन्कोड कर सकता है?

हाँ — Base64 किसी भी बाइट्स पर काम करता है। इसी तरह data: URI HTML में इमेज एम्बेड करते हैं और फ़ाइलें JSON API के अंदर जाती हैं।

Base64 और hex में क्या फ़र्क़ है?

दोनों बाइट्स को टेक्स्ट के रूप में दिखाते हैं। Hex 16 कैरेक्टर इस्तेमाल करता है और साइज़ दोगुना करता है (प्रति बाइट 2 कैरेक्टर); Base64 64 कैरेक्टर इस्तेमाल करता है और साइज़ एक-तिहाई बढ़ाता है। Hex पढ़ने में आसान है; Base64 ज़्यादा कॉम्पैक्ट।

Base64 और URL एन्कोडिंग में क्या फ़र्क़ है?

URL (परसेंट) एन्कोडिंग सिर्फ़ URL में असुरक्षित कैरेक्टर को एस्केप करती है, सामान्य अक्षर वैसे ही रहते हैं। Base64 हर बाइट को फिर से एन्कोड करता है। ये अक्सर साथ आते हैं: क्वेरी पैरामीटर में जाने से पहले Base64 स्ट्रिंग को परसेंट-एन्कोडिंग चाहिए हो सकती है, जब तक URL-सेफ़ वेरिएंट न इस्तेमाल हो।

इस गाइड में बताए गए टूल्स

टेक्स्ट या फ़ाइलों को अपने ब्राउज़र में ही Base64 (स्टैंडर्ड या URL-सुरक्षित) में एन्कोड करें।

एन्कोडिंग टूल खोलें

Base64 या Base64url स्ट्रिंग को टेक्स्ट में डिकोड करें, पैडिंग अपने आप ठीक होने के साथ।

एन्कोडिंग टूल खोलें

URL, क्वेरी स्ट्रिंग और फ़ॉर्म डेटा में सुरक्षित इस्तेमाल के लिए टेक्स्ट को percent-encode करें।

एन्कोडिंग टूल खोलें

टेक्स्ट को हेक्साडेसिमल बाइट (UTF-8) में बदलें, मनचाहे सेपरेटर और केसिंग के साथ।

एन्कोडिंग टूल खोलें

JWT का हेडर और पेलोड डिकोड करें, क्लेम जाँचें और एक्सपायरी देखें — पूरी तरह आपके ब्राउज़र में।

सुरक्षा टूल खोलें

और गाइड

और गाइड →
JSON और डेटा

JSON क्या है?

JSON आसान भाषा में: यह क्या है, छह वैल्यू टाइप, वे सिंटैक्स नियम जिनमें लोग अटकते हैं, इसे फ़ॉर्मेट और वैलिडेट कैसे करें, और XML व YAML से इसकी तुलना।

5 मिनट पढ़ने का समय
API टेस्टिंग

API टेस्टिंग क्या है? REST API कैसे टेस्ट करें

API टेस्टिंग समझें: यह क्या है, हर रिक्वेस्ट और रिस्पॉन्स में क्या जाँचें, REST API टेस्ट करने का स्टेप-बाय-स्टेप तरीका, आम गलतियाँ और मुफ़्त टूल्स।

7 मिनट पढ़ने का समय
टेस्ट डिज़ाइन

टेस्ट केस कैसे लिखें

भरोसेमंद टेस्ट केस कैसे लिखें: हर केस के ज़रूरी फ़ील्ड, कॉपी-रेडी टेम्पलेट, लॉगिन का उदाहरण, और वे तकनीकें जो असली बग पकड़ती हैं।

5 मिनट पढ़ने का समय
सुरक्षा

JWT क्या है? JSON Web Token समझें

JWT आसान भाषा में: JSON Web Token के तीन हिस्से, exp और sub जैसे क्लेम, डिकोड और वेरिफ़ाई कैसे करें, डिकोड करना वेरिफ़ाई क्यों नहीं, और सिक्योरिटी।

5 मिनट पढ़ने का समय
यूटिलिटीज़

UUID क्या है? v4 बनाम v7, UUID बनाम GUID और ULID

UUID समझें: 128-बिट फ़ॉर्मेट, v4 बनाम v7, डेटाबेस key के लिए v7 बेहतर क्यों, UUID बनाम GUID बनाम ULID, कॉलिज़न की संभावना, और जनरेट-वैलिडेट कैसे करें।

5 मिनट पढ़ने का समय
वेब

HTTP स्टेटस कोड समझें

HTTP स्टेटस कोड की हर क्लास उन कोड के साथ जो असल में मिलते हैं — 200, 301, 400, 401, 403, 404, 422, 429, 500, 502, 503, 504 — वजह और कौन-सा लौटाएँ।

5 मिनट पढ़ने का समय