কম্পিউটার

পাইথনে কীভাবে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করবেন


পরিচয়

ক্রিপ্টোগ্রাফি কি? ক্রিপ্টোগ্রাফি প্লেইন টেক্সটকে সাইফার টেক্সটে রূপান্তর নিয়ে কাজ করে যাকে ডেটার এনক্রিপশন বলা হয় এবং সাইফার টেক্সটকে প্লেইন টেক্সটে ফিরিয়ে দেওয়া হয় যাকে ডেটার ডিক্রিপশন বলা হয়।

আমরা ফার্নেট মডিউল ব্যবহার করব পাইথন ব্যবহার করে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ক্রিপ্টোগ্রাফি প্যাকেজে। ফার্নেট মডিউল ব্যবহার করার সময়, একটি অনন্য কী তৈরি হয় যা ছাড়া আপনি এনক্রিপ্ট করা ডেটা পড়তে বা ম্যানিপুলেট করতে পারবেন না৷

এখন আপনি জানেন যে আমরা কী নিয়ে কাজ করব, আসুন শুরু করা যাক৷

শুরু করা

ক্রিপ্টোগ্রাফি মডিউল পাইথনের সাথে প্যাকেজ করা হয় না, যার মানে আপনাকে পিপ প্যাকেজ ম্যানেজার ব্যবহার করে এটি ইনস্টল করতে হবে। এটি করতে, আপনার টার্মিনাল চালু করুন এবং নীচের কোডটি টাইপ করুন৷

পিপ ইনস্টল ক্রিপ্টোগ্রাফি

একবার আপনার প্যাকেজটি ডাউনলোড এবং ইনস্টল হয়ে গেলে, আপনি এর মডিউলগুলি আমদানি করতে পারেন৷

আমরা ডাটা এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ফার্নেট মডিউল ব্যবহার করব। সুতরাং, আসুন আমরা এটি পাইথন স্ক্রিপ্টে আমদানি করি।

cryptography.fernet থেকে ফার্নেট আমদানি করুন

দ্রষ্টব্য − নিশ্চিত করুন যে আপনি ক্যাপিটালাইজেশন সঠিক করেছেন।

আপনি আপনার স্ক্রিপ্ট লেখা শুরু করতে প্রস্তুত৷

একটি কী তৈরি করা হচ্ছে

ডেটা এনক্রিপ্ট করা শুরু করার জন্য, আপনাকে প্রথমে একটি ফার্নেট কী তৈরি করতে হবে৷ .

কী =Fernet.generate_key()f =Fernet(কী)

উপরের লাইনগুলিতে, আমরা generate_key() পদ্ধতি ব্যবহার করে একটি কী তৈরি করেছি এবং তারপর সেই কীটিকে পরবর্তী লাইনে একটি পরিবর্তনশীল "f"-এ বরাদ্দ করেছি।

এবং এটিই, আপনার কাছে এখন ব্যবহার করার জন্য প্রস্তুত একটি ভেরিয়েবলে একটি কী সংরক্ষিত আছে।

আমরা চাবিটি মুদ্রণ করতে পারি এবং প্রয়োজনে এটি সংরক্ষণ করতে পারি। প্রিন্ট করার সময় ডিকোড ফাংশন ব্যবহার নিশ্চিত করুন।

print(key.decode())

আউটপুট

Bq64GE−−93K1RVro4go1frN−8twBSvXdbCPSPLIKz9U=

ডেটা এনক্রিপ্ট করা

উপরের কী থেকে ডেটা এনক্রিপ্ট করতে, আপনাকে অবশ্যই এনক্রিপ্ট পদ্ধতি ব্যবহার করতে হবে।

encrypted_data =f.encrypt(b"এই বার্তাটি এনক্রিপ্ট করা হচ্ছে এবং দেখা যাবে না!")

এবং এটিই, উপরের বাক্যটি এনক্রিপ্ট করা হয়েছে।

আপনার এনক্রিপ্ট করা বার্তা দেখতে, আপনাকে অবশ্যই এটি প্রিন্ট করতে হবে৷

প্রিন্ট(এনক্রিপ্টেড_ডেটা)

আউটপুট

 b'gAAAAABgILy91p_wqMntdT3mDkh0IBXSLjuBMQAfnGZAFkZCX1U6Q7TU2PthgFBwVz0QbKXpuNTHRzAgbdDV4zfuuzkGCXqVD - xJdkTycKH2iurC_oqHySLc9xJEXz93LkhTbKUa5HCxfJtB-Um_YkxqjclftXXZQ ==' 

দ্রষ্টব্য − বাইট বিন্যাসে রূপান্তর করার জন্য বাক্যটির আগে আমাদের b ছিল। আপনি পরিবর্তে encode() পদ্ধতি ব্যবহার করতে পারেন।

