यह पेज हिन्दी में दिखाया जा रहा है, क्योंकि आपका ब्राउज़र यही भाषा माँगता है।
इस पेज का कोड चालू नहीं हुआ।
index.html को सीधे किसी फ़ोल्डर से खोलने पर ब्राउज़र JavaScript मॉड्यूल रोक देता है, इसलिए कोई फ़ाइल चुनने पर कुछ नहीं होगा। इसके बजाय फ़ोल्डर को http पर सर्व कीजिए:
ऊपर फ़ाइल चुनते ही यह खुल जाएगा।तैयार — इंटरनेट काट दीजिए, यह फिर भी चलता रहेगा।इस ब्राउज़र में उपलब्ध नहीं (बाकी सब फिर भी चलता है)।ऑफ़लाइन कैश के लिए https:// या localhost चाहिए।यहाँ कैश नहीं हो सकता, पर अपलोड फिर भी कुछ नहीं होता।आपकी फ़ाइलें कहीं नहीं गईं। {total} फ़ाइलें लोड हुईं, और वे सब इसी साइट की अपनी हैं। {platform}किसी चीज़ ने {hosts} से संपर्क किया, और यह टूल ऐसा कभी नहीं करता। यह देखने लायक बात है। {platform}विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ाइल मिली, न उसका एक बाइट।विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ाइल मिली, न उसका एक बाइट।कुछ गड़बड़ हो गई: {detail}। दोबारा शुरू करने के लिए पेज फिर से लोड कीजिए।{count} फ़ाइल पढ़ी जा रही है…{count} फ़ाइलें पढ़ी जा रही हैं…कोई उदाहरण आज़माइएउदाहरण बनाया जा रहा है…यह ब्राउज़र उदाहरण नहीं बना सका। इसके बजाय कोई फ़ाइल चुनिए।
Base64 एनकोडर-डिकोडर — और URL, HTML एंटिटी, हेक्स और एस्केप
Base64, परसेंट एनकोडिंग, HTML एंटिटी, हेक्स और बैकस्लैश एस्केप, दोनों दिशाओं में। कुछ भी किसी और के सर्वर में चिपकाया नहीं जाता।
● यह टूल टेक्स्ट कभी अपलोड नहीं करता। यहाँ कोई सर्वर है ही नहीं।
यहाँ की हर एनकोडिंग किसी लाइन पर की गई गणित है, और यहीं, इसी पेज में होती है। कोडेक हाथ से लिखे गए हैं और src/encode.js में मौजूद हैं, और इनके सिवा कुछ है ही नहीं। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, इसलिए यहाँ से कुछ मँगाया भी नहीं जा सकता और भेजा भी नहीं जा सकता। यह बात लगभग कहीं और से ज़्यादा यहाँ मायने रखती है, क्योंकि लोग किसी ऑनलाइन Base64 डिकोडर में जो चिपकाते हैं वह टोकन होता है, और टोकन किसी और की वेबसाइट में चिपकाने का मतलब है उसे सौंप देना।
✗ कोई अपलोड नहीं
✗ कोई खाता नहीं
✗ साइज़ की कोई सीमा नहीं
✓ ऑफ़लाइन चलता है
✓ ओपन सोर्स
लाइव जाँच:जाँच जारी…
ऑफ़लाइन:जाँच जारी…
हमारी बात पर भरोसा मत कीजिए। DevTools खोलिए, Network टैब पर नज़र रखिए, और कुछ डिकोड कीजिए। एक भी रिक्वेस्ट आपके चिपकाए हुए का एक अक्षर तक नहीं ढोती। या फिर इंटरनेट काट दीजिए और तब भी उसे डिकोड करके देखिए।
प्राइवेसी का यह दावा कैसे जाँचा जा सकता है
आप जो चिपकाते हैं, उसके जाने को कोई जगह ही नहीं है। यह पेज जिन-जिन पतों से संपर्क कर सकता है, 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 ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं:
सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए config/site.toml और src/encode.js उस Base64 के लिए जिसे खुद अपने बजाय RFC 4648 के टेस्ट वेक्टरों पर जाँचा जाता है, और जो गलत इनपुट को नकार देता है, बजाय इसके कि atob की तरह कुछ भला-सा दिखने वाला लौटा दे।
अगर आपके दफ़्तर का सुरक्षा सॉफ़्टवेयर अपलोड की चेतावनी दे। वह उस पल पर नज़र रखता है जब ब्राउज़र में फ़ाइल चुनी जाती है, और यह नहीं जान सकता कि पन्ना उसे भेजने वाला है या नहीं — इसलिए चुनने पर ही चेतावनी देता है। यहाँ से कुछ नहीं भेजा जाता: ब्राउज़र के डेवलपर टूल खोलिए, Network पर जाइए, और एक फ़ाइल चुनिए। उसे ले जाने वाला कोई अनुरोध नहीं है, और पन्ने की अपनी स्थानीय झलक के अलावा कोई अनुरोध ही नहीं। यही जाँच आपकी IT टीम आधे मिनट में कर सकती है।
Base64टेक्स्ट से Base64 और वापस। इनपुट की पंक्ति-टूट अनदेखी कर दी जाती है, इसलिए लपेटी हुई कुंजी जैसी है वैसी ही चिपकाई जा सकती है।Base64, URL के लिए सुरक्षितवही, बस + और / की जगह - और _, और कोई पैडिंग नहीं। JWT और अधिकतर टोकन यही इस्तेमाल करते हैं।वेब पता, एक मानक्वेरी स्ट्रिंग में जाने वाले मान के लिए प्रतिशत एनकोडिंग: जिस भी चीज़ का URL में कोई अर्थ है, वह एस्केप हो जाती है।वेब पता, पूरा URLऐसी प्रतिशत एनकोडिंग जो पते को चलता हुआ छोड़ देती है — स्लैश, ? और & बने रहते हैं।HTML एंटिटीवे पाँच अक्षर जिन्हें मार्कअप में एस्केप करना ही पड़ता है। डीकोड करते समय संख्यात्मक और आम नामित एंटिटी भी पढ़ी जाती हैं।हेक्स बाइटटेक्स्ट के UTF-8 बाइट, हेक्स में। डीकोड करते समय डंप ने जो भी विभाजक इस्तेमाल किया हो, उससे फ़र्क नहीं पड़ता।बैकस्लैश एस्केपJavaScript, Java या JSON में स्ट्रिंग लिटरल ऐसा दिखता है: \n, \t और ASCII से ऊपर की हर चीज़ के लिए \uXXXX।एक स्ट्रिंग जिसमें <कोण कोष्ठक>, एक ऐम्परसैंड & और एक कैफ़े है।फ़ाइल पढ़ी जा रही है…वह फ़ाइल पढ़ी नहीं जा सकी: {why}खाली{n} पंक्ति{n} पंक्तियाँ{n} अक्षर{n} अक्षरअभी कुछ नहीं।कुछ निकला ही नहीं।{name}, एनकोड किया — {in} अंदर, {out} बाहर{name}, डीकोड किया — {in} अंदर, {out} बाहरइसके अंत में दो से ज़्यादा पैडिंग अक्षर हैं।इसमें पैडिंग है, पर इसकी लंबाई चार का गुणज नहीं है।Base64 होने के लिए यह एक अक्षर लंबा या तीन अक्षर छोटा है।“{ch}” ऐसा अक्षर नहीं जो Base64 इस्तेमाल करता हो।“{ch}” हेक्स अंक नहीं है।हेक्स अंकों की संख्या विषम है।\u{…} को घुंघराले कोष्ठकों में हेक्स अंक चाहिए।\{escape} के बाद {width} हेक्स अंक चाहिए।\{escape} ऐसा एस्केप नहीं जिसे यह पढ़ता हो।“{escape}” पूरा प्रतिशत एस्केप नहीं है।ये प्रतिशत एस्केप वैध UTF-8 नहीं बनाते।ये बाइट UTF-8 टेक्स्ट नहीं हैं, इसलिए दिखाने को कुछ है ही नहीं। शायद ये स्ट्रिंग नहीं, कोई फ़ाइल हैं।{a}, {b}{n} B{n} KB{n} MBआपका टेक्स्ट कहीं नहीं गया। {total} फ़ाइलें लोड हुईं। {platform}किसी चीज़ ने {hosts} से संपर्क किया, और यह टूल ऐसा कभी नहीं करता। {platform}विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को उसका एक अक्षर भी नहीं मिला।विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को उसका एक अक्षर भी नहीं मिला।
क्या इससे काम बन गया?
क्या गड़बड़ हुई?
शुक्रिया — इससे मदद मिलती है।
सिर्फ़ आपका जवाब भेजा जाता है, वह भी तभी जब आप बटन दबाते हैं। आपकी फ़ाइल, उसका नाम या उससे जुड़ी कोई बात कभी नहीं।
# 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` की तरह कुछ भला-सा दिखने वाला लौटा दे।
Base64 को बिना अपलोड किए कैसे एनकोड या डिकोड करें
एनकोडिंग चुनिए। दोनों वर्णमालाओं में Base64, किसी एक मान या पूरे URL के लिए परसेंट एनकोडिंग, पाँच HTML एंटिटी, हेक्स बाइट, और स्ट्रिंग लिटरल वाले बैकस्लैश एस्केप। मेन्यू के नीचे की टिप्पणी बताती है कि कौन-सी किस काम की है।
दिशा चुनिए।Encode सादा टेक्स्ट लेकर एनकोड किया हुआ रूप बनाता है; Decode एनकोड किए हुए रूप को सादे टेक्स्ट में लौटा लाता है। नतीजा आपकी टाइपिंग के साथ-साथ बदलता है, इसलिए दिशा बदलना एक क्लिक है और दोबारा कुछ नहीं लिखना पड़ता।
इसे भीतर चिपकाइए, या फ़ाइल छोड़ दीजिए। जो कुछ भी आप चुनकर कॉपी कर सकते हैं वह चल जाता है। पिकर पर छोड़ी गई फ़ाइल आपका अपना ब्राउज़र पढ़कर डिब्बे में रख देता है, और छोड़ने को अपलोड वाला कोई कदम है ही नहीं।
कोई त्रुटि हो तो पढ़ लीजिए। यहाँ नाकाम होने वाला डिकोडर बता देता है कि उसे क्या मिला — ऐसा अक्षर जो Base64 इस्तेमाल नहीं करता, गलत जगह पड़ी पैडिंग, ऐसे बाइट जो टेक्स्ट नहीं हैं — बजाय इसके कि कुछ भला-सा दिखने वाला मगर गलत लौटा दे।
नतीजा ले जाइए। कॉपी कर लीजिए, या टेक्स्ट फ़ाइल की तरह डाउनलोड कर लीजिए। डिब्बे के नीचे की गिनती बताती है कि कितने बाइट भीतर गए और कितने बाहर आए।
नहीं। इस पेज का हर एनकोडर और हर डिकोडर एक फ़ंक्शन है जो आपके अपने ब्राउज़र में, आपके अपने हार्डवेयर पर चलता है। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, यानी यह न कभी कुछ मँगाता है, न कभी कुछ भेजता है। और पेज की Content-Security-Policy उन सारे पतों के नाम गिना देती है जिनसे यह संपर्क कर सकता है, जिनमें से एक भी इस साइट का नहीं है। किसी ऐक्सेस टोकन या सेशन कुकी के लिए इसे इस्तेमाल करने की वजह भी यही है, क्योंकि इनमें से कोई भी किसी और के डिकोडर में चिपकाने का मतलब है उसे वह दे देना।
क्या यहाँ का Base64 वही Base64 है जो बाकी हर जगह है?
हाँ, और इसे खुद अपने बजाय RFC 4648 के टेस्ट वेक्टरों से जाँचा जाता है। दोनों वर्णमालाएँ डिकोड होती हैं, इसलिए - और _ से लिखा JWT उतनी ही आसानी से पढ़ा जाता है जितना + और / से लिखा, और 64 अक्षरों पर लपेटा गया इनपुट आपके लिए खोल दिया जाता है। एनकोडिंग UTF-8 बाइटों के हिसाब से होती है, इसलिए कोई मात्रा वाला अक्षर या इमोजी पूरा चक्कर लगाकर भी बचा रहता है।
क्या Base64 एन्क्रिप्शन है?
नहीं, और इसे एन्क्रिप्शन समझ लेना ही सबसे जानी-पहचानी भूल है। Base64 एक लिखावट है: वही बाइट, ऐसी वर्णमाला में लिखे हुए जो URL, ईमेल या JSON स्ट्रिंग में सलामत रहती है। कोई भी उसे वापस पढ़ सकता है — यह पेज एक मिलीसेकंड में पढ़ लेता है — इसलिए यह न कुछ छिपाता है, न कुछ बचाता है। आपके पास जो है वह अगर राज़ है, तो उसे एनकोड होने से पहले असली एन्क्रिप्शन चाहिए, उसकी जगह पर नहीं।
डिकोडिंग नाकाम क्यों हुई?
क्योंकि चिपकाया हुआ ठीक वही नहीं है जो कोडेक को बताया गया था, और त्रुटि बता देती है कि किस तरफ़ से: Base64 की वर्णमाला से बाहर का कोई अक्षर, गलत जगह पड़ी पैडिंग, ऐसा परसेंट चिह्न जिसके बाद दो हेक्स अंक नहीं, या ऐसे बाइट जो Base64 से तो खुल जाते हैं मगर UTF-8 टेक्स्ट नहीं हैं — जिसका अक्सर मतलब है कि असल चीज़ कोई फ़ाइल थी, स्ट्रिंग नहीं। ब्राउज़र का अपना atob इसकी जगह कुछ भला-सा दिखने वाला लौटा देता; और बताया जाना ही तो किसी डिकोडर में कुछ चिपकाने का पूरा मतलब है।
वेब पते की दो एनकोडिंग में क्या फ़र्क है?
एक मान, या पूरा पता। एक मान एनकोड करना उस हर चीज़ को एस्केप कर देता है जिसे URL कोई मतलब देता है — स्लैश, प्रश्नचिह्न, एम्परसैंड — और क्वेरी स्ट्रिंग के अकेले पैरामीटर के लिए आपको यही चाहिए। पूरा URL एनकोड करना पते को चालू हालत में छोड़ता है: स्लैश और ? रह जाते हैं, और सिर्फ़ वे अक्षर एस्केप होते हैं जिन्हें URL ढो ही नहीं सकता। पहली को पूरे पते पर चलाइए तो पता टूट जाता है; दूसरी को किसी मान पर चलाइए तो यह खो जाता है कि मान कहाँ खत्म होता है।
यह कितनी बड़ी फ़ाइल सँभाल सकता है?
यहाँ कोई सीमा तय की ही नहीं गई है, क्योंकि उसका बिल चुकाने वाला कोई सर्वर ही नहीं। व्यावहारिक छत आपकी अपनी मशीन है, और कुछ मेगाबाइट का टेक्स्ट ठीक चलता है। बहुत लंबे दस्तावेज़ पर पेज आपकी टाइपिंग में एक ठहराव का इंतज़ार करता है और तब दोबारा एनकोड करता है, बजाय इसके कि कीबोर्ड के लिए आपसे झगड़े।
क्या यह मुफ़्त है, और क्या मुझे खाता चाहिए?
यह मुफ़्त है, और यहाँ न कोई खाता है, न साइन-इन, न ट्रायल, और न इस पर कोई सीमा कि आप कितना चिपकाएँ। साइट पर विज्ञापन हैं, और वही इसका खर्च उठाते हैं; विज्ञापनों को आपके टेक्स्ट के बारे में कुछ नहीं दिया जाता।
क्या यह ऑफ़लाइन चलता है?
हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए और यह चलता रहेगा। यह साबित करने का भी सबसे आसान तरीका यही है कि कुछ अपलोड नहीं हो रहा: जो टूल आपका टेक्स्ट डिकोड करने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता।