HMAC एक फ्रेमवर्क है, जिसका उपयोग क्रिप्टोग्राफिक हैश फंक्शन्स का उपयोग करके मैसेज ऑथेंटिकेशन के लिए किया जाता है। HMAC का उपयोग MD5, SHA-1 आदि के लिए किया जा सकता है।
क्रिप्टोग्राफिक हैश जनरेट करने का मूल विचार, वास्तविक डेटा और सीक्रेट की पर हैशिंग करना है। अंतिम आउटपुट को सीक्रेट की के बिना भेजा जाता है।
इस मॉड्यूल का उपयोग करने के लिए, हमें पायथन कोड में hmac मॉड्यूल आयात करने की आवश्यकता है।
import hmac
hmac मॉड्यूल के कुछ मेथड्स और एट्रिब्यूट्स इस प्रकार हैं:
मेथड hmac.update(message)
यह मेथड दिए गए मैसेज के साथ hmac ऑब्जेक्ट को अपडेट करने के लिए उपयोग किया जाता है। इस फंक्शन की बार-बार कॉल कॉनकैटनेटेड आर्गुमेंट्स के साथ सिंगल कॉल के बराबर है।
मेथड hmac.digest()
यह मेथड अपडेट मेथड के माध्यम से पास किए गए डाइजेस्टेड डेटा को लौटाने के लिए उपयोग किया जाता है। बाइट ऑब्जेक्ट का आकार digest_size के समान होता है। इसमें 0 से 255 की पूरी रेंज में बाइट्स हो सकते हैं।
मेथड hashlib.hexdigest()
यह मेथड डाइजेस्ट मेथड के समान है लेकिन परिणाम में केवल हेक्साडेसिमल मान होंगे। इस मेथड का उपयोग इंटरनेट के माध्यम से डेटा बहुत आसानी से भेजने के लिए किया जाता है।
मेथड hashlib.copy()
यह मेथड hmac ऑब्जेक्ट की एक कॉपी बनाने के लिए उपयोग किया जाता है। स्ट्रिंग्स के डाइजेस्ट को अधिक कुशल तरीके से गणना करने के लिए, copy() मेथड उपयोगी है।
उदाहरण कोड
import hashlib
import hmac
update_bytes = b'Python123'
password = b'abcde1234'
my_hmac = hmac.new(update_bytes, password, hashlib.md5) # md5 एल्गोरिदम का उपयोग करके हैश बनाएं
print("The first digest: " + str(my_hmac.digest()))
print("The Canonical Name: " + my_hmac.name)
my_hmac_cpy = my_hmac.copy() # hmac ऑब्जेक्ट की एक कॉपी बनाएं
print("The Copied digest: " + str(my_hmac_cpy.digest()))
आउटपुट
The first digest: b"\x1c\xe1\xfb\x9b\xd4\x8bu\xb9\xe6N6\xee\x00O'}" The Canonical Name: hmac-md5 The Copied digest: b"\x1c\xe1\xfb\x9b\xd4\x8bu\xb9\xe6N6\xee\x00O'}"