MCP के माध्यम से कनेक्ट करें →

गणना दर्ज करें

सूत्र (फॉर्मूला)

विज्ञापन

परिणाम

डिकोड किया गया टेक्स्ट
Hello World
डिकोड हुए बाइट्स 11
इनपुट अक्षर (खाली जगह छोड़कर) 16
पैडिंग अक्षर 1

Base64 डिकोडर क्या है?

Base64 एक एन्कोडिंग तरीका है जो बाइनरी डेटा को 64 प्रिंट करने योग्य ASCII अक्षरों (A–Z, a–z, 0–9, + और /) के ज़रिए दर्शाता है। इसका इस्तेमाल HTML में इमेज एम्बेड करने, JSON या URL में डेटा भेजने और ईमेल अटैचमेंट को एन्कोड करने में खूब होता है। यह डिकोडर इस पूरी प्रक्रिया को उलट देता है और किसी Base64 स्ट्रिंग को वापस उसके मूल सादे टेक्स्ट में बदल देता है।

इसका इस्तेमाल कैसे करें

अपनी Base64 स्ट्रिंग को इनपुट बॉक्स में पेस्ट करें या टाइप करें और सबमिट कर दें। टूल पहले सारी खाली जगह (whitespace) हटाता है, फिर अक्षरों को डिकोड करता है और परिणाम के रूप में टेक्स्ट दिखाता है — साथ ही डिकोड हुए बाइट्स की संख्या, इनपुट में मौजूद अक्षरों की गिनती और कितने पैडिंग अक्षर ('=') थे, यह भी बताता है। अगर इनपुट में Base64 वर्णमाला से बाहर के अक्षर हुए, तो आपको "अमान्य" (invalid) का संदेश दिखेगा।

फ़ॉर्मूला समझें

हर Base64 अक्षर 6 बिट डेटा को एन्कोड करता है। इसलिए चार Base64 अक्षर मिलकर \(4 \times 6 = 24\) बिट रखते हैं, जो ठीक-ठीक तीन 8-बिट बाइट्स में बँट जाते हैं। जब मूल डेटा की लंबाई 3 का गुणज नहीं होती, तब एक या दो '=' पैडिंग अक्षर जोड़ दिए जाते हैं ताकि एन्कोड की गई स्ट्रिंग की लंबाई हमेशा 4 का गुणज रहे। डिकोडिंग के दौरान यह पैडिंग हटा दी जाती है और बची हुई अतिरिक्त बिट्स छोड़ दी जाती हैं।

