फ़ाइल से Base64 कन्वर्टर

कोई भी फ़ाइल खींचकर छोड़ें, चाहे वह दस्तावेज़ हो, आर्काइव, फ़ॉन्ट, सर्टिफ़िकेट या प्रोग्राम, और उसका Base64 रूप रॉ टेक्स्ट या data URI के तौर पर पाएँ। सब कुछ आपके ब्राउज़र में ही स्थानीय रूप से चलता है।

पूरी तरह आपके ब्राउज़र में चलता है। कुछ भी अपलोड नहीं होता।

उपयोग कैसे करें

  1. फ़ाइल को अपलोड एरिया पर खींचकर छोड़ें, या अपने डिवाइस से फ़ाइल चुनने के लिए उस पर क्लिक करें (अधिकतम 100 MB)।
  2. “आउटपुट” चुनें: API और कॉन्फ़िगरेशन फ़ाइलों के लिए रॉ Base64, या HTML और CSS के लिए data URI।
  3. “हर 76 अक्षर पर नई लाइन” तभी चालू करें, जब लक्ष्य में MIME शैली की लाइनें अपेक्षित हों, जैसे ईमेल की बॉडी।
  4. फ़ाइल का नाम, MIME टाइप और आकार जाँचें, फिर परिणाम कॉपी करें या उसे .txt फ़ाइल के रूप में डाउनलोड करें।

फ़ाइल को Base64 में एनकोड क्यों करें?

सिस्टमों के बीच डेटा ले जाने वाले कई फ़ॉर्मैट केवल टेक्स्ट सँभाल सकते हैं। JSON, XML, YAML, HTML और ईमेल हेडर में मनचाहे बाइट नहीं रखे जा सकते, क्योंकि फ़ाइल में शून्य बाइट, अमान्य अक्षर-क्रम या ऐसे लाइन एंडिंग हो सकते हैं जिन्हें टेक्स्ट पार्सर बदल देगा। Base64 फ़ाइल के हर 3 बाइट को 64 अक्षरों के एक सेट से लिए गए 4 अक्षरों में बदलता है, जिसमें बड़े-छोटे अंग्रेज़ी अक्षर, अंक, + और / शामिल हैं। इस तरह कोई भी फ़ाइल सादी स्ट्रिंग के रूप में भेजी जा सकती है और डिकोड करने पर ठीक वही बाइट वापस मिलते हैं।

इसकी क़ीमत आकार के रूप में चुकानी पड़ती है: एनकोड किया गया टेक्स्ट फ़ाइल से लगभग 33% बड़ा होता है, और लाइन ब्रेक इसे थोड़ा और बढ़ा देते हैं। 3 MB की फ़ाइल लगभग 4 MB का Base64 बन जाती है।

आम उपयोग

  • JSON और XML API। जो एंडपॉइंट multipart फ़ॉर्म अपलोड स्वीकार नहीं करते, वे अक्सर फ़ाइल को एक फ़ील्ड में Base64 स्ट्रिंग के रूप में चाहते हैं, और उसका नाम व प्रकार दूसरे फ़ील्ड में।
  • ईमेल अटैचमेंट। MIME अटैचमेंट को Base64 में एनकोड करता है, जिसकी हर लाइन अधिकतम 76 अक्षरों की होती है (RFC 2045)। लाइन रैपिंग से ठीक यही लेआउट बनता है।
  • कॉन्फ़िगरेशन और सीक्रेट। Kubernetes Secret में data के अंतर्गत आने वाले मान Base64 में होते हैं, इसलिए TLS सर्टिफ़िकेट, कीस्टोर या लाइसेंस फ़ाइल को मैनिफ़ेस्ट में डालने से पहले एनकोड करना ज़रूरी है। CI सिस्टम भी अक्सर बाइनरी सीक्रेट को इसी तरह एनवायरनमेंट वेरिएबल में रखते हैं।
  • डेटाबेस और सोर्स कोड। फ़ॉन्ट, ध्वनि या टेस्ट फ़िक्स्चर जैसी छोटी बाइनरी फ़ाइल को अलग फ़ाइल के बजाय टेक्स्ट कॉलम या स्ट्रिंग कॉन्स्टेंट में रखा जा सकता है।

