Base64 के हो र यो किन अस्तित्वमा छ
Base64 एउटा बाइनरी-देखि-टेक्स्ट इन्कोडिङ स्किम हो। यसले कच्चा बाइट - जस्तै तस्बिर, आर्काइभ, क्रिप्टोग्राफिक की, वा सादा पठनयोग्य टेक्स्ट नभएको अन्य कुनै पनि डेटा - लिन्छ र तिनलाई 64 प्रिन्ट योग्य क्यारेक्टरहरूको सानो, सुरक्षित वर्णमाला प्रयोग गरेर पुनः लेख्छ: 26 ठूला अक्षर A-Z, 26 साना अक्षर a-z, दस अंक 0-9, र दुई थप चिन्ह, सामान्यतया + र /। अन्त्यमा प्याडिङका लागि बराबर चिन्ह प्रयोग हुन्छ। यसले उत्पादन गर्ने हरेक क्यारेक्टर सामान्य ASCII भएकाले, परिणाम टेक्स्ट मात्र ह्यान्डल गर्न डिजाइन गरिएका प्रणालीहरूमार्फत यात्रा गर्न सक्छ।
यही नै Base64 आविष्कार हुनुको सम्पूर्ण कारण हो। धेरै पुराना प्रोटोकल - इमेल यसको क्लासिक उदाहरण हो - ले आफूले बोक्ने सामग्री टेक्स्ट हो भनी अनुमान गर्छन्। तपाईंले तिनलाई कच्चा बाइनरी दिनुभयो भने, केही बाइट बिग्रन्छन्, हटाइन्छन्, वा कन्ट्रोल क्यारेक्टरका रूपमा व्याख्या गरिन्छन्, र डेटा बिग्रिएर आइपुग्छ। Base64 ले बाइटलाई कुनै पनि टेक्स्ट-सुरक्षित च्यानलले नबिगारी पास गर्ने रूपमा रूपान्तरण गरेर यो समस्या छल्छ। मूल डेटा त्यसपछि अर्को छेउमा ठ्याक्कै पुनर्निर्माण गर्न सकिन्छ।

