मालिक बेस 64 फ्रंटएंड डेवलपमेंट के लिए
समझने के लिए एक व्यापक मार्गदर्शिका बेस 64 आधुनिक वेब डिज़ाइन में एन्कोडिंग, डिकोडिंग और व्यावहारिक अनुप्रयोग।
कोशिश बेस 64 कूटलेखन कूटानुवाद करना
वास्तव में क्या है बेस 64?
बेस 64 एक बाइनरी-टू-टेक्स्ट एन्कोडिंग योजना है जो बाइनरी डेटा (जैसे छवियां, फ़ाइलें, या कच्चे बाइट्स) को ASCII वर्णों में परिवर्तित करती है। यह रूपांतरण बाइनरी डेटा को केवल-टेक्स्ट डेटा के लिए डिज़ाइन किए गए सिस्टम में सुरक्षित रूप से प्रसारित और संग्रहीत करने की अनुमति देता है - जैसे ईमेल प्रोटोकॉल, HTML, या एपीआई प्रतिक्रियाएँ।
"बेस64" नाम बाइनरी मानों को दर्शाने के लिए 64 अलग-अलग वर्णों (ए-जेड, ए-जेड, 0-9, '+', और '/') के उपयोग से आया है। प्रत्येक बेस 64 कैरेक्टर 6 बिट डेटा को एन्कोड करता है, जिससे यह टेक्स्ट-केंद्रित वातावरण में बाइनरी सामग्री को संभालने का एक कुशल तरीका बन जाता है।
एन्क्रिप्शन के विपरीत, बेस 64 यह कोई सुरक्षा उपाय नहीं है—यह पूरी तरह से डेटा फ़ॉर्मेटिंग के लिए है। कोई भी व्यक्ति बेस64 सामग्री को बुनियादी उपकरणों से डिकोड कर सकता है, इसलिए संवेदनशील जानकारी की सुरक्षा के लिए इसका उपयोग कभी नहीं किया जाना चाहिए।
बेस64 कैरेक्टर सेट
* "=" का उपयोग अपूर्ण डेटा के लिए पैडिंग कैरेक्टर के रूप में किया जाता है
कैसे हुआ बेस 64 एन्कोडिंग कार्य?
-
1
बाइनरी डेटा को 8-बिट बाइट्स में कनवर्ट करें
प्रक्रिया बाइनरी डेटा (उदाहरण के लिए, एक छवि फ़ाइल) से शुरू होती है। इस डेटा को 8-बिट (1-बाइट) खंडों में विभाजित किया गया है, जो इसके लिए कच्चा इनपुट बनाते हैं बेस 64 एन्कोडिंग.
-
2
बाइट्स को 24-बिट खंडों में समूहित करें
तब से बेस 64 6-बिट वर्णों का उपयोग करता है, 8-बिट बाइट्स को 24-बिट (3-बाइट) खंडों में समूहीकृत किया जाता है। 24 बिट्स को समान रूप से चार 6-बिट खंडों (4 × 6 = 24) में विभाजित किया जा सकता है।
-
3
6-बिट सेगमेंट को बेस 64 कैरेक्टर में बदलें
प्रत्येक 6-बिट खंड को दशमलव मान (0-63) में परिवर्तित किया जाता है। फिर इस मान को संबंधित वर्ण से मैप किया जाता है बेस 64 वर्ण सेट (जैसे, 0 = "ए", 1 = "बी", ..., 63 = "/")।
-
4
अधूरे टुकड़ों के लिए पैडिंग जोड़ें
यदि बाइनरी डेटा की लंबाई 3 बाइट्स की गुणज नहीं है, तो अंतिम भाग अधूरा होगा। बेस 64 गुम बाइट्स को इंगित करने के लिए "=" पैडिंग वर्णों का उपयोग करता है (1 गायब बाइट के लिए 1 "=", 2 गायब बाइट्स के लिए 2 "="।
बेस64 एन्कोडिंग उदाहरण: टेक्स्ट "हाय!"
| कदम | इनपुट डेटा | द्विआधारी प्रतिनिधित्व | बेस64 आउटपुट |
|---|---|---|---|
| 1. कच्चा पाठ | "नमस्ते!" | – | – |
| 2. 8-बिट बाइट्स (ASCII) | एच (72), आई (105), ! (33) | 01001000, 01101001, 00100001 | – |
| 3. 24-बिट चंक | 72, 105, 33 | 010010000110100100100001 | – |
| 4. 6-बिट खंडों में विभाजित करें | – | 010010, 000110, 100100, 100001 | – |
| 5. दशमलव में बदलें | – | – | 18, 6, 36, 33 |
| 6. बेस64 वर्णों पर मैप करें | – | – | "त्वचा" |
फ़्रंट एंड बेस 64 मामलों का प्रयोग करें
छवियों के लिए डेटा यूआरएल
छोटी छवियों (जैसे आइकन या अवतार) को सीधे HTML/CSS का उपयोग करके एम्बेड करें बेस 64 डेटा यूआरएल. यह HTTP अनुरोधों को कम करता है और छोटी संपत्तियों के लिए पेज लोड गति में सुधार करता है।
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Icon">
एपीआई बाइनरी डेटा ट्रांसमिशन
इसे एन्कोड करके REST API के माध्यम से बाइनरी डेटा (जैसे फ़ाइलें या PDF) संचारित करें बेस 64. यह टेक्स्ट-आधारित एपीआई पेलोड (उदाहरण के लिए, JSON) में बाइनरी डेटा भ्रष्टाचार के मुद्दों से बचाता है।
{ "fileData": "JVBERi0xLjQKJeLjz9MNCjYgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeAovRjEgMTAgVGYKMDAwLjEwNS4wMDAuMTAwCjAwMC4yOTkuMDAwLjAwMAo...", "fileName": "report.pdf" }
कुकी और लोकलस्टोरेज टेक्स्ट बाधाएँ
कुकीज़ या लोकलस्टोरेज (जो केवल टेक्स्ट का समर्थन करता है) में छोटे बाइनरी डेटा को एन्कोड करके संग्रहीत करें बेस 64. उपयोगकर्ता प्राथमिकताओं या छोटी संपत्तियों को स्थानीय रूप से सहेजने के लिए उपयोगी।
// Save Base64 data to LocalStorage
localStorage.setItem('userAvatar', 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA...');
ईमेल अनुलग्नक एन्कोडिंग
अधिकांश ईमेल प्रोटोकॉल (जैसे एसएमटीपी) केवल टेक्स्ट के लिए होते हैं। बेस 64 इसका उपयोग ईमेल अनुलग्नकों (छवियों, दस्तावेज़ों) को एन्कोड करने के लिए किया जाता है ताकि उन्हें भ्रष्टाचार के बिना प्रसारित किया जा सके।
Content-Type: image/jpeg; name="photo.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="photo.jpg"
/9j/4AAQSkZJRgABAQEAZABkAAD/7QBsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA...
इनलाइन एसवीजी एन्कोडिंग
एसवीजी फाइलों को एनकोड करें बेस 64 सीएसएस पृष्ठभूमि या HTML विशेषताओं में इनलाइन उपयोग के लिए। यह छोटे वेक्टर ग्राफिक्स के लिए परिसंपत्ति प्रबंधन को सरल बनाता है।
.icon {
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyIDJBMTAgMTAgMCAwIDEgMjIgMTJBMTAgMTAgMCAwIDEgMTIgMjJBMTAgMTAgMCAwIDEgMiAxMkExMCAxMCAwIDAgMSAxMiAyWiIgc3Ryb2tlPSIjMTY1REZGIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4=');
}
कैनवास छवि निर्यात
HTML5 कैनवस API का उपयोग करता है बेस 64 खींची गई सामग्री को छवि डेटा के रूप में निर्यात करने के लिए (के माध्यम से)। toDataURL()). यह उपयोगकर्ता-जनित कलाकृति या स्क्रीनशॉट को सहेजने में सक्षम बनाता है।
// Get Base64 data from Canvas
const canvas = document.getElementById('myCanvas');
const base64Image = canvas.toDataURL('image/png'); // "data:image/png;base64,iVBORw0KGgo..."
फ़्रंट एंड बेस 64 कोड उदाहरण
बुनियादी बेस 64 कूटलेखन कूटानुवाद करना
जावास्क्रिप्ट के अंतर्निर्मित का उपयोग करें btoa() (बाइनरी-टू-एएससीआईआई) और atob() (एएससीआईआई-टू-बाइनरी) सरल के लिए कार्य करता है बेस 64 परिचालन. नोट: ये फ़ंक्शन UTF-8 स्ट्रिंग्स के साथ काम करते हैं।
// Encode text to Base64
function encodeToBase64(text) {
// Encode UTF-8 to avoid issues with special characters
const utf8Text = unescape(encodeURIComponent(text));
return btoa(utf8Text);
}
// Decode Base64 to text
function decodeFromBase64(base64String) {
const utf8Text = atob(base64String);
return decodeURIComponent(escape(utf8Text));
}
// Example usage
const originalText = "Hello, Base64!";
const encodedText = encodeToBase64(originalText);
const decodedText = decodeFromBase64(encodedText);
console.log("Original:", originalText); // "Hello, Base64!"
console.log("Encoded:", encodedText); // "SGVsbG8sIEJhc2U2NCE="
console.log("Decoded:", decodedText); // "Hello, Base64!"
छवि को एनकोड करें बेस 64
एक छवि फ़ाइल (फ़ाइल इनपुट के माध्यम से चयनित) को कनवर्ट करें बेस 64 FileReader API का उपयोग करना। छवियों को अपलोड करने या उन्हें इनलाइन एम्बेड करने से पहले उनका पूर्वावलोकन करने के लिए उपयोगी।
// Get elements from DOM
const fileInput = document.getElementById('image-upload');
const previewImage = document.getElementById('image-preview');
const base64Output = document.getElementById('image-base64');
// Handle file selection
fileInput.addEventListener('change', (e) => {
const file = e.target.files[0];
if (!file || !file.type.startsWith('image/')) {
alert('Please select an image file!');
return;
}
// Create FileReader to read the image
const reader = new FileReader();
// On load, get Base64 data
reader.onload = (event) => {
const base64Data = event.target.result;
// Preview the image
previewImage.src = base64Data;
previewImage.style.display = 'block';
// Show Base64 data (truncated for readability)
const truncatedData = base64Data.length > 100
? base64Data.substring(0, 100) + '...'
: base64Data;
base64Output.textContent = truncatedData;
};
// Read the file as Base64
reader.readAsDataURL(file);
});
बेस64 डेटा (छोटा किया गया):
बेस 64 ब्लॉब करने के लिए (फ़ाइल डाउनलोड करें)
बदलना बेस 64 ब्राउज़र में डाउनलोड करने योग्य फ़ाइलें (उदाहरण के लिए, पीडीएफ़, छवियां) बनाने के लिए डेटा को ब्लॉब (बाइनरी बड़ी ऑब्जेक्ट) पर वापस भेजा जाता है।
// Convert Base64 to Blob
function base64ToBlob(base64Data, contentType = 'application/octet-stream') {
// Extract Base64 data (remove "data:..." prefix if present)
const base64WithoutPrefix = base64Data.startsWith('data:')
? base64Data.split(',')[1]
: base64Data;
// Decode Base64 to binary string
const binaryString = atob(base64WithoutPrefix);
const byteLength = binaryString.length;
// Convert binary string to Uint8Array
const uint8Array = new Uint8Array(byteLength);
for (let i = 0; i < byteLength; i++) {
uint8Array[i] = binaryString.charCodeAt(i);
}
// Create and return Blob
return new Blob([uint8Array], { type: contentType });
}
// Trigger file download from Blob
function downloadBlobAsFile(blob, fileName) {
// Create temporary URL for Blob
const url = URL.createObjectURL(blob);
// Create anchor element to trigger download
const a = document.createElement('a');
a.href = url;
a.download = fileName;
// Simulate click to start download
document.body.appendChild(a);
a.click();
// Clean up
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
// Example: Download Base64 PDF
const base64Pdf = "JVBERi0xLjQKJeLjz9MNCjYgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeAovRjEgMTAgVGYKMDAwLjEwNS4wMDAuMTAwCjAwMC4yOTkuMDAwLjAwMAo...";
const pdfBlob = base64ToBlob(base64Pdf, 'application/pdf');
downloadBlobAsFile(pdfBlob, 'report.pdf');
Vue.js बेस 64 अवयव
के लिए एक पुन: प्रयोज्य Vue.js घटक बेस 64 कूटलेखन कूटानुवाद करना। वास्तविक समय के अपडेट के लिए Vue की प्रतिक्रियाशीलता प्रणाली के साथ एकीकृत होता है।
<template>
<div class="base64-converter">
<h3 class="text-lg font-semibold mb-4">Vue Base64 Converter</h3>
<!-- Input for text -->
<div class="mb-4">
<label class="block mb-2 text-sm font-medium">Enter Text:</label>
<textarea
v-model="inputText"
class="w-full p-2 border rounded"
rows="3"
placeholder="Type text to encode..."
></textarea>
<button
@click="encode"
class="mt-2 px-4 py-1 bg-primary text-white rounded"
>Encode to Base64</button>
</div>
<!-- Output for Base64 -->
<div class="mb-4">
<label class="block mb-2 text-sm font-medium">Base64 Result:</label>
<textarea
v-model="base64Output"
class="w-full p-2 border rounded"
rows="3"
readonly
></textarea>
<button
@click="decode"
class="mt-2 px-4 py-1 bg-secondary text-white rounded"
>Decode to Text</button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
inputText: '',
base64Output: ''
};
},
methods: {
encode() {
if (!this.inputText) return;
// Encode UTF-8 text to Base64
const utf8Text = unescape(encodeURIComponent(this.inputText));
this.base64Output = btoa(utf8Text);
},
decode() {
if (!this.base64Output) return;
// Decode Base64 to UTF-8 text
const utf8Text = atob(this.base64Output);
this.inputText = decodeURIComponent(escape(utf8Text));
}
}
};
</script>
के बारे में अक्सर पूछे जाने वाले प्रश्न बेस 64
उपयोग करना प्रारंभ करें बेस 64 आपके फ्रंटएंड प्रोजेक्ट्स में
चाहे आप छवियां एम्बेड कर रहे हों, एपीआई के माध्यम से फ़ाइलें प्रसारित कर रहे हों, या उपयोगकर्ता-जनित सामग्री के साथ काम कर रहे हों, बेस 64 आधुनिक वेब डेवलपर्स के लिए एक आवश्यक उपकरण है। एकीकृत करने के लिए उपरोक्त कोड उदाहरणों का उपयोग करें बेस 64 आपके अगले प्रोजेक्ट में एन्कोडिंग और डिकोडिंग।
