# Base64 एनकोडर-डिकोडर — और URL, HTML एंटिटी, हेक्स और एस्केप

Base64, परसेंट एनकोडिंग, HTML एंटिटी, हेक्स और बैकस्लैश एस्केप, दोनों दिशाओं में। कुछ भी किसी और के सर्वर में चिपकाया नहीं जाता।

> Base64 को दोनों वर्णमालाओं में एनकोड और डिकोड कीजिए, URL को परसेंट एनकोड कीजिए, HTML एंटिटी एस्केप कीजिए, और हेक्स तथा बैकस्लैश एस्केप पढ़िए। यह सब आपके ब्राउज़र में चलता है और कुछ भी अपलोड नहीं होता - कोई टोकन आपकी मशीन से कभी बाहर नहीं जाता।

यह पेज एक इंटरैक्टिव टूल है जो पूरी तरह आपके ब्राउज़र में चलता है, https://abox.tools/hi/base64/ पर — आप इसे जो भी देते हैं, वह कहीं अपलोड नहीं होता। आगे वह सब कुछ है जो यह पेज इस टूल के बारे में शब्दों में कहता है; इसे इस्तेमाल करने के लिए यह पता खोलें।

## यह टूल टेक्स्ट **कभी अपलोड नहीं करता**। यहाँ कोई सर्वर है ही नहीं।

यहाँ की हर एनकोडिंग किसी लाइन पर की गई गणित है, और यहीं, इसी पेज में होती है। कोडेक हाथ से लिखे गए हैं और `src/encode.js` में मौजूद हैं, और इनके सिवा कुछ है ही नहीं। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, इसलिए यहाँ से कुछ मँगाया भी नहीं जा सकता और भेजा भी नहीं जा सकता। यह बात लगभग कहीं और से ज़्यादा यहाँ मायने रखती है, क्योंकि लोग किसी ऑनलाइन Base64 डिकोडर में जो चिपकाते हैं वह टोकन होता है, और टोकन किसी और की वेबसाइट में चिपकाने का मतलब है उसे सौंप देना।

- ✗ कोई अपलोड नहीं
- ✗ कोई खाता नहीं
- ✗ साइज़ की कोई सीमा नहीं
- ✓ ऑफ़लाइन चलता है
- ✓ ओपन सोर्स

## Base64 को बिना अपलोड किए कैसे एनकोड या डिकोड करें

1. **एनकोडिंग चुनिए।** दोनों वर्णमालाओं में Base64, किसी एक मान या पूरे URL के लिए परसेंट एनकोडिंग, पाँच HTML एंटिटी, हेक्स बाइट, और स्ट्रिंग लिटरल वाले बैकस्लैश एस्केप। मेन्यू के नीचे की टिप्पणी बताती है कि कौन-सी किस काम की है।
2. **दिशा चुनिए।** *Encode* सादा टेक्स्ट लेकर एनकोड किया हुआ रूप बनाता है; *Decode* एनकोड किए हुए रूप को सादे टेक्स्ट में लौटा लाता है। नतीजा आपकी टाइपिंग के साथ-साथ बदलता है, इसलिए दिशा बदलना एक क्लिक है और दोबारा कुछ नहीं लिखना पड़ता।
3. **इसे भीतर चिपकाइए, या फ़ाइल छोड़ दीजिए।** जो कुछ भी आप चुनकर कॉपी कर सकते हैं वह चल जाता है। पिकर पर छोड़ी गई फ़ाइल आपका अपना ब्राउज़र पढ़कर डिब्बे में रख देता है, और छोड़ने को अपलोड वाला कोई कदम है ही नहीं।
4. **कोई त्रुटि हो तो पढ़ लीजिए।** यहाँ नाकाम होने वाला डिकोडर बता देता है कि उसे क्या मिला — ऐसा अक्षर जो Base64 इस्तेमाल नहीं करता, गलत जगह पड़ी पैडिंग, ऐसे बाइट जो टेक्स्ट नहीं हैं — बजाय इसके कि कुछ भला-सा दिखने वाला मगर गलत लौटा दे।
5. **नतीजा ले जाइए।** कॉपी कर लीजिए, या टेक्स्ट फ़ाइल की तरह डाउनलोड कर लीजिए। डिब्बे के नीचे की गिनती बताती है कि कितने बाइट भीतर गए और कितने बाहर आए।

## बॉक्स में और भी टूल