तस्वीरों के लिए इमेज से Base64 आकार बदलने की सुविधा और तैयार HTML व CSS स्निपेट भी देता है। Base64 को वापस फ़ाइल में बदलने के लिए Base64 से फ़ाइल का उपयोग करें।

रॉ Base64 या data URI?

रॉ Base64 में केवल एनकोड किए गए बाइट होते हैं। API, Kubernetes, डेटाबेस और ज़्यादातर प्रोग्रामिंग लाइब्रेरी यही रूप चाहती हैं, आमतौर पर फ़ाइल नाम या कंटेंट टाइप के लिए एक अलग फ़ील्ड के साथ।

data URI इसके आगे MIME टाइप वाला एक प्रीफ़िक्स जोड़ता है, जैसे data:application/pdf;base64,, ताकि ब्राउज़र पूरी स्ट्रिंग को src, href या CSS url() में URL की तरह इस्तेमाल कर सके। जो API सादा Base64 माँगता है, उसे यह प्रीफ़िक्स न भेजें; कई डिकोडर इसे अस्वीकार कर देते हैं। MIME टाइप ख़ुद तय करने या परसेंट-एनकोडिंग इस्तेमाल करने के लिए Data URI जनरेटर आज़माएँ।

JSON, YAML और सोर्स कोड के लिए लाइन रैपिंग बंद रखें। JSON स्ट्रिंग में सीधे लाइन ब्रेक नहीं हो सकते, और YAML में रैप किए गए मान आसानी से बिगड़ जाते हैं।

कमांड लाइन पर फ़ाइल एनकोड करें

# Linux (GNU coreutils): -w 0 डिफ़ॉल्ट 76-अक्षर रैपिंग बंद करता है
base64 -w 0 report.docx > report.txt

# macOS
base64 -i report.docx -o report.txt

# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\files\report.docx"))

# Kubernetes फ़ाइल को आपके लिए ख़ुद एनकोड कर देता है
kubectl create secret generic app-cert --from-file=tls.crt

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

क्या फ़ाइल के आकार की कोई सीमा है?

100 MB तक की फ़ाइलें एनकोड की जा सकती हैं। आउटपुट लगभग एक-तिहाई बड़ा होता है, इसलिए 100 MB की फ़ाइल से लगभग 133 MB टेक्स्ट बनता है। इतना टेक्स्ट दिखाने से पेज धीमा हो सकता है, इसलिए बड़ी फ़ाइलों के लिए आउटपुट बॉक्स से कॉपी करने के बजाय “डाउनलोड करें” का उपयोग करें।

क्या मेरी फ़ाइलें किसी सर्वर पर अपलोड होती हैं?

नहीं। फ़ाइल को आपके ब्राउज़र में JavaScript पढ़ता और एनकोड करता है, और नेटवर्क पर कुछ भी नहीं भेजा जाता, इसलिए सर्टिफ़िकेट, कुंजियाँ और निजी दस्तावेज़ आपके डिवाइस पर ही रहते हैं।

क्या Base64 फ़ाइल को कंप्रेस या एन्क्रिप्ट करता है?

दोनों में से कुछ नहीं। Base64 डेटा को लगभग 33% बड़ा कर देता है, और कोई भी इसे डिकोड कर सकता है। अगर फ़ाइल को गोपनीय रहना है, तो एनकोड करने से पहले उसे एन्क्रिप्ट करें; अगर आकार मायने रखता है, तो पहले उसे कंप्रेस करें, जैसे ZIP या gzip आर्काइव के रूप में।

आउटपुट में लाइन ब्रेक क्यों हैं?

“हर 76 अक्षर पर नई लाइन” विकल्प चालू है। यह ईमेल में इस्तेमाल होने वाले MIME फ़ॉर्मैट से मेल खाता है, लेकिन ज़्यादातर API, JSON दस्तावेज़ और Kubernetes मैनिफ़ेस्ट बिना टूटी एक ही लाइन चाहते हैं, इसलिए इनके लिए इसे बंद कर दें।

यह Base64 एनकोडर से कैसे अलग है?
Base64 एनकोडर टेक्स्ट के लिए बना है, जिसमें कैरेक्टर एनकोडिंग और Base64 वेरिएंट के विकल्प हैं। यह पेज फ़ाइलों के लिए बना है: यह किसी भी फ़ाइल के रॉ बाइट पढ़ता है, उसका MIME टाइप दिखाता है और सीधे data URI भी दे सकता है।