abox.tools

भाषा: हिन्दी

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

नहीं। Base64 पोशाक बदलना है, ताला नहीं: जो उसे पहचान ले, वह बिना किसी कुंजी के उसे मिलीसेकंडों में खोल देता है। पर सवाल असली जवाब का हकदार है, क्योंकि एनकोडिंग, एन्क्रिप्शन और हैश स्क्रीन पर एक जैसे दिखते हैं और उनके वादों में इससे बड़ा फ़र्क हो ही नहीं सकता।

Markdown के रूप में देखें

छोटा जवाब

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

फिर भी सवाल पूछने लायक है, क्योंकि यह उलझन सब जगह है और कभी-कभी महँगी पड़ती है। base64 की स्ट्रिंग दिखती गड्डमड्ड है — cGFzc3dvcmQ= आँख को कुछ नहीं बताता — और जो गड्डमड्ड दिखे वह “सुरक्षित” के खाने में चला जाता है। असली प्रोडक्ट ऐसे “सुरक्षित” पासवर्डों के साथ बाज़ार में आए हैं। इलाज एक बार सीख लिया गया फ़र्क है: एनकोडिंग मशीनों के लिए है, एन्क्रिप्शन राज़ों के लिए, हैश उँगलियों के निशान के लिए। तीन काम, तीन टूल, और उनमें से सिर्फ़ एक किसी चीज़ की हिफ़ाज़त करता है।

एनकोडिंग: जिसे हर कोई उलट सकता है

एनकोडिंग यह बदलती है कि डेटा लिखा कैसे गया है, वह कभी नहीं जो उसमें कहा गया है। ईमेल के अटैचमेंट, स्टाइलशीट में जड़ी तस्वीरें, पतों में बैठे टोकन — हर जगह मनमाने बाइटों को ऐसे रास्तों से गुज़रना है जो सिर्फ़ टेक्स्ट भरोसे से ढोते हैं, और base64 उसकी तयशुदा पोशाक है: तीन बाइट भीतर, चार अक्षर बाहर — हर्फ़, अंक और दो निशान — और आखिर में भराई का =। वही आखिरी = पहचान है, और एक बार जान लें तो base64 हर जगह दिखने लगता है।

सब कुछ तय करने वाला गुण: नुस्खा सार्वजनिक है और उलटा भी ठीक वैसे ही चलता है। जानने को कुछ है ही नहीं, तो न जानने को भी कुछ नहीं। URL की परसेंट-एनकोडिंग (स्पेस के लिए %20), HTML की इकाइयाँ (&), हेक्स और बैकस्लैश-एस्केप — सब वही विचार अलग-अलग पोशाकों में हैं, और यहाँ का Base64 एनकोडर-डिकोडर ये सारी बोलियाँ बोलता है, दोनों दिशाओं में, आपकी अपनी मशीन पर। मिली हुई स्ट्रिंग को डिकोड करना ठीक उतना ही जायज़ है जितना उसे पढ़ना, क्योंकि एनकोडिंग कभी ताला थी ही नहीं।

एन्क्रिप्शन: जिसे कुंजी वाला उलट सकता है

एन्क्रिप्शन वही है जो सामग्री की सचमुच हिफ़ाज़त करता है। वह डेटा को एक कुंजी से बदलता है, और गणित इस तरह सजाया गया है कि बिना कुंजी बदलाव को उलटना सिर्फ़ मुश्किल नहीं, हिसाब की पहुँच से बाहर है — जबकि कुंजी के साथ फ़ौरन हो जाता है। सारा राज़ कुंजी में बसता है, तरीके में नहीं: एल्गोरिद्म छपे हुए हैं, मानक बने हुए हैं, और इसीलिए ज़्यादा मज़बूत हैं।

आँखों वाली उलझन यहीं काटती है, क्योंकि एन्क्रिप्ट हुए बाइट सफ़र के लिए आम तौर पर base64 में एनकोड किए जाते हैं — पहले कुंजी से गड्डमड्ड, फिर ढुलाई की पोशाक। दो परतें, दो काम। JSON Web Token किताबों वाला उदाहरण है: नुक्तों से जुड़े base64 के तीन टुकड़े, जिनमें से पहले दो हर आज़माने वाले के लिए पढ़े जा सकने वाले JSON में खुल जाते हैं। लोग रोज़ सार्वजनिक वेब-डिकोडरों में टोकन चिपकाते हैं, यह मानकर कि पूरा पैकेट सीलबंद था; ईमानदार बयान यह है कि JWT जालसाज़ी-रोधी दस्तखत वाला पोस्टकार्ड है, लिफ़ाफ़ा नहीं।

हैश: जिसे कोई नहीं उलट सकता

हैश एक ही दिशा में चलता है। कितना भी डेटा SHA-256 से गुज़ारिए, निकलती है एक तय आकार की संख्या — वही संख्या हर बार उसी डेटा के लिए, बिलकुल अलग संख्या उस डेटा के लिए जो एक बिट से भी अलग हो, और संख्या से डेटा तक वापसी का रास्ता किसी के लिए नहीं, कुंजी हो या न हो। यह न पोशाक है न ताला; यह उँगलियों का निशान है।

यही बात उसे उन दो कामों का सही टूल बनाती है जो उसके अपने हैं। यह जाँचना कि उतारी हुई फ़ाइल ठीक वही है जो प्रकाशक ने छापी थी — निशान मिलाइए, जो हैश और चेकसम टूल आपकी मशीन पर करता है, और जिसकी अपनी गाइड है। और पासवर्ड सँभालना: ढंग से चलाई गई सेवा आपके पासवर्ड का सिर्फ़ हैश रखती है, ताकि उसका चुराया हुआ डेटाबेस भी पासवर्ड न उगल सके। जो साइट आपका भूला पासवर्ड ईमेल से वापस भेज सकती है, उसने बता दिया कि उसने उसे कभी हैश नहीं किया — और जो config अपना पासवर्ड cGFzc3dvcmQ= लिखकर “सुरक्षित” करती है, उसने बता दिया कि उसने उसे सिर्फ़ एनकोड किया।

मैदान में तीनों की पहचान

सामने पड़ी स्ट्रिंग के लिए काम आने वाला छोटा रास्ता:

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