কম্পিউটার টিউটোরিয়াল

পাইথনে সিকিউর হ্যাশ এবং মেসেজ ডাইজেস্ট


সিকিউর হ্যাশ এবং মেসেজ ডাইজেস্ট প্রসেসের জন্য, আমাদের hashlib মডিউল ব্যবহার করতে হবে। এই মডিউল SHA1, SHA224, SHA256, SHA512 ইত্যাদি বিভিন্ন সিকিউর হ্যাশ অ্যালগরিদমের জন্য একটি কমন ইন্টারফেস বাস্তবায়ন করে। রসার MD5 অ্যালগরিদমও রয়েছে। পুরনো অ্যালগরিদমগুলো মেসেজ ডাইজেস্ট নামে পরিচিত এবং নতুন মেথডগুলো সিকিউর হ্যাশ নামে ডাকা হয়।

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

import hashlib

এই মেথডে, কিছু প্রিডিফাইনড অ্যালগরिदম যেমন md5, sha1, sha224, sha256, sha512 উপস্থিত। আমরা OpenSSL লাইব্রেরি থেকে অতিরিক্ত অ্যালগরিদমও যোগ করতে পারি।

hashlib মডিউলের কিছু মেথড, কনস্ট্যান্ট নিচের মতো -

hashlib.algorithms_guaranteed কনস্ট্যান্ট

এটি হ্যাশ অ্যালগরিদমের নাম ফেরত দেবে, যা এই মডিউল দ্বারা সকল প্ল্যাটফর্মের জন্য গ্যারান্টিদ করা হয়।

hashlib.algorithms_available কনস্ট্যান্ট

এটি হ্যাশ অ্যালগরিদমের নাম ফেরত দেবে, যা রানিং পাইথন ইন্টারপ্রেটারে উপলব্ধ।

hashlib.digest_size কনস্ট্যান্ট

এটি বাইটে ফলাফল হ্যাশের আকার ফেরত দেবে।

hashlib.block_size কনস্ট্যান্ট

এটি বাইটে হ্যাশ অ্যালগরিদমের ইন্টারনাল ব্লক সাইজ ফেরত দেবে।

hashlib.new(name[, data]) মেথড

এটি একটি কনস্ট্রাক্টর। এটি প্রথম আর্গুমেন্ট হিসেবে একটি ডিজায়ারড অ্যালগরিদম নাম নেয়। এটি প্রিডিফাইনড হ্যাশ বা OpenSSL লাইব্রেরি থেকে অন্যান্য অ্যালগরিদম ব্যবহার করতে পারে।

hashlib.update(arg) মেথড

এই মেথড দেওয়া আর্গুমেন্ট দিয়ে হ্যাশ অবজেক্ট আপডেট করতে ব্যবহৃত হয়। এই ফাংশনের পুনরাবৃত্তি কল সমান একক কল.concat আর্গুমেন্টসহ।

hashlib.digest() মেথড

এই মেথড আপডেট মেথড দিয়ে পাস করা ডাইজেস্টেড ডেটা ফেরত দেয়। বাইট অবজেক্টের সাইজ digest_size-এর সাথে একই। এতে ০ থেকে ২৫৫ পর্যন্ত পুরো রেঞ্জের বাইট থাকতে পারে।

hashlib.hexdigest() মেথড

এই মেথড digest মেথডের মতোই কিন্তু রেজাল্টে শুধু হেক্সাডেসিমেল ভ্যালু থাকবে। এই মেথড ইন্টারনেটের মাধ্যমে ডেটা পাঠানোর জন্য খুব সহজে ব্যবহার করা হয়।

উদাহরণ কোড

import hashlib
my_hash1 = hashlib.md5()  # md5 বেছে নিন এবং বাইটস দিয়ে আপডেট
update_bytes = b'Python123'
my_hash1.update(update_bytes)
print("Result after digesting: " + str(my_hash1.hexdigest()))
print("Digest Size: " + str(my_hash1.digest_size))

my_hash2 = hashlib.sha256()  # SHA256 বেছে নিন এবং একই বাইটস দিয়ে আপডেট
my_hash2.update(update_bytes)
print("Result after digesting: " + str(my_hash2.hexdigest()))
print("Digest Size: " + str(my_hash2.digest_size))

আউটপুট

Result after digesting: ae35eacb1cb6f6d38c29a04ecb2d7471
Digest Size: 16
Result after digesting: bba32ba33d6a7f3e02a96e2d7ee6860765780aee42b878007369e373ff419b1e
Digest Size: 32

  1. পাইথন Tkinter-এ after মেথড

  2. পাইথনের startswith() ও endswith() ফাংশন ব্যবহার নির্দেশিকা

  3. পাইথন সেটে অপারেটর ও মেথডের পার্থক্য

  4. পাইথন এক্সসেপশন মেসেজ ক্যাপচার ও প্রিন্ট করা