base64 মডিউলের ফাংশনগুলো বাইনারি ডেটাকে ASCII-এর একটি সাবসেটে ট্রান্সলেট করে যা প্লেইনটেক্সট প্রোটোকল দিয়ে ট্রান্সমিশনের জন্য উপযুক্ত।
এনকোডিং ও ডিকোডিং ফাংশন RFC 3548 স্পেসিফিকেশন বাস্তবায়ন করে, যা Base16, Base32, Base64 অ্যালগরিদম এবং ডি-ফ্যাক্টো স্ট্যান্ডার্ড Ascii85 ও Base85 এনকোডিং ডিফাইন করে। RFC 3548 এনকোডিংগুলো বাইনারি ডেটা নিরাপদে ইমেইল পাঠাতে, URL-এর অংশ হিসেবে ব্যবহার করতে বা HTTP POST রিকোয়েস্টে অন্তর্ভুক্ত করতে সক্ষম করে।
এই মডিউলের মডার্ন ইন্টারফেস বাইটস-লাইক অবজেক্টকে ASCII বাইটসে এনকোড করে, এবং ASCII-कন্টেইনিং বাইটস-লাইক অবজেক্ট বা স্ট্রিং ডিকোড করে বাইটসে। RFC 3548-এ ডিফাইন করা base-64 অ্যালফাবেট (নরমাল, URL- ও ফাইলসিস্টেম-সেফ) সাপোর্ট করা হয়।

মডার্ন ইন্টারফেস প্রদান করে:
- base64.b64encode(): বাইটস-লাইক অবজেক্ট Base64-এ এনকোড করে এবং এনকোডেড বাইটস রিটার্ন করে।
- base64.b64decode(): Base64-এনকোডেড বাইটস-লাইক অবজেক্ট বা ASCII স্ট্রিং s ডিকোড করে এবং ডিকোডেড বাইটস রিটার্ন করে।
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- ও ফাইলসিস্টেম-সেফ অ্যালফাবেট দিয়ে এনকোড করে (+ এর বদলে -, / এর বদলে _), এনকোডেড বাইটস রিটার্ন করে।
- urlsafe_b64decode(): URL- ও ফাইলসিস্টেম-সেফ অ্যালফাবেট দিয়ে ডিকোড করে, ডিকোডেড বাইটস রিটার্ন করে।
লিগেসি ইন্টারফেস ফাইল অবজেক্টের জন্য এনকোড/ডিকোড ফাংশন দেয়:
- base64.encode(input, output): বাইনারি ইনপুট ফাইলের কন্টেন্ট এনকোড করে এবং Base64-এনকোডেড ডেটা আউটপুট ফাইলে লেখে। input ও output ফাইল অবজেক্ট হতে হবে।
- base64.decode(input, output): বাইনারি ইনপুট ফাইলের কন্টেন্ট ডিকোড করে এবং বাইনারি ডেটা আউটপুট ফাইলে লেখে। input ও output ফাইল অবজেক্ট হতে হবে।
প্রথমে '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()
file.dat নোটপ্যাডে খুললে দেখাবে:
U2ltcGxlIGlzIGJldHRlciB0aGFuIGNvbXBsZXg=
file.dat কে filenew.txt-এ ডিকোড করতে decode() ফাংশন ব্যবহার করুন:
>>> f1 = open('file.dat', 'rb')
>>> f2 = open('filenew.txt', 'wb')
>>> base64.decode(f1, f2)
>>> f1.close()
>>> f2.close()
মূল টেক্সট filenew.txt-এ দৃশ্যমান হবে।