$$\text{Bytes} = \left\lfloor \frac{6 \times \text{Base64 chars (no padding)}}{8} \right\rfloor$$ $$\begin{gathered} \text{Bytes} = \left\lfloor \frac{6N}{8} \right\rfloor \\[1.5em] \text{where}\quad \left\{ \begin{aligned} N &= \text{valid chars of } \text{Base64 Input} \\ &\quad \text{(whitespace and } = \text{ removed)} \\ \text{char} &\to 6\text{ bits},\; 8\text{ bits} \to 1\text{ byte} \end{aligned} \right. \end{gathered}$$
विज्ञापन
प्रत्येक 6 बिट के चार Base64 अक्षर तीन 8-बिट बाइट्स में पुनः समूहित
चार Base64 अक्षर 24 बिट रखते हैं, जो तीन डिकोडेड बाइट्स में फिर से समूहित होते हैं।

हल किया हुआ उदाहरण

मान लीजिए Base64 स्ट्रिंग है SGk=। इसके अक्षरों की वैल्यू बनती है — S=18, G=6, k=36, और '=' पैडिंग है। बाइनरी में: 010010 000110 100100 → कुल 24 बिट, लेकिन आखिर में पैडिंग होने की वजह से सिर्फ़ 2 बाइट्स ही मान्य हैं: 01001000 (72 = 'H') और 01101001 (105 = 'i')। परिणाम मिलता है Hi

पाइपलाइन जो Base64 स्ट्रिंग को बिट्स के ज़रिए सादे टेक्स्ट में बदलती है
डिकोडर Base64 स्ट्रिंग को वापस मूल सादे टेक्स्ट में बदल देता है।

Base64 वर्णमाला संदर्भ

मानक Base64 (RFC 4648) प्रत्येक 6-बिट मान (0–63) को 64 मुद्रण योग्य ASCII वर्णों में से एक से मैप करता है। एक डिकोडर प्रत्येक वर्ण को पढ़ता है, इस तालिका में इसके 6-बिट इंडेक्स को देखता है, बिट्स को जोड़ता है, और उन्हें 8-बिट बाइट्स में पुनः समूहीकृत करता है। नीचे दी गई तालिका पूर्ण वर्णमाला और प्रत्येक वर्ण को निर्दिष्ट इंडेक्स को सूचीबद्ध करती है।

इंडेक्स वर्ण इंडेक्स वर्ण इंडेक्स वर्ण इंडेक्स वर्ण
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

65वां प्रतीक, = (बराबर), डेटा वर्ण नहीं है। यह पैडिंग मार्कर है जो एन्कोडेड स्ट्रिंग के अंत में उपयोग किया जाता है ताकि कुल लंबाई हमेशा 4 वर्णों का गुणक हो। एक = का मतलब है कि अंतिम 4-वर्ण समूह 2 बाइट्स एन्कोड करता है; दो == का मतलब है कि यह 1 बाइट एन्कोड करता है। एक डिकोडर पैडिंग और इसके द्वारा निहित अतिरिक्त शून्य बिट्स को छोड़ देता है।

अधिक डिकोडिंग उदाहरण

प्रत्येक Base64 वर्ण 6 बिट्स का योगदान देता है। चार वर्ण (24 बिट्स) बिल्कुल 3 बाइट्स में डिकोड होते हैं; आंशिक समूह पैडिंग का उपयोग करते हैं ताकि डिकोडर को पता चले कि कितने बाइट्स रखने हैं। बाइट गणना \(\text{बाइट्स} = \left\lfloor \frac{6 \times n}{8} \right\rfloor\) का पालन करती है, जहां \(n\) वास्तविक (गैर-पैडिंग) वर्णों की संख्या है।

उदाहरण 1 — कोई पैडिंग नहीं: "TWFu" → "Man"

  1. इंडेक्स: T=19, W=22, F=5, u=46।
  2. 6-बिट समूह: 010011 010110 000101 101110
  3. बाइट्स में पुनः समूहीकृत करें: 01001101 01100001 01101110 = 77, 97, 110।
  4. ASCII 77, 97, 110 = M, a, n। \(n=4\) के साथ: \(\lfloor 24/8 \rfloor = 3\) बाइट्स — Man

उदाहरण 2 — एक '=' पैड: "SGVsbG8=" → "Hello"

  1. पैडिंग छोड़ें: 7 वास्तविक वर्ण S,G,V,s,b,G,8।
  2. इंडेक्स: S=18, G=6, V=21, s=44, b=27, G=6, 8=60।
  3. बिट्स: 010010 000110 010101 101100 011011 000110 111100 (पैड समूह से अनुगामी 2 बिट्स शून्य भराव हैं और छोड़े गए हैं)।
  4. बाइट्स: 01001000 01100101 01101100 01101100 01101111 = 72, 101, 108, 108, 111 = H, e, l, l, o
  5. \(n=7\) के साथ: \(\lfloor 42/8 \rfloor = 5\) बाइट्स — Hello

उदाहरण 3 — दो '==' पैड: "aGk="... और "TQ==" → "M"

  1. पैडिंग छोड़ें: 2 वास्तविक वर्ण T, Q।
  2. इंडेक्स: T=19, Q=16।
  3. बिट्स: 010011 010000; केवल पहले 8 बिट्स रखें, शेष 4 शून्य भराव हैं।
  4. बाइट: 01001101 = 77 = M
  5. \(n=2\) के साथ: \(\lfloor 12/8 \rfloor = 1\) बाइट — M

दूसरी दिशा में जाने के लिए और पाठ से ये स्ट्रिंग्स बनाने के लिए, Base64 एन्कोडर का उपयोग करें।

विज्ञापन

मुख्य शर्तें

Base64 वर्णमाला
64 मुद्रण योग्य वर्णों का निश्चित सेट (A–Z, a–z, 0–9, + और /) जिसका उपयोग बाइनरी डेटा को पाठ के रूप में प्रतिनिधित्व करने के लिए किया जाता है। प्रत्येक वर्ण 0 से 63 तक 6-बिट मान के लिए खड़ा है।
पैडिंग ('=')
एन्कोडेड स्ट्रिंग के अंत में जोड़ा गया बराबर चिन्ह ताकि इसकी लंबाई 4 वर्णों का गुणक हो। इसमें कोई डेटा नहीं है; एक '=' अंतिम 2-बाइट समूह को चिह्नित करता है और '==' अंतिम 1-बाइट समूह को चिह्नित करता है।
सेक्सटेट (6 बिट्स)
6 बिट्स का एक समूह — यह इकाई है जो एक एकल Base64 वर्ण एन्कोड करता है। चार सेक्सटेट्स (24 बिट्स) बिल्कुल तीन ऑक्टेट्स के साथ संरेखित होते हैं।
ऑक्टेट / बाइट (8 बिट्स)
एक 8-बिट इकाई, डिकोड किए गए डेटा के एक बाइट का मानक आकार। Base64 डिकोडिंग सेक्सटेट्स को ऑक्टेट्स में वापस पुनः समूहीकृत करता है, जिसे बाइनरी से पाठ कनवर्टर बिट दर बिट चित्रित भी कर सकता है।
व्हाइटस्पेस स्ट्रिपिंग
डिकोडिंग से पहले स्पेस, टैब और लाइन ब्रेक को हटाना। कई सिस्टम लंबे Base64 में नई लाइनें डालते हैं (जैसे PEM प्रमाणपत्र, ईमेल MIME); एक मजबूत डिकोडर इस व्हाइटस्पेस को डेटा के रूप में मानने के बजाय इसे अनदेखा करता है।
URL-सुरक्षित Base64
एक वेरिएंट (RFC 4648 §5) जो + को - से और / को _ से बदलता है ताकि स्ट्रिंग URL और फाइलनामों में सुरक्षित हो। पैडिंग को भी अक्सर छोड़ दिया जाता है। एक मानक डिकोडर का उपयोग करने से पहले ऐसे वर्णों को + और / में वापस परिवर्तित करें; आसपास के URL के लिए URL एन्कोड / डिकोड कैलकुलेटर देखें।

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

क्या मेरा डेटा कहीं भेजा जाता है? डिकोडिंग की प्रक्रिया परिणाम दिखाने के लिए सर्वर-साइड चलती है, लेकिन कोई भी इनपुट सहेजा नहीं जाता। फिर भी, संवेदनशील या गोपनीय जानकारी पेस्ट करने से बचें।

बाइट गिनती 4 से विभाजित क्यों नहीं होती? बाइट गिनती डिकोड हुए आउटपुट बाइट्स की होती है, न कि इनपुट अक्षरों की। हर 4 इनपुट अक्षर ज़्यादा से ज़्यादा 3 आउटपुट बाइट्स बनते हैं।

पैडिंग का क्या मतलब है? एक '=' का मतलब है कि आखिरी समूह से 2 बाइट्स बने; दो '=' का मतलब है कि उससे सिर्फ़ 1 बाइट बना। कोई पैडिंग न होने का मतलब है कि डेटा की लंबाई पहले से ही 3 का गुणज थी।

अंतिम अपडेट: