Base64 File Encoder

किसी भी फ़ाइल को Base64 में एन्कोड करें: PDF, ZIP, इमेज आदि

यहाँ कोई भी फ़ाइल ड्रॉप करें या अपलोड करने के लिए क्लिक करें

सभी फ़ाइल प्रकार: PDF, ZIP, इमेज, बाइनरी फ़ाइलें

Base64 फ़ाइल एन्कोडिंग क्या है?

Base64 फ़ाइल एन्कोडिंग बाइनरी फ़ाइलों — PDF, ZIP, इमेज, निष्पादन योग्य फ़ाइलें, फ़ॉन्ट, ऑडियो — को RFC 4648 में परिभाषित वर्णमाला का उपयोग करके सरल ASCII पाठ में बदलती है। बाइनरी इनपुट के प्रत्येक तीन बाइट चार Base64 वर्ण बन जाते हैं, जिससे एक पाठ प्रतिनिधित्व बनता है जो केवल पाठ के लिए डिज़ाइन किए गए माध्यमों से गुज़र सकता है: JSON API पेलोड, XML दस्तावेज़, ईमेल बॉडी, HTML विशेषताएँ और पर्यावरण चर।

पाठ-से-Base64 एन्कोडिंग (जो स्ट्रिंग पर काम करती है) के विपरीत, फ़ाइल-से-Base64 एन्कोडिंग किसी भी फ़ाइल की कच्ची बाइट धारा को उसके प्रारूप की परवाह किए बिना पढ़ती है। PDF के बाइनरी हेडर, ZIP के संपीड़ित ब्लॉक और PNG का पिक्सेल डेटा सभी को एक समान माना जाता है: ऑक्टेट की एक अनुक्रमिक श्रृंखला जिसे पुनः एन्कोड किया जाना है। परिणाम हमेशा मान्य ASCII होता है, जो कहीं भी एम्बेड करने के लिए सुरक्षित है जहाँ प्रिंट करने योग्य वर्ण स्वीकार किए जाते हैं।

इसकी एक सीमा है: Base64 आउटपुट मूल बाइनरी से लगभग 33% बड़ा होता है। 1 MB PDF के लिए, इसका अर्थ है लगभग 1.33 MB का Base64 पाठ। यह अधिभार 8-बिट बाइट को 6-बिट वर्णों से दर्शाने की अनिवार्य लागत है — कोई भी कार्यान्वयन इसे टाल नहीं सकता। इसके बावजूद, Base64 फ़ाइल एन्कोडिंग केवल-पाठ प्रारूपों में बाइनरी डेटा एम्बेड करने की मानक विधि बनी हुई है, जो MIME (RFC 2045), डेटा URI (RFC 2397) और JSON Web Tokens (RFC 7519) में निर्दिष्ट है।

इस Base64 File Encoder का उपयोग क्यों करें?

यह टूल सीधे आपके ब्राउज़र में FileReader API का उपयोग करके फ़ाइलों को Base64 में एन्कोड करता है। कोई भी फ़ाइल सर्वर पर अपलोड नहीं होती — पूरा रूपांतरण JavaScript में क्लाइंट-साइड होता है।

🛡
गोपनीयता-प्रथम प्रसंस्करण
आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती। FileReader API फ़ाइल को स्थानीय रूप से मेमोरी में पढ़ता है, और Base64 आउटपुट पूरी तरह ब्राउज़र में उत्पन्न होता है। कोई नेटवर्क अनुरोध नहीं होता।
तत्काल ड्रैग-एंड-ड्रॉप
कोई भी फ़ाइल टूल पर ड्रॉप करें और तुरंत Base64 आउटपुट देखें। अपलोड की प्रतीक्षा नहीं, प्रगति पट्टी नहीं, सर्वर द्वारा लगाई गई कोई फ़ाइल आकार सीमा नहीं।
📁
कोई भी फ़ाइल प्रारूप
PDF, ZIP, इमेज, फ़ॉन्ट, ऑडियो फ़ाइलें, WebAssembly मॉड्यूल, या कोई अन्य बाइनरी प्रारूप एन्कोड करें। एन्कोडर सभी फ़ाइलों को कच्ची बाइट धारा के रूप में मानता है — प्रारूप कोई मायने नहीं रखता।
🔒
कोई खाता आवश्यक नहीं
साइन अप किए बिना, लॉग इन किए बिना, या कुकीज़ स्वीकार किए बिना तुरंत टूल का उपयोग करें। आउटपुट एक क्लिक में कॉपी करने या .b64.txt फ़ाइल के रूप में डाउनलोड करने के लिए तैयार है।

Base64 फ़ाइल एन्कोडिंग के उपयोग के मामले

फ्रंटेंड डेवलपर
अतिरिक्त HTTP अनुरोधों को समाप्त करने के लिए CSS या HTML में डेटा URI के रूप में छोटे आइकन, फ़ॉन्ट, या SVG सीधे एम्बेड करें। Base64 के रूप में इनलाइन किया गया 2 KB का आइकन एक नेटवर्क राउंड-ट्रिप बचाता है जो 50-200 ms विलंबता जोड़ता।
बैकेंड इंजीनियर
JSON API पेलोड में फ़ाइल अनुलग्नक शामिल करें जब परिवहन प्रोटोकॉल मल्टीपार्ट अपलोड का समर्थन न करे। REST या GraphQL प्रतिक्रियाओं में स्ट्रिंग फ़ील्ड के रूप में भेजने से पहले PDF, रिपोर्ट या हस्ताक्षरित दस्तावेज़ एन्कोड करें।
DevOps / अवसंरचना
बाइनरी कॉन्फ़िगरेशन फ़ाइलें (TLS प्रमाणपत्र, SSH कुंजियाँ, लाइसेंस फ़ाइलें) पर्यावरण चरों, Kubernetes Secrets, या Terraform tfvars में Base64 स्ट्रिंग के रूप में संग्रहीत करें जहाँ कच्चे बाइनरी मान की अनुमति नहीं है।
QA / परीक्षण इंजीनियर
स्वचालित परीक्षणों के लिए Base64 फ़ाइल फ़िक्सचर उत्पन्न करें जो संस्करण नियंत्रण में बाइनरी परीक्षण फ़ाइलों को प्रबंधित किए बिना अपलोड एंडपॉइंट, ईमेल अनुलग्नक हैंडलिंग, या दस्तावेज़ प्रसंस्करण पाइपलाइन सत्यापित करते हैं।
डेटा इंजीनियर
बाइनरी ब्लॉब (Parquet मेटाडेटा, Protobuf स्कीमा, छोटी बाइनरी संपत्तियाँ) को JSON-आधारित डेटा कैटलॉग, कॉन्फ़िगरेशन स्टोर, या माइग्रेशन स्क्रिप्ट में संग्रहण के लिए Base64 में क्रमबद्ध करें।
छात्र / सीखने वाला
छोटी फ़ाइलें एन्कोड करके और आउटपुट की जाँच करके देखें कि बाइनरी फ़ाइलें पाठ कैसे बनती हैं। RFC 4648 में वर्णित 33% अधिभार सत्यापित करने के लिए Base64 लंबाई की मूल फ़ाइल आकार से तुलना करें।

Base64 फ़ाइल आकार अधिभार

Base64 एन्कोडिंग डेटा आकार को ठीक एक तिहाई बढ़ा देती है। प्रत्येक 3 इनपुट बाइट 4 आउटपुट वर्ण उत्पन्न करते हैं (प्रत्येक 6 बिट दर्शाता है)। जब इनपुट की लंबाई 3 के गुणज में नहीं होती तो पैडिंग वर्ण (=) जोड़े जाते हैं। नीचे दी गई तालिका मूल फ़ाइल आकार और एन्कोडेड आउटपुट आकार के बीच संबंध दर्शाती है।

फ़ाइल आकारकच्चे बाइटBase64 बाइटअधिभार
1 KB1,024 B1,368 B+33.3%
10 KB10,240 B13,656 B+33.4%
100 KB102,400 B136,536 B+33.3%
1 MB1,048,576 B1,398,104 B+33.3%
5 MB5,242,880 B6,990,508 B+33.3%
10 MB10,485,760 B13,981,016 B+33.3%

Data URI और MIME प्रकार संदर्भ

एक Data URI फ़ाइल सामग्री को सीधे HTML, CSS, या JavaScript में इस प्रारूप का उपयोग करके एम्बेड करता है: data:[MIME प्रकार];base64,[एन्कोडेड डेटा]। MIME प्रकार ब्राउज़र को बताता है कि डीकोड किए गए बाइट की व्याख्या कैसे करें। नीचे सामान्य फ़ाइल एक्सटेंशन, उनके MIME प्रकार और संबंधित Data URI उपसर्ग दिए गए हैं।