- [टेक्स्ट और फ़ाइलें साझा करें](https://abox.tools/hi/share-text/): साझा की गई चीज़ इसी खुले टैब में रहती है। पाठक उसे एन्क्रिप्टेड रूप में सीधे आपके ब्राउज़र से पाते हैं, और टैब बंद करते ही सब खत्म - किसी सर्वर पर कुछ नहीं रहता।
- [QR और बारकोड जनरेटर](https://abox.tools/hi/qr-barcode/): टाइप कीजिए, और वह कोड बन जाता है। बनाने के लिए कुछ भी कहीं नहीं भेजा जाता।
- [QR और बारकोड रीडर](https://abox.tools/hi/qr-barcode-reader/): कैमरा कोड पर कीजिए, या उसकी तस्वीर यहाँ छोड़ दीजिए। पढ़ना यहीं होता है, और कहीं नहीं।
- [हैश और चेकसम](https://abox.tools/hi/hash-checksum/): डाउनलोड की गई फ़ाइल को उस नंबर से मिलाइए जो बनाने वाले ने छापा है, बिना उसे किसी को भेजे।

## सवाल

### क्या मेरा टेक्स्ट कहीं अपलोड होता है?

नहीं। इस पेज का हर एनकोडर और हर डिकोडर एक फ़ंक्शन है जो आपके अपने ब्राउज़र में, आपके अपने हार्डवेयर पर चलता है। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, यानी यह न कभी कुछ मँगाता है, न कभी कुछ भेजता है। और पेज की `Content-Security-Policy` उन सारे पतों के नाम गिना देती है जिनसे यह संपर्क कर सकता है, जिनमें से एक भी इस साइट का नहीं है। किसी ऐक्सेस टोकन या सेशन कुकी के लिए इसे इस्तेमाल करने की वजह भी यही है, क्योंकि इनमें से कोई भी किसी और के डिकोडर में चिपकाने का मतलब है उसे वह दे देना।

### क्या यहाँ का Base64 वही Base64 है जो बाकी हर जगह है?

हाँ, और इसे खुद अपने बजाय RFC 4648 के टेस्ट वेक्टरों से जाँचा जाता है। दोनों वर्णमालाएँ डिकोड होती हैं, इसलिए `-` और `_` से लिखा JWT उतनी ही आसानी से पढ़ा जाता है जितना `+` और `/` से लिखा, और 64 अक्षरों पर लपेटा गया इनपुट आपके लिए खोल दिया जाता है। एनकोडिंग UTF-8 बाइटों के हिसाब से होती है, इसलिए कोई मात्रा वाला अक्षर या इमोजी पूरा चक्कर लगाकर भी बचा रहता है।

### क्या Base64 एन्क्रिप्शन है?

नहीं, और इसे एन्क्रिप्शन समझ लेना ही सबसे जानी-पहचानी भूल है। Base64 एक लिखावट है: वही बाइट, ऐसी वर्णमाला में लिखे हुए जो URL, ईमेल या JSON स्ट्रिंग में सलामत रहती है। कोई भी उसे वापस पढ़ सकता है — यह पेज एक मिलीसेकंड में पढ़ लेता है — इसलिए यह न कुछ छिपाता है, न कुछ बचाता है। आपके पास जो है वह अगर राज़ है, तो उसे एनकोड होने से पहले असली एन्क्रिप्शन चाहिए, उसकी जगह पर नहीं।

### डिकोडिंग नाकाम क्यों हुई?

क्योंकि चिपकाया हुआ ठीक वही नहीं है जो कोडेक को बताया गया था, और त्रुटि बता देती है कि किस तरफ़ से: Base64 की वर्णमाला से बाहर का कोई अक्षर, गलत जगह पड़ी पैडिंग, ऐसा परसेंट चिह्न जिसके बाद दो हेक्स अंक नहीं, या ऐसे बाइट जो Base64 से तो खुल जाते हैं मगर UTF-8 टेक्स्ट नहीं हैं — जिसका अक्सर मतलब है कि असल चीज़ कोई फ़ाइल थी, स्ट्रिंग नहीं। ब्राउज़र का अपना `atob` इसकी जगह कुछ भला-सा दिखने वाला लौटा देता; और बताया जाना ही तो किसी डिकोडर में कुछ चिपकाने का पूरा मतलब है।

### वेब पते की दो एनकोडिंग में क्या फ़र्क है?

एक मान, या पूरा पता। *एक मान* एनकोड करना उस हर चीज़ को एस्केप कर देता है जिसे URL कोई मतलब देता है — स्लैश, प्रश्नचिह्न, एम्परसैंड — और क्वेरी स्ट्रिंग के अकेले पैरामीटर के लिए आपको यही चाहिए। *पूरा URL* एनकोड करना पते को चालू हालत में छोड़ता है: स्लैश और `?` रह जाते हैं, और सिर्फ़ वे अक्षर एस्केप होते हैं जिन्हें URL ढो ही नहीं सकता। पहली को पूरे पते पर चलाइए तो पता टूट जाता है; दूसरी को किसी मान पर चलाइए तो यह खो जाता है कि मान कहाँ खत्म होता है।

### यह कितनी बड़ी फ़ाइल सँभाल सकता है?

यहाँ कोई सीमा तय की ही नहीं गई है, क्योंकि उसका बिल चुकाने वाला कोई सर्वर ही नहीं। व्यावहारिक छत आपकी अपनी मशीन है, और कुछ मेगाबाइट का टेक्स्ट ठीक चलता है। बहुत लंबे दस्तावेज़ पर पेज आपकी टाइपिंग में एक ठहराव का इंतज़ार करता है और तब दोबारा एनकोड करता है, बजाय इसके कि कीबोर्ड के लिए आपसे झगड़े।

### क्या यह मुफ़्त है, और क्या मुझे खाता चाहिए?

यह मुफ़्त है, और यहाँ न कोई खाता है, न साइन-इन, न ट्रायल, और न इस पर कोई सीमा कि आप कितना चिपकाएँ। साइट पर विज्ञापन हैं, और वही इसका खर्च उठाते हैं; विज्ञापनों को आपके टेक्स्ट के बारे में कुछ नहीं दिया जाता।

### क्या यह ऑफ़लाइन चलता है?

हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए और यह चलता रहेगा। यह साबित करने का भी सबसे आसान तरीका यही है कि कुछ अपलोड नहीं हो रहा: जो टूल आपका टेक्स्ट डिकोड करने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता।

## प्राइवेसी का यह दावा कैसे जाँचा जा सकता है

- **आप जो चिपकाते हैं, उसके जाने को कोई जगह ही नहीं है।** यह पेज जिन-जिन पतों से संपर्क कर सकता है, Content-Security-Policy उन सबके नाम गिना देती है, और उनमें से एक भी इस साइट का नहीं है। यहाँ कोई ऐसा एंडपॉइंट है ही नहीं जहाँ चिपकाया गया कोई टोकन जमा किया जा सके, और कोड में ऐसा कुछ भी नहीं जो उसे भेजता, अगर होता भी।
- **यहाँ कुछ भी कहीं से कुछ नहीं लाता।** `src/` में कहीं भी न `fetch` है, न `XMLHttpRequest`, न `sendBeacon`। हर एनकोडर और हर डिकोडर इसी पेज के फ़ंक्शन हैं जो एक लाइन लेते हैं और एक लाइन लौटा देते हैं।
- **कुछ गलत हो तो डिकोडर बता देता है।** ब्राउज़र का अपना `atob` वे इनपुट भी स्वीकार कर लेता है जिन्हें नकारना चाहिए, और कुछ भला-सा दिखने वाला लौटा देता है। यहाँ का Base64 हाथ से लिखा गया है और RFC 4648 के टेस्ट वेक्टरों पर जाँचा जाता है, और आपका चिपकाया हुआ Base64 न हो तो यह कह देता है, और वजह भी बता देता है। `tests/js/text-encode.test.js` के टेस्ट ठीक यही जाँचते हैं।
- **Google क्या लोड करता है, और उसे क्या नहीं दिया जाता।** विज्ञापन और माप वाली स्क्रिप्ट Google से आती हैं, और दान का बटन Buy Me a Coffee से। इनमें से किसी को भी आपके टेक्स्ट का एक अक्षर तक नहीं सौंपा जाता। उसे पढ़ने, समझने या लिखने वाली हर पंक्ति इसी ऑरिजिन से आती है और रिपॉज़िटरी में दर्ज है।
- **यह ऑफ़लाइन भी चलता है।** नेटवर्क काट दीजिए और टूल जस का तस काम करता रहेगा, क्योंकि इसमें नेटवर्क वाला कोई कदम कभी था ही नहीं। सबसे आसान सबूत यही है।

**खुद जाँच लीजिए।** ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। यह पेज रिपॉज़िटरी के टेम्पलेट और कॉन्फ़िग से बनता है, एक ऐसी बिल्ड स्क्रिप्ट के ज़रिए जिसे आप पढ़ भी सकते हैं और खुद चला भी सकते हैं। उसका नतीजा `dist` ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं: https://github.com/A-Box-of-Tools/website

सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए `config/site.toml` और `src/encode.js` उस Base64 के लिए जिसे खुद अपने बजाय RFC 4648 के टेस्ट वेक्टरों पर जाँचा जाता है, और जो गलत इनपुट को नकार देता है, बजाय इसके कि `atob` की तरह कुछ भला-सा दिखने वाला लौटा दे।
