Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन का उपयोग करके Base64 डेटा एन्कोडिंग


base64 मॉड्यूल में फंक्शन बाइनरी डेटा को ASCII के एक सबसेट में अनुवादित करते हैं जो प्लेनटेक्स्ट प्रोटोकॉल का उपयोग करके ट्रांसमिशन के लिए उपयुक्त है।

एन्कोडिंग और डिकोडिंग फंक्शन RFC 3548 में विनिर्देशों को लागू करते हैं, जो Base16, Base32, और Base64 एल्गोरिदम को परिभाषित करता है, और डी-फैक्टो मानक Ascii85 और Base85 एन्कोडिंग के लिए। RFC 3548 एन्कोडिंग बाइनरी डेटा को एन्कोड करने के लिए उपयुक्त हैं ताकि इसे सुरक्षित रूप से ईमेल द्वारा भेजा जा सके, URL के भागों के रूप में उपयोग किया जा सके, या HTTP POST अनुरोध के भाग के रूप में शामिल किया जा सके।

इस मॉड्यूल द्वारा प्रदान किया गया आधुनिक इंटरफ़ेस बाइट्स-जैसे ऑब्जेक्ट्स को ASCII बाइट्स में एन्कोड करता है, और बाइट्स-जैसे ऑब्जेक्ट्स या ASCII युक्त स्ट्रिंग्स को बाइट्स में डिकोड करता है। RFC 3548 में परिभाषित निम्नलिखित base-64 अल्फाबेट (सामान्य, और URL- और फाइलसिस्टम-सुरक्षित) समर्थित हैं।

पायथन का उपयोग करके Base64 डेटा एन्कोडिंग

आधुनिक इंटरफ़ेस प्रदान करता है -

base64.b64encode(): Base64 का उपयोग करके बाइट्स-जैसे ऑब्जेक्ट को एन्कोड करता है और एन्कोडेड बाइट्स लौटाता है।

base64.b64decode(): Base64 एन्कोडेड बाइट्स-जैसे ऑब्जेक्ट या ASCII स्ट्रिंग s को डिकोड करता है और डिकोडेड बाइट्स लौटाता है।

base64 मॉड्यूल के b64encode() और b64decode() फंक्शन को प्रदर्शित करने के लिए, आइए पहले एक पायथन स्ट्रिंग को एन्कोड करें।

>>> import base64
>>> string = 'Python programming'
>>> enc_string = string.encode()
>>> enc_string
b'Python programming'

इस बाइट ऑब्जेक्ट को b64encode() फंक्शन का उपयोग करके एन्कोड किया गया है

>>> b64_estring = base64.b64encode(enc_string)
>>> b64_estring
b'UHl0aG9uIHByb2dyYW1taW5n'

हम इस बाइट ऑब्जेक्ट से स्ट्रिंग प्राप्त करने के लिए decode() फंक्शन का उपयोग कर सकते हैं।

>>> dec_string = b64_estring.decode()
>>> dec_string
'UHl0aG9uIHByb2dyYW1taW5n'

encode() फंक्शन बाइट ऑब्जेक्ट लौटाता है

>>> b1 = dec_string.encode()
>>> b1
b'UHl0aG9uIHByb2dyYW1taW5n'

b64decode() फंक्शन का उपयोग करके डिकोड करने के लिए -

>>> d = base64.b64decode(b1)
>>> d
b'Python programming'

अंत में उपरोक्त बाइट ऑब्जेक्ट को डिकोड करके मूल स्ट्रिंग प्राप्त करें

>>> originalstring = d.decode()
>>> originalstring
'Python programming'

base64 अल्फाबेट + और / का उपयोग कर सकते हैं, यदि URL में उपयोग किया जाता है, तो उन कैरेक्टर्स को प्रतिस्थापित करने के लिए एक वैकल्पिक एन्कोडिंग का उपयोग करना आवश्यक है।

urlsafe_b64encode(): URL- और फाइलसिस्टम-सुरक्षित अल्फाबेट का उपयोग करके बाइट्स-जैसे ऑब्जेक्ट s को एन्कोड करता है, जो मानक Base64 अल्फाबेट में + के बजाय - और / के बजाय _ को प्रतिस्थापित करता है, और एन्कोडेड बाइट्स लौटाता है।