एक्सटेंशनMIME प्रकारData URI उपसर्ग
.pdfapplication/pdfdata:application/pdf;base64,...
.zipapplication/zipdata:application/zip;base64,...
.pngimage/pngdata:image/png;base64,...
.jpgimage/jpegdata:image/jpeg;base64,...
.gifimage/gifdata:image/gif;base64,...
.svgimage/svg+xmldata:image/svg+xml;base64,...
.woff2font/woff2data:font/woff2;base64,...
.mp3audio/mpegdata:audio/mpeg;base64,...
.wasmapplication/wasmdata:application/wasm;base64,...
.binapplication/octet-streamdata:application/octet-stream;base64,...

कोड उदाहरण

ये चलाने योग्य उदाहरण दर्शाते हैं कि JavaScript, Python, Node.js, bash और Go में बाइनरी फ़ाइल कैसे पढ़ें और उसे Base64 में एन्कोड करें। प्रत्येक स्निपेट पैडिंग के साथ मानक Base64 (RFC 4648 अनुभाग 4) उत्पन्न करता है।

JavaScript (browser)
// Read a file from an <input> element and encode to Base64
const input = document.querySelector('input[type="file"]')
input.addEventListener('change', (e) => {
  const file = e.target.files[0]
  const reader = new FileReader()
  reader.onload = () => {
    const base64 = reader.result.split(',')[1]
    console.log(base64) // → "JVBERi0xLjQK..." (raw Base64, no data URI prefix)
  }
  reader.readAsDataURL(file)
})

// Convert a Blob to Base64 with async/await
async function blobToBase64(blob) {
  const buffer = await blob.arrayBuffer()
  const bytes = new Uint8Array(buffer)
  let binary = ''
  bytes.forEach(b => binary += String.fromCharCode(b))
  return btoa(binary) // → standard Base64 string
}
Python
import base64
from pathlib import Path

# Encode a file to Base64
file_bytes = Path('document.pdf').read_bytes()
encoded = base64.b64encode(file_bytes).decode('ascii')
print(encoded[:40])  # → "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PA..."

# Write encoded output to a text file
Path('document.b64.txt').write_text(encoded)

# Build a data URI from a file
mime_type = 'application/pdf'
data_uri = f'data:{mime_type};base64,{encoded}'
print(data_uri[:60])  # → "data:application/pdf;base64,JVBERi0xLj..."
Node.js
import { readFileSync, writeFileSync } from 'fs'

// Encode a file to Base64
const buffer = readFileSync('archive.zip')
const base64 = buffer.toString('base64')
console.log(base64.length) // → 1398104 (for a ~1 MB file)

// Save Base64 output to a file
writeFileSync('archive.b64.txt', base64)

// Build a data URI
const mime = 'application/zip'
const dataUri = `data:${mime};base64,${base64}`
CLI (bash)
# Encode a file to Base64 (macOS / Linux)
base64 < document.pdf > document.b64.txt

# Encode with no line wrapping (GNU coreutils)
base64 -w 0 < document.pdf > document.b64.txt

# Encode and copy to clipboard (macOS)
base64 < image.png | pbcopy

# Encode with OpenSSL (available everywhere)
openssl base64 -in archive.zip -out archive.b64.txt

# Pipe directly into curl for API upload
base64 -w 0 < photo.jpg | curl -X POST -d @- https://api.example.com/upload
Go
package main

import (
	"encoding/base64"
	"fmt"
	"os"
)

func main() {
	data, err := os.ReadFile("document.pdf")
	if err != nil {
		panic(err)
	}
	encoded := base64.StdEncoding.EncodeToString(data)
	fmt.Println(len(encoded)) // → 1398104 (for a ~1 MB file)

	// Write to file
	os.WriteFile("document.b64.txt", []byte(encoded), 0644)
}

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