ডেটা ডিক্রিপ্ট করা

এখন যেহেতু আপনার কাছে সাইফার টেক্সট আছে, আসুন দেখি কিভাবে আমরা এটিকে প্লেইন রিডেবল টেক্সটে রূপান্তর করতে পারি।

আমরা ফার্নেট মডিউলে ডিক্রিপ্ট পদ্ধতি ব্যবহার করে ডিক্রিপশন অর্জন করতে পারি।

decrypted_data =f.decrypt(encrypted_data) # f হল একটি ভেরিয়েবল যার কী মান রয়েছে।প্রিন্ট(ডিক্রিপ্টেড_ডেটা)

আউটপুট

b'এই বার্তাটি এনক্রিপ্ট করা হচ্ছে এবং দেখা যাবে না!'

দ্রষ্টব্য − যদি আপনি উপরের আউটপুটটি দেখেন, আপনি লক্ষ্য করতে পারেন যে মুদ্রিত প্লেইনটেক্সটের আগে b' আছে, কারণ এনক্রিপ্ট করা ডেটা আবার বাইট ফর্ম্যাটে রূপান্তরিত হচ্ছে। শুধু সাধারণ পাঠ্য পেতে, আমাদের ডিকোড ফাংশন ব্যবহার করতে হবে।

print(decrypted_data.decode())

আউটপুট

এই বার্তাটি এনক্রিপ্ট করা হচ্ছে এবং দেখা যাবে না!

দ্রষ্টব্য - আপনি একই কী ব্যবহার করে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করতে পারেন। অর্থাৎ কি এর মান প্রিন্ট করে সেভ করলে। আপনি একটি ভেরিয়েবলে বরাদ্দ করে একই কী ব্যবহার করতে পারেন। উদাহরণ −>

f =Fernet(Bq64GE--93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U=) # একটি প্রকৃত কী-এর মান দেওয়া আছে।

উদাহরণ

from cryptography.fernet import Fernetkey =Fernet.generate_key()print("Key :", key.decode())f =Fernet(key)encrypted_data =f.encrypt(b"এই বার্তাটি এনক্রিপ্ট করা হচ্ছে এবং করা যাবে না দেখা গেছে! 

আউটপুট

 কী:u4dM7xw8sNNU3Rm_lwDbixudWSeaM0Z4TTDdQNKsouI =এনক্রিপশন পরে:b'gAAAAABgIL3_qbfM_oMgQn653gpk6a7hqxXiR0dl0vrmOmqnr5b6MqrsjGkK1IknxMLLtOCq6_YlX4x3nBedbZqtCqy4os55pttrl-pBO6-dJf6kVP50IpIaKSXbpAsuWl4h_2o_E-4YEqZ5kkgxWrwnqojmkMyuSQ =='b'This বার্তা এনক্রিপ্ট করা হচ্ছে এবং দেখা যায় না!' ডিক্রিপশন পর:এই বার্তাটি এনক্রিপ্ট করা হচ্ছে এবং দেখা যায় না 

উপসংহার

আপনি এখন পাইথনে ক্রিপ্টোগ্রাফি প্যাকেজ ব্যবহার করে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করতে শিখেছেন৷

আপনি এমনকি একটি .txt ফাইল হিসাবে কীটি সংরক্ষণ করতে পারেন এবং তারপরে এটি মেলে কিনা তা যাচাই করতে ডেটাবেস থেকে পাসওয়ার্ড এনক্রিপ্ট এবং সংরক্ষণ করতে বা ডিক্রিপ্ট করার জন্য এটি পুনরুদ্ধার করতে পারেন। আরও অনেক ক্ষেত্রে আছে যেখানে আপনি এটি ব্যবহার করতে পারেন, এটি একটি মিনি-প্রকল্প বা বড় স্কেল প্রকল্প হোক।

ক্রিপ্টোগ্রাফি মডিউল সম্পর্কে আরও তথ্যের জন্য, আপনি তাদের অফিসিয়াল ডকুমেন্টেশনের মাধ্যমে পড়তে পারেন − https://pypi.org/project/cryptography/


  1. পাইথনে চার্টে কিংবদন্তি কীভাবে যুক্ত করবেন?

  2. পাইথন ডেটা বিশ্লেষণ এবং ভিজ্যুয়ালাইজেশন

  3. পাইথনে ডেটা বিশ্লেষণ এবং ভিজ্যুয়ালাইজেশন?

  4. একটি অ্যান্ড্রয়েড ডিভাইসে ফাইলগুলি কীভাবে এনক্রিপ্ট এবং ডিক্রিপ্ট করবেন