urlsafe_b64decode(): URL और फाइलसिस्टम-सुरक्षित अल्फाबेट का उपयोग करके बाइट्स-जैसे ऑब्जेक्ट या ASCII स्ट्रिंग s को डिकोड करता है, जो मानक Base64 अल्फाबेट में + के बजाय - और / के बजाय _ को प्रतिस्थापित करता है, और डिकोडेड बाइट्स लौटाता है।

विरासत इंटरफ़ेस फ़ाइल ऑब्जेक्ट्स के लिए एन्कोडिंग और डिकोडिंग फंक्शन देता है -

base64.encode(input, output): बाइनरी इनपुट फ़ाइल की सामग्री को एन्कोड करता है और परिणामी base64 एन्कोडेड डेटा को आउटपुट फ़ाइल में लिखता है। input और output फ़ाइल ऑब्जेक्ट होने चाहिए। input को तब तक पढ़ा जाएगा जब तक input.read() एक खाली बाइट्स ऑब्जेक्ट नहीं लौटाता।

base64.decode(input, output): बाइनरी इनपुट फ़ाइल की सामग्री को डिकोड करता है और परिणामी बाइनरी डेटा को आउटपुट फ़ाइल में लिखता है। input और output फ़ाइल ऑब्जेक्ट होने चाहिए। input को तब तक पढ़ा जाएगा जब तक input.readline() एक खाली बाइट्स ऑब्जेक्ट नहीं लौटाता।

पहले, 'wb' मोड का उपयोग करके एक फ़ाइल बनाएं

>>> f1 = open('file.txt','wb')
>>> f1.write('Simple is better than complex'.encode())
>>> f1.close()

अब base64.encode मेथड का उपयोग करके फ़ाइल को एन्कोड करें।

>>> f1 = open('file.txt','rb')
>>> f2 = open('file.dat','wb')
>>> base64.encode(f1,f2)
>>> f1.close()
>>> f2.close()

नोटपैड में खोले जाने पर fil.dat निम्नलिखित सामग्री दिखाता है

U2ltcGxlIGlzIGJldHRlciB0aGFuIGNvbXBsZXg=

filenew.txt में file.dat को डिकोड करने के लिए decode() फंक्शन का उपयोग करें

>>> f1 = open('file.dat','rb')
>>> f2 = open('filenew.txt','wb')
>>> base64.decode(f1,f2)
>>> f1.close()
>>> f2.close()

मूल टेक्स्ट filenew.txt में दिखाई देना चाहिए


  1. पायथन Bokeh: डेटा विज़ुअलाइज़ेशन (लाइन, सर्कल, बार चार्ट) पायथन Bokeh: डेटा विज़ुअलाइज़ेशन (लाइन, सर्कल, बार चार्ट)

    Bokeh परिचय Bokeh वेब ब्राउज़र के लिए इंटरैक्टिव डेटा विज़ुअलाइज़ेशन लाइब्रेरी है। यह HTML/JS आउटपुट उत्पन्न करता है जिसे ब्राउज़र में देखा जा सकता है। 1. लाइन प्लॉट from bokeh.io import show from bokeh.plotting import figure p = figure(plot_width=300, plot_height=300, title=Line Plot) p.line([2,

  1. पायथन का उपयोग करके इमेज आधारित स्टेग्नोग्राफी पायथन का उपयोग करके इमेज आधारित स्टेग्नोग्राफी

    स्टेग्नोग्राफी दृश्य के पीछे जानकारी छिपाने की एक तकनीक है। यह क्रिप्टोग्राफी की तरह नहीं है जो डेटा एन्क्रिप्ट करने पर केंद्रित है (SHA1, MD5 आदि जैसे विभिन्न एल्गोरिदम के माध्यम से), स्टेग्नोग्राफी डेटा को छिपाने पर अधिक ध्यान केंद्रित करती है (डेटा एक फ़ाइल, छवि, संदेश या वीडियो हो सकता है) किसी

  1. पायथन का उपयोग करके वेबसाइट ब्लॉकर पायथन का उपयोग करके वेबसाइट ब्लॉकर

    यदि आप एक बड़ी IT कंपनी में काम कर रहे हैं तो आप देख सकते हैं कि उनकी कुछ वेबसाइटें अवरुद्ध हैं, विशेष रूप से सोशल नेटवर्किंग साइट्स जैसे फेसबुक, यूट्यूब, इंस्टाग्राम आदि। कुछ वेबसाइटों को ब्लॉक करने के लिए थर्ड-पार्टी एप्लिकेशन का उपयोग करने के बजाय, हम अपना खुद का कस्टम एप्लिकेशन विकसित कर सकते ह