रूपान्तरण कसरी काम गर्छ
यान्त्रिक रूपमा, Base64 ले इनपुटलाई तीन बाइटका समूहमा - अर्थात् 24 बिट - विभाजन गर्छ र त्यसपछि ती उही 24 बिटलाई छ-छ बिटका चार समूहमा फेरि टुक्राउँछ। छ बिटले 64 सम्भावित मान प्रतिनिधित्व गर्न सक्छ, जुन ठ्याक्कै वर्णमालामा 64 क्यारेक्टर हुनुको कारण हो। त्यसैले इनपुटका तीन बाइट सधैं आउटपुटका चार क्यारेक्टर बन्छन्। इनपुटको लम्बाइ तीनको सफा गुणज नभएमा, इन्कोडरले अन्तिम समूहलाई एक वा दुई = क्यारेक्टरले प्याड गर्छ ताकि डिकोडरलाई वास्तविक डेटा कहाँ सकिन्छ भनी थाहा हुन्छ।
यही चार-लाई-तीनको अनुपात नै प्रसिद्ध आकार जरिवानाको स्रोत पनि हो: Base64 आउटपुट मूल डेटाभन्दा लगभग 33% ठूलो हुन्छ। इन्कोड गरिएको टेक्स्टलाई निश्चित-चौडाइका लाइनमा बेर्ने हो भने, जुन इमेल मापदण्डले प्रायः अपेक्षा गर्छ, लाइन ब्रेकका लागि केही थप प्रतिशत तिर्नुपर्छ। यो ओभरहेड अनुकूलताको मूल्य हो, र धेरैजसो प्रयोगका लागि यो उचित सट्टापट्टा हो।
तपाईं Base64 कहाँ भेट्टाउनुहुन्छ
के हेर्ने भनी थाहा भएपछि, Base64 दैनिक कम्प्युटिङमा जताततै देखिन्छ:
- डेटा URI। सानो तस्बिर वा फन्टलाई
data:URI प्रयोग गरी HTML वा CSS भित्र सिधै एम्बेड गर्न सकिन्छ, फाइल सामग्री Base64 का रूपमा लेखिएर। ब्राउजरले यसलाई इनलाइन डिकोड गर्छ, अलग नेटवर्क अनुरोध बचाउँदै। - इमेल एट्याचमेन्ट। MIME, इमेलले फाइल बोक्न सक्ने मापदण्ड, ले बाइनरी एट्याचमेन्टलाई टेक्स्ट-मात्र मेल प्रणालीमार्फत नबिगारी सार्न Base64 मा भर पर्छ।
- HTTP Basic authentication। परिचित
Authorization: Basic ...हेडर भनेको युजरनेम र पासवर्डलाई कोलनले जोडेर Base64-इन्कोड गरिएको मात्र हो - जुन ठ्याक्कै किन Basic auth सधैं HTTPS मार्फत चल्नुपर्छ भन्नुको कारण हो। - टोकन र कन्फिग। JSON Web Token, प्रमाणपत्र, SSH की, र अनगिन्ती कन्फिगरेसन मान Base64 का रूपमा भण्डारण वा प्रसारण गरिन्छन् ताकि तिनले कपी-पेस्ट र टेक्स्ट-आधारित भण्डारणमा टिक्न सकून्।
इन्कोडिङ इन्क्रिप्सन होइन
यो बुझ्नुपर्ने सबैभन्दा महत्त्वपूर्ण एउटा कुरा हो, र यसले नयाँ र अनुभवी विकासकर्ता दुवैलाई अलमल्याउँछ। Base64 इन्क्रिप्सन होइन र यसले कुनै पनि सुरक्षा प्रदान गर्दैन। यसमा कुनै गोप्य की छैन, पासवर्ड छैन, र यसमा निजी भन्ने केही छैन। रूपान्तरण पूर्णतया सार्वजनिक र पूर्णतया उल्टाउन योग्य छ: Base64 स्ट्रिङ देख्ने जो कोहीले यसलाई सेकेन्डमै ठ्याक्कै यही जस्तो टुल प्रयोग गरेर मूल बाइटमा फर्काउन सक्छ।
त्यसैले Base64 पासवर्ड, API की, वा कुनै पनि संवेदनशील मानका लागि कमजोर लुकाउने ठाउँ हो। कुनै स्ट्रिङ गडमड देखिन्छ मात्रैले यो सुरक्षित हुँदैन। इन्क्रिप्सनले भने डेटालाई गोप्य कीले रूपान्तरण गर्छ ताकि त्यो की भएको व्यक्तिले मात्र पढ्न सक्छ। दुवैले फरक समस्या समाधान गर्छन्: इन्क्रिप्सनले गोपनीयता जोगाउँछ, Base64 ले अनुकूलता जोगाउँछ। यी अक्सर सँगै प्रयोग हुन्छन् - तपाईंले AES ले डेटा इन्क्रिप्ट गर्न सक्नुहुन्छ र त्यसपछि सिफरटेक्स्टलाई Base64-इन्कोड गर्न सक्नुहुन्छ ताकि यो टेक्स्ट च्यानलमार्फत यात्रा गर्न सकोस् - तर एउटा अर्कोको विकल्प कहिल्यै हुँदैन।

