टेक्स्ट को मानक Base64 स्ट्रिंग में बदलें या वैध Base64 को वापस टेक्स्ट में डिकोड करें। यह टूल API, JSON, कॉन्फ़िगरेशन, HTML और लॉग के साथ काम करते समय छोटे अंशों के लिए उपयुक्त है। Base64 बाइनरी डेटा को टेक्स्ट अक्षरों द्वारा प्रस्तुत करने के लिए है, उनकी सुरक्षा के लिए नहीं।
Base64 क्या करता है
कंप्यूटर टेक्स्ट और फ़ाइलों को बाइट्स के अनुक्रम के रूप में संग्रहीत करता है। हर ट्रांसमिशन चैनल मनमाने बाइट्स के साथ आसानी से काम नहीं करता, इसलिए Base64 उन्हें मुद्रण योग्य ASCII अक्षरों के सीमित सेट में परिवर्तित करता है।
मानक वर्णमाला में उपयोग होते हैं:
- लैटिन अक्षर
A–Zऔरa–z; - अंक
0–9; +और/प्रतीक;- आवश्यकता होने पर अंत में पूरक के लिए
=चिह्न।
उदाहरण:
मूल पाठ: भारत
Base64: 4K2t4K2+4K2g4K2k
इस स्ट्रिंग का डिकोडिंग मूल बाइट अनुक्रम लौटाता है, और फिर टूल इसे टेक्स्ट के रूप में दिखाने का प्रयास करता है।
Base64 एन्क्रिप्शन नहीं है
एन्कोडेड स्ट्रिंग को कोई भी व्यक्ति या प्रोग्राम डिकोड कर सकता है। Base64 में कोई गुप्त कुंजी, पासवर्ड या पहुँच प्रतिबंध तंत्र नहीं है।
इसलिए Base64 को सुरक्षा के रूप में उपयोग नहीं किया जा सकता:
- पासवर्ड;
- API कुंजियाँ और टोकन;
- व्यक्तिगत डेटा;
- निजी दस्तावेज़;
- भुगतान जानकारी;
- कॉन्फ़िगरेशन रहस्य।
एन्कोडिंग डेटा के प्रतिनिधित्व को बदलती है, लेकिन उन्हें गोपनीय नहीं बनाती। «Base64 को डिक्रिप्ट करें» शब्द तकनीकी रूप से गलत है: सही शब्द «डिकोड करें» है।
Base64 डेटा को कंप्रेस नहीं करता
प्रत्येक तीन मूल बाइट्स आमतौर पर चार Base64 अक्षरों में बदल जाते हैं। लाइन ब्रेक को छोड़कर परिणाम का सटीक आकार इस प्रकार अनुमानित किया जा सकता है:
4 × ceil(मूल बाइट्स की संख्या / 3)
पर्याप्त बड़े डेटा के लिए आयतन लगभग एक-तिहाई बढ़ जाता है। छोटी स्ट्रिंग्स के लिए सापेक्ष वृद्धि राउंडिंग और = चिह्नों के कारण अधिक हो सकती है।
Base64 का उपयोग स्थान बचाने के लिए नहीं किया जाता, बल्कि तब किया जाता है जब डेटा को टेक्स्ट प्रारूप के माध्यम से सुरक्षित रूप से प्रेषित करने की आवश्यकता होती है। यदि आकार महत्वपूर्ण है, तो पहले उपयुक्त कंप्रेशन का उपयोग करें, और फिर Base64 – केवल तभी जब ट्रांसपोर्ट वास्तव में इसकी आवश्यकता हो।
टेक्स्ट एन्कोडिंग क्यों मायने रखती है
Base64 बाइट्स को एन्कोड करता है, न कि अमूर्त अक्षरों को। एन्कोडिंग से पहले टेक्स्ट को बाइट्स में परिवर्तित किया जाना चाहिए, अधिकतर UTF-8 में।
UTF-8, UTF-16 या किसी अन्य एन्कोडिंग में समान स्ट्रिंग अलग-अलग Base64 परिणाम देगी। डिकोडिंग करते समय बाइट्स को भी सही एन्कोडिंग में पढ़ा जाना चाहिए। यदि हिंदी अक्षरों के स्थान पर अपठनीय वर्ण दिखाई दें, तो संभावित कारण एन्कोडिंग बेमेल है, Base64 एल्गोरिथ्म में त्रुटि नहीं।
Base64url और सामान्य Base64 में क्या अंतर है
URL, कुकीज़ और कुछ टोकन में +, / और = प्रतीक असुविधाजनक हो सकते हैं। इसलिए RFC 4648 URL-सुरक्षित वैरिएंट परिभाषित करता है – Base64url।
| मानक Base64 | Base64url |
|---|---|
+ |
- |
/ |
_ |
= पूरक आमतौर पर बनाए रखा जाता है |
पूरक अक्सर हटा दिया जाता है यदि इसकी लंबाई ज्ञात हो |
ये वर्णमाला के भिन्न वैरिएंट हैं। Base64url स्ट्रिंग को हमेशा बिना तैयारी के मानक Base64 डिकोडर को नहीं दिया जा सकता। आवश्यकता होने पर प्रतीकों को बदलें और लुप्त पूरक को चार के गुणज लंबाई तक पुनर्स्थापित करें।
JWT सेगमेंट आमतौर पर Base64url के माध्यम से प्रस्तुत किए जाते हैं, न कि मानक Base64 के माध्यम से। उनका डिकोडिंग हेडर और पेलोड की सामग्री को पढ़ने की अनुमति देता है, लेकिन टोकन की प्रामाणिकता की पुष्टि नहीं करता: इसके लिए क्रिप्टोग्राफ़िक हस्ताक्षर की जाँच करनी होगी।
Base64 वास्तव में कहाँ उपयोग किया जाता है
टेक्स्ट API और डेटा प्रारूप
कुछ इंटरफेस को बाइनरी डेटा या विशेष स्ट्रिंग को JSON, XML या अन्य टेक्स्ट संदेश के अंदर सम्मिलित करने की आवश्यकता होती है। Base64 बाइट्स को ट्रांसपोर्ट के नियंत्रण वर्णों के साथ संघर्ष के बिना प्रेषित करने की अनुमति देता है।
MIME और ईमेल
Base64 का उपयोग MIME संदेशों में अनुलग्नकों और सामग्री को प्रस्तुत करने के लिए किया जा सकता है। किसी विशिष्ट ईमेल के प्रारूप में हेडर और लाइन ब्रेक नियम भी होते हैं, इसलिए अकेले Base64 स्ट्रिंग पूर्ण ईमेल बनाने के लिए पर्याप्त नहीं है।
Data URL
एक छोटे संसाधन को HTML या CSS में एम्बेड किया जा सकता है:
data:image/png;base64,iVBORw0KGgo...
Base64 से पहले MIME प्रकार निर्दिष्ट किया जाता है। एम्बेडिंग से टेक्स्ट का आकार बढ़ जाता है और संसाधन सामान्य अलग कैशिंग से वंचित हो जाता है, इसलिए यह सभी फ़ाइलों के लिए उपयुक्त नहीं है।
HTTP बेसिक प्रमाणीकरण
Basic Auth हेडर में उपयोगकर्ता नाम और पासवर्ड को जोड़ा जाता है और Base64 में एन्कोड किया जाता है। यह अपने आप में क्रेडेंशियल्स की सुरक्षा नहीं करता; ट्रांसमिशन सुरक्षा HTTPS पर निर्भर करती है।
लॉग और डिबगिंग
डिकोडिंग API प्रतिक्रिया, लॉग या कॉन्फ़िगरेशन के छोटे अंश की सामग्री को समझने में मदद करता है। लेकिन प्रोडक्शन रहस्यों या व्यक्तिगत डेटा को तृतीय-पक्ष ऑनलाइन टूल में न डालें।
स्ट्रिंग डिकोड क्यों नहीं होती
सबसे सामान्य कारण:
- स्ट्रिंग कटी हुई है;
- Base64url प्रतीक
-और_का उपयोग किया जाता है, जबकि डिकोडर+और/की अपेक्षा करता है; - आवश्यक
=पूरक चिह्न अनुपस्थित हैं; - अंदर रिक्त स्थान, लाइन ब्रेक या बाहरी वर्ण हैं;
- Data URL उपसर्ग डेटा के साथ कॉपी किया गया है;
- मूल बाइट्स टेक्स्ट नहीं हैं;
- डिकोडिंग के बाद गलत टेक्स्ट एन्कोडिंग लागू की जाती है।
डिकोडरों का सख्त व्यवहार भिन्न होता है: कुछ रिक्त स्थान को अनदेखा करते हैं या पूरक को पुनर्स्थापित करते हैं, अन्य स्ट्रिंग को अस्वीकार करते हैं। एकीकरण के लिए, उपयोग की जाने वाली लाइब्रेरी और प्रोटोकॉल की आवश्यकताओं का पालन करें।
टेक्स्ट और फ़ाइलें अलग-अलग कार्य हैं
यह उपयोगिता टेक्स्ट के लिए है। हालांकि तकनीकी रूप से किसी भी फ़ाइल को Base64 में प्रस्तुत किया जा सकता है, बड़ी छवि, संग्रह या दस्तावेज़ के लिए फ़ाइल एन्कोडर या सॉफ़्टवेयर लाइब्रेरी का उपयोग करना अधिक सुविधाजनक है। मनमाने बाइनरी बाइट्स को टेक्स्ट के रूप में खोलने का प्रयास अपठनीय परिणाम या कॉपी करते समय डेटा हानि दे सकता है।
ऑनलाइन कन्वर्टर का उपयोग करते समय सुरक्षा
वास्तविक पासवर्ड, निजी कुंजियाँ, पहुँच टोकन, प्रमाणीकरण कुकीज़, व्यक्तिगत डेटा और गोपनीय दस्तावेज़ न डालें। भले ही प्रोसेसिंग ब्राउज़र में होने का दावा किया जाता है, सुरक्षित अभ्यास गुप्त डेटा के लिए स्थानीय उपकरणों का उपयोग करना और मानों को परीक्षण उदाहरणों से बदलना है।
अक्सर पूछे जाने वाले प्रश्न
क्या Base64 से मूल टेक्स्ट पुनर्प्राप्त किया जा सकता है?
हाँ, यदि स्ट्रिंग क्षतिग्रस्त नहीं है, Base64 का सही वैरिएंट उपयोग किया गया है, और मूल बाइट्स वास्तव में ज्ञात एन्कोडिंग में टेक्स्ट का प्रतिनिधित्व करते हैं।
अंत में एक या दो = चिह्न क्यों होते हैं?
यह पूरक है जो अंतिम समूह को आवश्यक लंबाई में संरेखित करता है। यह मूल टेक्स्ट का हिस्सा नहीं है।
समान टेक्स्ट के लिए दो प्रोग्राम अलग-अलग स्ट्रिंग्स क्यों देते हैं?
वे विभिन्न टेक्स्ट एन्कोडिंग, Base64 या Base64url का उपयोग कर सकते हैं, BOM शामिल कर सकते हैं, या अंतिम लाइन ब्रेक को अलग-अलग संभाल सकते हैं।
क्या पासवर्ड को Base64 में संग्रहीत किया जा सकता है?
नहीं। Base64 आसानी से उलटा जा सकता है और पासवर्ड के सुरक्षित भंडारण के लिए डिज़ाइन नहीं किया गया है। सर्वर पर पासवर्ड संग्रहीत करने के लिए सॉल्ट और उपयुक्त लागत मापदंडों के साथ विशेष पासवर्ड हैशिंग एल्गोरिदम का उपयोग किया जाता है।
क्या डिकोड किया गया JWT का अर्थ है कि टोकन वास्तविक है?
नहीं। डिकोडिंग केवल डेटा दिखाता है। प्रामाणिकता और अखंडता की पुष्टि सिस्टम नियमों के अनुसार हस्ताक्षर की अलग से जाँच द्वारा की जाती है।
संबंधित उपकरण: पासवर्ड जनरेटर; टेक्स्ट प्रोसेसर; Diffchecker.
आधिकारिक मानक:
- RFC 4648 — Base-N Encodings: https://www.rfc-editor.org/rfc/rfc4648
