কম্পিউটার

পাইথনে নিরাপদ হ্যাশ এবং বার্তা ডাইজেস্ট


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

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

হ্যাশলিব আমদানি করুন

এই পদ্ধতিতে, কিছু পূর্বনির্ধারিত অ্যালগরিদম রয়েছে যেমন md5, sha1, sha224, sha256, sha512 রয়েছে। আমরা OpenSSL লাইব্রেরি থেকে অতিরিক্ত অ্যালগরিদম যোগ করতে পারি।

কিছু পদ্ধতি, হ্যাশলিব মডিউলের ধ্রুবকগুলি নিম্নরূপ -

ধ্রুবক hashlib.algorithm_guranteed

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

ধ্রুবক hashlib.algorithm_available

এটি হ্যাশ অ্যালগরিদমগুলির নাম ফিরিয়ে দেবে, যা চলমান পাইথন ইন্টারপ্রেটারে উপলব্ধ৷

ধ্রুবক hashlib.digest_size

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

ধ্রুবক hashlib.block_size

এটি বাইটে হ্যাশ অ্যালগরিদমের অভ্যন্তরীণ ব্লকের আকার ফিরিয়ে দেবে।

পদ্ধতি hashlib.new(নাম[, ডেটা])

এটি একটি নির্মাণকারী. এটি তার প্রথম যুক্তি হিসাবে একটি পছন্দসই অ্যালগরিদম নাম নেয়। এটি OpenSSL লাইব্রেরি থেকে পূর্বনির্ধারিত হ্যাশ বা অন্যান্য অ্যালগরিদম ব্যবহার করতে পারে৷

পদ্ধতি hashlib.update(arg)

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

পদ্ধতি hashlib.digest()

এই পদ্ধতিটি হজম করা ডেটা ফেরত দিতে ব্যবহৃত হয় যা আপডেট পদ্ধতির মাধ্যমে পাস করা হয়। বাইট বস্তুর আকার ডাইজেস্ট_সাইজের মতো। এটিতে 0 থেকে 255 পর্যন্ত পুরো পরিসরে বাইট থাকতে পারে।

পদ্ধতি hashlib.hexdigest()

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

উদাহরণ কোড

ইমপোর্ট hashlibmy_hash1 =hashlib.md5() #md5 চয়ন করুন এবং একটি bytesupdate_bytes =b'Python123'my_hash1.update(update_bytes)প্রিন্ট দিয়ে আপডেট করুন("হজম হওয়ার পর ফলাফল:" + str(my_hash1.hexdigest)) "ডাইজেস্ট সাইজ:" + str(my_hash1.digest_size))my_hash2 =hashlib.sha256() # SHA256 চয়ন করুন এবং একই bytesmy_hash2.update(update_bytes)প্রিন্টের সাথে আপডেট করুন("ডাইজেস্ট করার পরে ফলাফল:" + str(my_hash2)) )প্রিন্ট("ডাইজেস্ট সাইজ:" + str(my_hash2.digest_size))

আউটপুট

হজমের পর ফলাফল:ae35eacb1cb6f6d38c29a04ecb2d7471 ডাইজেস্ট সাইজ:16 হজম হওয়ার পর ফলাফল:bba32ba33d6a7f3e02a96e2d7ee6860765780aee267780aee42378> 
  1. পাইথন টিকিন্টারে পদ্ধতির পরে

  2. Python startswith() এবং endswidth() ফাংশন

  3. পাইথন সেটে অপারেটর এবং পদ্ধতির মধ্যে পার্থক্য কী?

  4. পাইথন ব্যতিক্রম বার্তা কিভাবে ক্যাপচার এবং প্রিন্ট করবেন?