এই নিবন্ধে আমরা পাইথন ব্যবহার করে ইমেজ ভিত্তিক স্টেগানোগ্রাফি নিয়ে আলোচনা করব। স্টেগানোগ্রাফি হলো একটি পদ্ধতি যেখানে টেক্সটকে অডিও, ভিডিও এবং ইমেজের পেছনে লুকিয়ে রাখা হয়। এটি সুরক্ষা বড়াতে এবং কপিরাইট দাবি থেকে রক্ষা পেতে ব্যবহৃত হয়।
এটি পাইথনে উপলব্ধ stepic মডিউলের এনকোডিং ফিচারের সাহায্যে অর্জন করা হয়। প্রদর্শন এবং ভিউইং উদ্দেশ্যে আমরা পাইথনে উপলব্ধ PIL (Python Imaging Library) ব্যবহার করি।
পছন্দের IDE - Jupyter Notebook
সকল ডিপেন্ডেন্সি ইম্পোর্ট করা:
>>> import stepic
এই নিবন্ধে আমরা নিচের ইমেজে টেক্সট এনকোড করব। নিচের ইমেজটি ডাউনলোড করে Jupyter Notebook লোকালহোস্ট ফোল্ডারে "logo.png" নামে সেভ করুন।

আপনি আপনার পছন্দের যেকোনো ইমেজ ব্যবহার করতে পারেন। শুধু আপনার ইমেজের পাথ ডবল কোটেশন মার্কের ভিতরে নির্দিষ্ট করুন।
>>> img = Image.open('logo.png')
>>> img.show()
Image ফাংশন আমাদের সেই "image"-টিকে খুলতে দেয় যার ওপর স্টেগানোগ্রাফি করা হবে। .show() ফাংশন আমাদের ইমেজটি একটি পপআপ হিসেবে দেখতে দেয়।

এখন stepic মডিউল ব্যবহার করে একটি মেসেজ ৮-বিট বাইনারি ডেটায় ASCII ভ্যালু ব্যবহার করে এনকোড করব। এনকোডের জন্য .encode() ফাংশন ব্যবহার করা হয় যা দুটি প্যারামিটার গ্রহণ করে: ইমেজ এবং মেসেজ।
আমরা .save() ফাংশন ব্যবহার করে হিডেন মেসেজটি আসল ইমেজে সেভ করব।
>>> img1 = stepic.encode(im, b'Tutorialspoint')
>>> img1.save('logo.png', 'PNG')
এখন এনকোডেড ইমেজটি ডিসপ্লে করুন।
>>> img1 = Image.open('logo.png')
>>> img1.show()

আপনি দুটি ইমেজে কোনো পরিবর্তন লক্ষ্য করবেন না। কারণ মেসেজটি লুকিয়ে আছে এবং সরাসরি দৃশ্যমান নয়।
সফলভাবে মেসেজ এনকোড হয়েছে কিনা তা যাচাই করতে নিচের কোড দেখুন।
>>> im2 = Image.open('logo.png')
>>> message_hidden = stepic.decode(im2)
>>> print(message_hidden)
আউটপুট
'Tutorialspoint'
এখানে পাইথনে উপলব্ধ stepic মডিউলের বিল্ট-ইন ডিকোডার দ্বারা হিডেন/এনকোডেড মেসেজটি প্রদর্শিত হয়েছে।
উপসংহার
এই নিবন্ধে আমরা পাইথন ৩.x-এ stepic এবং PIL মডিউল ব্যবহার করে ইমেজ ভিত্তিক স্টেগানোগ্রাফি শিখেছি।