[गाइड] 8 मिनट पढ़ना

[गाइड] संपूर्ण Base64 संदर्भ

Base64 एन्कोडिंग के बारे में सब कुछ जो आपको जानना चाहिए: सिद्धांत, कार्यान्वयन और सर्वोत्तम प्रथाएं।

जनवरी 2025 | fundamentals

// BASE64 क्या है?

Base64 एक binary-to-text एन्कोडिंग स्कीम है जो 64 ASCII वर्णों का उपयोग करके binary डेटा को दर्शाती है। यह binary डेटा को एन्कोड करने के लिए डिज़ाइन की गई है जिसे textual डेटा के लिए डिज़ाइन किए गए मीडिया पर संग्रहीत और स्थानांतरित करना होता है।

Base64 कैरेक्टर सेट में A-Z, a-z, 0-9, और दो अतिरिक्त कैरेक्टर (आमतौर पर + और /) शामिल हैं, साथ ही padding के लिए =।

// BASE64 कैसे काम करता है

Base64 एन्कोडिंग binary डेटा लेकर और इसे ASCII वर्णों की स्ट्रिंग में बदलकर काम करती है। इस प्रक्रिया में शामिल है:

1. इनपुट को 6-bit चंक में विभाजित करें (Base64 प्रति वर्ण 6 बिट्स का उपयोग करता है) 2. प्रत्येक 6-bit मान को Base64 वर्णमाला में एक वर्ण से मैप करें 3. यदि आवश्यक हो तो '=' वर्णों के साथ padding जोड़ें

// उदाहरण: 'Man' को Base64 में एन्कोड करना
// 'M' = 01001101, 'a' = 01100001, 'n' = 01101110
// संयुक्त: 010011010110000101101110
// 6-bit समूहों में विभाजित: 010011 010110 000101 101110
// दशमलव मान: 19, 22, 5, 46
// Base64 वर्ण: T, W, F, u
// परिणाम: 'TWFu'

// सामान्य उपयोग के मामले

  • > HTML/CSS में छवियों को एम्बेड करना (data URIs)
  • > JSON APIs के लिए binary डेटा एन्कोड करना
  • > ईमेल अटैचमेंट (MIME एन्कोडिंग)
  • > डेटाबेस में binary डेटा संग्रहीत करना
  • > प्रमाणीकरण टोकन और API कीज़
  • > URL-safe डेटा ट्रांसमिशन

// JAVASCRIPT कार्यान्वयन

आधुनिक ब्राउज़र अंतर्निहित Base64 एन्कोडिंग और डिकोडिंग फ़ंक्शन प्रदान करते हैं:

text को Base64 में एन्कोड करने के लिए btoa() (binary to ASCII) का उपयोग करें। Base64 को text में डिकोड करने के लिए atob() (ASCII to binary) का उपयोग करें।

// Text को Base64 में एन्कोड करना
const text = 'Hello, World!';
const encoded = btoa(text);
console.log(encoded); // SGVsbG8sIFdvcmxkIQ==

// Base64 को text में डिकोड करना
const decoded = atob(encoded);
console.log(decoded); // Hello, World!

// Unicode strings के लिए, TextEncoder/TextDecoder का उपयोग करें
const encoder = new TextEncoder();
const decoder = new TextDecoder();

const unicodeText = 'Hello, 世界!';
const bytes = encoder.encode(unicodeText);
const base64 = btoa(String.fromCharCode(...bytes));
console.log(base64);

// सुरक्षा विचार

Base64 encryption या security नहीं है। यह केवल डेटा प्रतिनिधित्व के लिए एन्कोडिंग है। महत्वपूर्ण सुरक्षा नोट्स:

संवेदनशील डेटा सुरक्षा के लिए कभी भी Base64 अकेले का उपयोग न करें। इंजेक्शन अटैक को रोकने के लिए हमेशा Base64 इनपुट को validate करें। ध्यान रखें कि Base64 डेटा का आकार ~33% बढ़ाता है।

  • > Base64 आसानी से reversible है - यह कोई सुरक्षा प्रदान नहीं करती
  • > हमेशा Base64 इनपुट को validate और sanitize करें
  • > संवेदनशील डेटा के लिए उचित encryption का उपयोग करें
  • > वेब एप्लिकेशन के लिए URL-safe Base64 variants पर विचार करें
  • > कुछ संदर्भों में padding oracle attacks से सावधान रहें

// सर्वोत्तम प्रथाएं

  • > वेब एप्लिकेशन के लिए URL-safe Base64 का उपयोग करें (+ को - से, / को _ से बदलें)
  • > हमेशा padding को सही तरीके से handle करें
  • > इनपुट की लंबाई और वर्णों को validate करें
  • > बड़े डेटा के लिए एन्कोडिंग से पहले compression पर विचार करें
  • > बहुत बड़े डेटा सेट के लिए streaming का उपयोग करें
  • > अमान्य इनपुट के लिए उचित error handling implement करें