বেস64 মডিউলের ফাংশনগুলি প্লেইনটেক্সট প্রোটোকল ব্যবহার করে ট্রান্সমিশনের জন্য উপযুক্ত ASCII-এর একটি উপসেটে বাইনারি ডেটা অনুবাদ করে৷
এনকোডিং এবং ডিকোডিং ফাংশনগুলি RFC 3548-এ স্পেসিফিকেশন প্রয়োগ করে, যা বেস16, বেস32 এবং বেস64 অ্যালগরিদম এবং ডি-ফ্যাক্টো স্ট্যান্ডার্ড Ascii85 এবং Base85 এনকোডিংয়ের জন্য সংজ্ঞায়িত করে। RFC 3548 এনকোডিংগুলি বাইনারি ডেটা এনকোড করার জন্য উপযুক্ত যাতে এটি নিরাপদে ইমেলের মাধ্যমে পাঠানো যায়, URL-এর অংশ হিসাবে ব্যবহৃত হয়, বা HTTP POST অনুরোধের অংশ হিসাবে অন্তর্ভুক্ত করা যায়৷
এই মডিউল দ্বারা প্রদত্ত আধুনিক ইন্টারফেস বাইট-সদৃশ বস্তুগুলিকে ASCII বাইটে এনকোড করে এবং বাইট-সদৃশ বস্তু বা স্ট্রিংগুলিকে ASCII থেকে বাইটে ডিকোড করে। RFC 3548 (স্বাভাবিক, এবং URL- এবং ফাইল সিস্টেম-নিরাপদ) সংজ্ঞায়িত বেস-64 বর্ণমালা সমর্থিত।
আধুনিক ইন্টারফেস −
প্রদান করেbase64.b64encode(): Base64 ব্যবহার করে বাইটের মত বস্তুকে এনকোড করে এবং এনকোড করা বাইট ফেরত দেয়।
base64.b64decode(): Base64 এনকোড করা বাইট-সদৃশ অবজেক্ট বা ASCII স্ট্রিং ডিকোড করুন এবং ডিকোড করা বাইট ফেরত দিন।
bse64 মডিউলের b64encode() এবং base64desode() ফাংশন প্রদর্শন করতে, আসুন প্রথমে একটি পাইথন স্ট্রিং এনকোড করি।
>>> 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'
এই বাইট অবজেক্ট থেকে স্ট্রিং বের করতে আমরা ডিকোড() ফাংশন ব্যবহার করতে পারি।
>>> dec_string = b64_estring.decode() >>> dec_string 'UHl0aG9uIHByb2dyYW1taW5n'
এনকোড() ফাংশন বাইট অবজেক্ট প্রদান করে
>>> b1 = dec_string.encode() >>> b1 b'UHl0aG9uIHByb2dyYW1taW5n'
b64decode() ফাংশন −
ব্যবহার করে ডিকোড করতে>>> d = base64.b64decode(b1) >>> d b'Python programming'
অবশেষে উপরের বাইট অবজেক্ট ডিকোডিং করে আসল স্ট্রিং প্রাপ্ত করুন
>>> originalstring = d.decode() >>> originalstring 'Python programming'
বেস 64 বর্ণমালাগুলি + এবং / ব্যবহার করতে পারে, যদি ইউআরএল-এ ব্যবহার করা হয়, তাহলে এই অক্ষরগুলিকে প্রতিস্থাপন করতে একটি বিকল্প এনকোডিং ব্যবহার করা প্রয়োজন৷
urlsafe_b64encode(): ইউআরএল- এবং ফাইলসিস্টেমসেফ বর্ণমালা ব্যবহার করে বাইট-সদৃশ অবজেক্ট গুলিকে এনকোড করুন, যা স্ট্যান্ডার্ড বেস64 বর্ণমালার পরিবর্তে + এবং _ এর পরিবর্তে প্রতিস্থাপন করে এবং এনকোড করা বাইটগুলি ফেরত দেয়।
urlsafe_b64decode(): URL এবং ফাইল-সিস্টেম-নিরাপদ বর্ণমালা ব্যবহার করে বাইট-সদৃশ অবজেক্ট বা ASCII স্ট্রিংগুলি ডিকোড করুন, যা স্ট্যান্ডার্ড বেস64 বর্ণমালার পরিবর্তে + এবং _ এর পরিবর্তে প্রতিস্থাপন করে এবং ডিকোড করা বাইট ফেরত দেয়।
লিগ্যাসি ইন্টারফেস ফাইল অবজেক্ট −
এনকোডিং এবং ডিকোড করার জন্য ফাংশন দেয়base64.encode(ইনপুট, আউটপুট): বাইনারি ইনপুট ফাইলের বিষয়বস্তু এনকোড করুন এবং ফলস্বরূপ বেস64 এনকোড করা ডেটা আউটপুট ফাইলে লিখুন। ইনপুট এবং আউটপুট ফাইল অবজেক্ট হতে হবে। input.read() একটি খালি বাইট বস্তু ফেরত না দেওয়া পর্যন্ত ইনপুট পড়া হবে।
base64.decode(ইনপুট, আউটপুট): বাইনারি ইনপুট ফাইলের বিষয়বস্তু ডিকোড করুন এবং আউটপুট ফাইলে ফলস্বরূপ বাইনারি ডেটা লিখুন। ইনপুট এবং আউটপুট ফাইল অবজেক্ট হতে হবে। 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
-এ দৃশ্যমান হওয়া উচিত