UltKit
इमेज11
PDF13
डॉक्यूमेंट और डेटा7
वीडियो6
ऑडियो4
और टूल्स22

Base64 एनकोड और डिकोड

टेक्स्ट या फ़ाइल को Base64 में बदलें, या Base64 को वापस पढ़ने लायक टेक्स्ट में डिकोड करें। Unicode सही तरह से संभाला जाता है, URL-safe अक्षर-सेट बस एक क्लिक पर है, और डिकोड करते समय दोनों अक्षर-सेट चलते हैं, पैडिंग के साथ भी और उसके बिना भी।

मोड

0 अक्षर · 0 शब्द · 0 पंक्तियाँ

0 अक्षर · 0 शब्द · 0 पंक्तियाँ

यह पूरी तरह इसी ब्राउज़र टैब में चलता है। आपका टेक्स्ट न अपलोड होता है, न सेव किया जाता है।

Base64 वर्णमाला

RFC 4648 के अनुसार इंडेक्स → अक्षर। हाइलाइट किए गए आख़िरी दो URL-सेफ़ रूप में अलग हैं: 62 पर + या -, 63 पर / या _।

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

आउटपुट कितना लंबा होता है

हर 3 इनपुट बाइट के 4 अक्षर बनते हैं; आख़िर में 1 या 2 बाइट का समूह मानक Base64 में = से पैड होता है और URL-सेफ़ रूप में बिना पैडिंग रहता है।

इनपुटबाइटमानकURL-सेफ़लंबाई
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

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 और फ़ाइल नामों में आ सके।