इन्कोड बनाम डिकोड
दुई दिशा सरल ऐना-प्रतिबिम्ब हुन्। इन्कोडिङ ले तपाईंको मूल टेक्स्ट वा बाइनरी लिएर Base64 क्यारेक्टर स्ट्रिङ उत्पादन गर्छ। डिकोडिङ ले Base64 स्ट्रिङ लिएर ठ्याक्कै मूल बाइट पुनर्निर्माण गर्छ। हाम्रो टुलले दुवै काम सिधै तपाईंको ब्राउजरमै गर्छ - तपाईंले टाइप वा पेस्ट गर्ने कुनै पनि कुरा कहिल्यै सर्भरमा पठाइँदैन, त्यसैले सम्पूर्ण अपरेसन पूर्णतया स्थानीय र निजी हुन्छ। यसले तपाईं डिबग गर्दै गरेको टोकन डिकोड गर्न वा एम्बेड गर्न चाहेको स्निपेट इन्कोड गर्न सुरक्षित बनाउँछ, तपाईंको डेटा पेजबाट बाहिर नगई।
सम्बन्धित रूपान्तरणहरूका लागि, प्रतिशत-इन्कोडिङका लागि हाम्रो URL इन्कोड/डिकोड टुल हेर्नुहोस्, वा टोकनभित्रका Base64 खण्डहरू जाँच्नुपर्दा JWT डिकोडर प्रयोग गर्नुहोस्। तपाईंले यिनलाई हाम्रा बाँकी डेभलपर टुलहरू सँगै भेट्टाउनुहुनेछ।
बारम्बार सोधिने प्रश्नहरू
Base64 इन्क्रिप्सनको एक रूप हो?
होइन। Base64 इन्कोडिङ हो, इन्क्रिप्सन होइन। यसमा कुनै की प्रयोग हुँदैन र यो जो कोहीले पूर्णतया उल्टाउन सक्छ, त्यसैले यसले कुनै सुरक्षा प्रदान गर्दैन। संवेदनशील डेटा जोगाउन AES वा RSA जस्तो साँचो इन्क्रिप्सन प्रयोग गर्नुहोस्।
Base64 ले डेटा किन ठूलो बनाउँछ?
Base64 ले इनपुटको हरेक तीन बाइटलाई चार आउटपुट क्यारेक्टरमा बदल्छ, जसले आकारमा लगभग 33% थप्छ। आउटपुटलाई निश्चित-लम्बाइका लाइनमा विभाजन गरिएमा, लाइन ब्रेकले माथि थप केही प्रतिशत जोड्छ।
Base64 ले कुन क्यारेक्टर प्रयोग गर्छ?
मानक वर्णमाला 26 ठूला अक्षर, 26 साना अक्षर, 0 देखि 9 सम्मका अंक, साथै प्लस र स्ल्यास चिन्ह हो, अन्त्यमा प्याडिङका लागि बराबर चिन्ह प्रयोग हुन्छ।
के म पासवर्ड Base64 मा सुरक्षित रूपमा भण्डारण गर्न सक्छु?
होइन। Base64 ले डेटा कस्तो देखिन्छ भन्ने मात्र बदल्छ, कसले पढ्न सक्छ भन्ने होइन। जो कोहीले यसलाई तुरुन्तै डिकोड गर्न सक्छ। पासवर्डलाई बलियो एल्गोरिदमले ह्यास गर्नुपर्छ, र गोप्य कुराहरू इन्क्रिप्ट गर्नुपर्छ।
के यो Base64 टुल निजी छ?
हो। इन्कोडिङ र डिकोडिङ पूर्णतया तपाईंको ब्राउजरभित्रै हुन्छ। तपाईंले प्रविष्ट गर्ने कुनै पनि कुरा अपलोड वा कुनै सर्भरमा पठाइँदैन, त्यसैले तपाईंको डेटा तपाईंकै उपकरणमा रहन्छ।
इन्कोडिङ र डिकोडिङबीच के फरक छ?
इन्कोडिङले मूल टेक्स्ट वा बाइनरीलाई Base64 स्ट्रिङमा बदल्छ। डिकोडिङले त्यसलाई उल्टाउँछ, Base64 स्ट्रिङलाई फेरि ठ्याक्कै मूल बाइटमा बदल्छ। यी ऐना-प्रतिबिम्ब अपरेसन हुन्।
