Base64 एनकोड और डिकोड
टेक्स्ट या फ़ाइल को Base64 में बदलें, या Base64 को वापस पढ़ने लायक टेक्स्ट में डिकोड करें। Unicode सही तरह से संभाला जाता है, URL-safe अक्षर-सेट बस एक क्लिक पर है, और डिकोड करते समय दोनों अक्षर-सेट चलते हैं, पैडिंग के साथ भी और उसके बिना भी।
0 अक्षर · 0 शब्द · 0 पंक्तियाँ
0 अक्षर · 0 शब्द · 0 पंक्तियाँ
यह पूरी तरह इसी ब्राउज़र टैब में चलता है। आपका टेक्स्ट न अपलोड होता है, न सेव किया जाता है।
Base64 वर्णमाला
RFC 4648 के अनुसार इंडेक्स → अक्षर। हाइलाइट किए गए आख़िरी दो URL-सेफ़ रूप में अलग हैं: 62 पर + या -, 63 पर / या _।
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
आउटपुट कितना लंबा होता है
हर 3 इनपुट बाइट के 4 अक्षर बनते हैं; आख़िर में 1 या 2 बाइट का समूह मानक Base64 में = से पैड होता है और URL-सेफ़ रूप में बिना पैडिंग रहता है।
| इनपुट | बाइट | मानक | URL-सेफ़ | लंबाई |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Base64 क्या करता है
Base64, जिसे RFC 4648 में परिभाषित किया गया है, किसी भी बाइट को 64 प्रिंट होने वाले ASCII अक्षरों से लिखता है: A–Z, a–z, 0–9, + और /। हर तीन बाइट (24 बिट) के समूह को चार 6-बिट संख्याओं में बाँटा जाता है, और हर संख्या वर्णमाला से एक अक्षर चुनती है। जब इनपुट की लंबाई तीन का गुणज नहीं होती, तो आख़िरी समूह के आगे एक या दो = चिह्न जोड़े जाते हैं। नतीजा हमेशा इनपुट से लगभग 33% बड़ा होता है: हर 3 बाइट के लिए 4 अक्षर।
यह इसलिए है क्योंकि कई माध्यम सिर्फ़ टेक्स्ट के लिए बनाए गए थे। ईमेल (MIME), HTML और CSS में data: URL, इमेज या सर्टिफ़िकेट ले जाने वाले JSON फ़ील्ड और HTTP Basic authentication हेडर, सभी बाइनरी डेटा को सुरक्षित ढंग से भेजने के लिए Base64 का इस्तेमाल करते हैं। यह एन्क्रिप्शन नहीं है और कुछ भी छिपाता नहीं; डीकोड करने के लिए किसी कुंजी की ज़रूरत नहीं होती।
Unicode और URL-safe वैरिएंट
Base64 अक्षरों को नहीं, बाइट को एन्कोड करता है, इसलिए टेक्स्ट को पहले बाइट में बदलना पड़ता है। यह टूल हमेशा UTF-8 इस्तेमाल करता है, जिस पर वेब चलता है: é दो बाइट का और एक इमोजी चार बाइट का बनता है। ब्राउज़र का बिल्ट-इन btoa फ़ंक्शन अकेले U+00FF से ऊपर के किसी भी अक्षर पर एरर देता है, इसीलिए साधारण एन्कोडर accent और इमोजी पर फ़ेल हो जाते हैं; यहाँ टेक्स्ट पहले TextEncoder से गुज़रता है और डीकोडिंग TextDecoder से उसे वापस पलटती है। अगर डीकोड किए गए बाइट वैध UTF-8 नहीं हैं (जैसे इमेज या zip फ़ाइल), तो टूल उन्हें बिगड़े टेक्स्ट की जगह हेक्साडेसिमल में दिखाता है।
स्टैंडर्ड Base64 में + और / होते हैं, जिनके URL और फ़ाइल नामों में अलग मतलब होते हैं। RFC 4648 के सेक्शन 5 की URL-safe वर्णमाला इन्हें - और _ से बदल देती है, और पैडिंग आमतौर पर हटा दी जाती है। JSON Web Token ठीक यही रूप इस्तेमाल करते हैं। डीकोडर दोनों वर्णमालाओं और गायब पैडिंग को स्वीकार करता है, इसलिए आप कोई भी पेस्ट कर सकते हैं।
फ़ाइलें और इमेज एनकोड करना
फ़ाइल चुनें और टूल उसे FileReader से लोकल में पढ़कर उसका Base64 देता है, या फ़ाइल के MIME टाइप वाला पूरा data: URL देता है, जिसे सीधे img टैग या CSS बैकग्राउंड में पेस्ट किया जा सकता है। इनलाइन इमेज एक HTTP रिक्वेस्ट बचाती हैं, लेकिन एक तिहाई बड़ी हो जाती हैं और अलग से कैश नहीं हो सकतीं, इसलिए ये फ़ोटो की जगह छोटे आइकन के लिए ठीक हैं। प्रीव्यू और तैयार HTML व CSS स्निपेट वाली इमेज के लिए इमेज से Base64 इस्तेमाल करें।
अक्सर पूछे जाने वाले सवाल
- Base64 आउटपुट मेरे इनपुट से लंबा क्यों होता है?
- हर 3 बाइट 4 अक्षर बन जाते हैं, इसलिए आउटपुट इनपुट का लगभग 4/3 गुना होता है, साथ में अधिकतम दो पैडिंग अक्षर। नॉन-ASCII टेक्स्ट और लंबा होता है, क्योंकि UTF-8 में हर अक्षर के लिए दो से चार बाइट लगते हैं।
- आख़िर में दिखने वाले = चिह्न क्या हैं?
- पैडिंग। जब इनपुट की लंबाई तीन का गुणज नहीं होती, तो ये आउटपुट की लंबाई को चार का गुणज बना देते हैं। एक = का मतलब आख़िरी समूह में दो बाइट थे, दो = का मतलब एक बाइट था।
- डिकोड करते समय अमान्य अक्षर (invalid character) की एरर क्यों आती है?
- इनपुट में वर्णमाला से बाहर कुछ है, जैसे शब्द के बीच स्पेस, कोट, या URL एन्कोडिंग का %। लाइन ब्रेक और गायब पैडिंग चल जाते हैं; बाकी अक्षर नहीं।
- क्या पासवर्ड को Base64 में एनकोड करना सुरक्षित है?
- Base64 कोई सुरक्षा नहीं देता। HTTP Basic authentication user:password को Base64 में भेजता है, इसीलिए इसे सिर्फ़ HTTPS पर इस्तेमाल करना चाहिए। गोपनीय जानकारी बचाने के लिए असली एन्क्रिप्शन या हैशिंग इस्तेमाल करें।
- Base64 और Base64url में क्या अंतर है?
- सिर्फ़ दो अक्षर और पैडिंग का: Base64url में + और / की जगह - और _ होते हैं और आमतौर पर = हटा दिया जाता है, ताकि नतीजा बिना एस्केप किए URL और फ़ाइल नामों में आ सके।