सिक्योर हैश और मैसेज डाइजेस्ट प्रक्रिया के लिए, हमें hashlib मॉड्यूल का उपयोग करना चाहिए। यह मॉड्यूल SHA1, SHA224, SHA256, SHA512 आदि जैसे विभिन्न सिक्योर हैश एल्गोरिदम के लिए एक सामान्य इंटरफेस लागू करता है। साथ ही RSA का 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)
यह मेथड दिए गए आर्गुमेंट के साथ हैश ऑब्जेक्ट को अपडेट करने के लिए उपयोग किया जाता है। इस फंक्शन की बार-बार कॉल कॉनकैटनेटेड आर्गुमेंट्स के साथ सिंगल कॉल के बराबर है।
मेथड hashlib.digest()
यह मेथड अपडेट मेथड के माध्यम से पास किए गए डाइजेस्टेड डेटा को लौटाने के लिए उपयोग किया जाता है। बाइट ऑब्जेक्ट का आकार digest_size के समान होता है। इसमें 0 से 255 की पूरी रेंज में बाइट्स हो सकते हैं।
मेथड hashlib.hexdigest()
यह मेथड डाइजेस्ट मेथड के समान है लेकिन परिणाम में केवल हेक्साडेसिमल मान होंगे। इस मेथड का उपयोग इंटरनेट के माध्यम से डेटा बहुत आसानी से भेजने के लिए किया जाता है।
उदाहरण कोड
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