मैं Base64 में अधिकतम कितनी बड़ी फ़ाइल एन्कोड कर सकता हूँ?
यह टूल पूरी तरह आपके ब्राउज़र में चलता है, इसलिए सीमा उपलब्ध मेमोरी पर निर्भर करती है। आधुनिक ब्राउज़र 50-100 MB तक की फ़ाइलें बिना किसी समस्या के संभालते हैं। इससे बड़ी फ़ाइलों के लिए, base64 (macOS/Linux) या Python के base64 मॉड्यूल जैसे कमांड-लाइन टूल का उपयोग करें, जो फ़ाइल को खंडों में संसाधित करते हैं और पूरे आउटपुट को एक साथ मेमोरी में नहीं लोड करते।
Base64 आउटपुट मूल फ़ाइल से कितना बड़ा होता है?
Base64 आउटपुट हमेशा इनपुट से लगभग 33.3% बड़ा होता है। विशेष रूप से, सूत्र है ceil(n / 3) * 4, जहाँ n इनपुट बाइट की संख्या है। 1 MB फ़ाइल लगभग 1.33 MB का Base64 पाठ उत्पन्न करती है। यह अधिभार एन्कोडिंग में अंतर्निहित है और इसे कम नहीं किया जा सकता।
क्या मैं किसी फ़ाइल को Base64 में एन्कोड करके Data URI के रूप में उपयोग कर सकता हूँ?
हाँ। Base64 स्ट्रिंग के पहले MIME प्रकार उपसर्ग जोड़ें: data:application/pdf;base64, और फिर एन्कोडेड सामग्री। ब्राउज़र Data URI को डीकोड करके उसे एक नियमित फ़ाइल की तरह प्रस्तुत करेगा। Data URI, img src, link href, CSS url() और anchor download विशेषताओं में काम करते हैं।
क्या Base64 फ़ाइल एन्कोडिंग एन्क्रिप्शन के समान है?
नहीं। Base64 एन्कोडिंग है, एन्क्रिप्शन नहीं। यह बाइनरी डेटा को एक पाठ प्रतिनिधित्व में बदलता है जो आसानी से उलटा किया जा सकता है — Base64 डीकोडर वाला कोई भी व्यक्ति मूल फ़ाइल पुनः प्राप्त कर सकता है। Base64 कोई गोपनीयता, अखंडता या प्रमाणीकरण प्रदान नहीं करता। यदि आपको फ़ाइल सामग्री की रक्षा करनी है, तो पहले फ़ाइल एन्क्रिप्ट करें (उदाहरण के लिए AES-256-GCM से), फिर परिवहन के लिए सिफरटेक्स्ट को Base64-एन्कोड करें।
मेरी Base64 स्ट्रिंग एक या दो = वर्णों से क्यों समाप्त होती है?
= वर्ण पैडिंग हैं। Base64 इनपुट को 3-बाइट समूहों में संसाधित करता है, प्रति समूह 4 आउटपुट वर्ण उत्पन्न करता है। जब फ़ाइल का आकार 3 का गुणज नहीं होता, तो आउटपुट की लंबाई हमेशा 4 का गुणज सुनिश्चित करने के लिए एक या दो पैडिंग वर्ण जोड़े जाते हैं। एक = का अर्थ है अंतिम समूह में 2 बाइट थे; दो == का अर्थ है अंतिम समूह में 1 बाइट था।
मैं कमांड लाइन से किसी फ़ाइल को Base64 में कैसे एन्कोड करूँ?
macOS और Linux पर, base64 कमांड का उपयोग करें: base64 < file.pdf > file.b64.txt। GNU/Linux पर, लाइन रैपिंग दबाने के लिए -w 0 जोड़ें। आप OpenSSL भी उपयोग कर सकते हैं: openssl base64 -in file.pdf -out file.b64.txt। Windows PowerShell पर: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf'))।
मुझे multipart/form-data के बजाय Base64 फ़ाइल एन्कोडिंग कब उपयोग करनी चाहिए?
Base64 तब उपयोग करें जब परिवहन केवल-पाठ प्रारूप की आवश्यकता हो — JSON API, XML-RPC, पर्यावरण चर, या Kubernetes Secrets। multipart/form-data तब उपयोग करें जब HTML फ़ॉर्म या बाइनरी धारा का समर्थन करने वाले REST एंडपॉइंट के माध्यम से फ़ाइलें अपलोड करें। मल्टीपार्ट अधिक कुशल है क्योंकि यह 33% आकार अधिभार से बचता है, लेकिन इसके लिए सर्वर को मल्टीपार्ट सीमाओं को पार्स करना आवश्यक है।