ভূমিকা
ক্রিপ্টোগ্রাফি হল প্লেইন টেক্সটকে সিফার টেক্সটে কনভার্ট করা (এনক্রিপশন) এবং সিফার টেক্সটকে আবার প্লেইন টেক্সটে ফেরানো (ডিক্রিপশন)।
এখানে cryptography প্যাকেজের fernet মডিউল ব্যবহার করা হয়েছে। ফারনেটে এক যুনিক কি জেনারেট হয়, जिसके বিনা এনক্রিপ্টেড ডেটা পড়া/ম্যানিপুলেট করা যায় না।
শুরু করা
cryptography মডিউল পাইথনের সাথে প্যাকেজড নয়। PIP দিয়ে ইনস্টল করুন:
pip install cryptography
fernet মডিউল ইম্পোর্ট করুন:
from cryptography.fernet import Fernet
নোট: ক্যাপিটালাইজেশন সঠিক রাখুন।
কি জেনারেট
key = Fernet.generate_key()
f = Fernet(key)
generate_key() দিয়ে কি জেনারেট, তারপর ভ্যারিয়েবল f-এ এসাইন। কি প্রিন্ট করে সংরক্ষণ করা যায় (decode() ব্যবহার করুন)।
print(key.decode())
আউটপুট
Bq64GE--93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U=
ডেটা এনক্রিপ্ট
encrypted_data = f.encrypt(b"This message is being encrypted and cannot be seen!")
এনক্রিপ্টেড মেসেজ দেখতে:
print(encrypted_data)
আউটপুট
b'gAAAAABgILy91p_wqMntdT3mDkh0IBXSLjuBMQAfnGZAFkZCX1U6Q7TU2PthgFBwVz0QbKXpuNTHRzAgbdDV4zfuuzkGCXqVD--xJdkTycKH2iurC_oqHySLc9xJEXz93LkhTbKUa5HCxfJtB-Um_YkxqjclftXXZQ=='
নোট: b প্রিফিক্স বাইট ফরম্যাটের জন্য। encode() মেথডও ব্যবহার করা যায়।
ডেটা ডিক্রিপ্ট
decrypted_data = f.decrypt(encrypted_data)
print(decrypted_data)
আউটপুট
b'This message is being encrypted and cannot be seen!'
নোট: আউটপুটে b' থাকে বাইট ফরম্যাটের কারন। শুধু প্লেইন টেক্সট পেতে decode() ব্যবহার করুন।
print(decrypted_data.decode())
আউটপুট
This message is being encrypted and cannot be seen!
নোট: একই কি দিয়ে এনক্রিপ্ট/ডিক্রিপ্ট করা যায়। কি প্রিন্ট করে সেভ করলে পরে ব্যবহার করা যায়।
সম্পূর্ণ উদাহরণ
from cryptography.fernet import Fernet
key = Fernet.generate_key()
print("Key:", key.decode())
f = Fernet(key)
encrypted_data = f.encrypt(b"This message is being encrypted and cannot be seen!")
print("After encryption:", encrypted_data)
decrypted_data = f.decrypt(encrypted_data)
print(decrypted_data)
print("After decryption:", decrypted_data.decode())
উপসংহার
এখন আপনি cryptography প্যাকেজ দিয়ে ডেটা এনক্রিপ্ট/ডিক্রিপ্ট করতে পারেন। কি .txt ফাইল হিসেবে সেভ করে পাসওয়ার্ড এনক্রিপ্ট/ডিক্রিপ্ট করতে ব্যবহার করা যায়। আরও ইনফো: https://pypi.org/project/cryptography/