संघीय सूचना संसाधन मानक (FIPS) सुरक्षित हैश एल्गोरिदम SHA1, SHA224, SHA256, SHA384 और SHA512 को परिभाषित करता है। RSA रिवेस्ट, शमीर और एडलमैन के उपनामों के शुरुआती अक्षर से बना संक्षिप्त नाम, MD5 एल्गोरिथम को परिभाषित करता है। पुराने एल्गोरिदम को संदेश डाइजेस्ट कहा जाता था। आधुनिक शब्द सुरक्षित हैश है।
हैशलिब मॉड्यूल का उपयोग निम्नलिखित एल्गोरिदम को लागू करने के लिए किया जाता है।
- एमडी5
- sha1
- sha224
- sha256
- sha384
- sha512
hashlib.new(name[, data])
एक सामान्य कंस्ट्रक्टर है जो वांछित एल्गोरिथ्म के स्ट्रिंग नाम को इसके पहले पैरामीटर के रूप में लेता है। यह उपरोक्त सूचीबद्ध हैश के साथ-साथ आपकी ओपनएसएसएल लाइब्रेरी की पेशकश करने वाले किसी भी अन्य एल्गोरिदम तक पहुंच की अनुमति देने के लिए भी मौजूद है। नामित कंस्ट्रक्टर नए () की तुलना में बहुत तेज़ हैं और उन्हें प्राथमिकता दी जानी चाहिए।
>>> hash = hashlib.new('md5',b'hello') >>> hash.hexdigest() '5d41402abc4b2a76b9719d911017c592' >>> import hashlib
व्यक्तिगत नामित कंस्ट्रक्टरों का उपयोग करना
>>> msg = hashlib.sha256() >>> msg.update(b'Simple is better than complex') >>> msg.digest() b'\xabz\xd8C(n\xb3\x8b\xf6\x0c\x0e\xf2\x81z\xd7\xf93\x835\xb2\xa1\x9cM\xb1S\x1f\xf7\xf9\x1av-F' >>> msg.block_size 64 >>> msg.hexdigest() 'ab7ad843286eb38bf60c0ef2817ad7f9338335b2a19c4db1531ff7f91a762d46' >>> msg = hashlib.md5() >>> msg.update(b'Simple is better than complex') >>> msg.hexdigest() 'fd34bb8fafd17f1a21d7bb6e38c8dc68'
हैश ऑब्जेक्ट में निम्नलिखित तरीके होते हैं -
अद्यतन () | हैश ऑब्जेक्ट को बाइट जैसी ऑब्जेक्ट से अपडेट करें। एम.अद्यतन (ए); m.update(b) m.update(a+b) के बराबर है। |
डाइजेस्ट () | अब तक अपडेट () विधि में पास किए गए डेटा का डाइजेस्ट लौटाएं। |
हेक्सडाइजेस्ट () | एक डाइजेस्ट को डबल लंबाई की स्ट्रिंग ऑब्जेक्ट के रूप में लौटाया जाता है, जिसमें केवल हेक्साडेसिमल अंक होते हैं। |
प्रतिलिपि () | हैश ऑब्जेक्ट की एक प्रति लौटाएं। इसका उपयोग एक सामान्य प्रारंभिक सबस्ट्रिंग साझा करने वाले डेटा के डाइजेस्ट की गणना करने के लिए किया जा सकता है। |
हैशलिब निम्नलिखित विशेषताएँ प्रदान करता है -
एल्गोरिदम_गारंटीड | हैश एल्गोरिथम के नामों वाला एक सेट, जो सभी प्लेटफॉर्म पर इस मॉड्यूल द्वारा समर्थित होने की गारंटी है। |
एल्गोरिदम_उपलब्ध | हैश एल्गोरिथम के नाम वाला एक सेट जो चल रहे पायथन इंटरप्रेटर में उपलब्ध है। |
digest_size | परिणामी हैश का आकार बाइट्स में। |
block_size | बाइट्स में हैश एल्गोरिथम का आंतरिक ब्लॉक आकार। |
नाम | इस हैश का विहित नाम, हमेशा लोअरकेस और हमेशा इस प्रकार का एक और हैश बनाने के लिए नए () के पैरामीटर के रूप में उपयुक्त होता है। |
शेक_128() और शेक_256() एल्गोरिदम लंबाई_इन_बिट्स//2 तक 128 या 256 बिट सुरक्षा के साथ परिवर्तनीय लंबाई डाइजेस्ट प्रदान करते हैं।
BLAKE2 RFC 7693 में परिभाषित एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन है जो दो फ्लेवर में आता है -
- BLAKE2b, 64-बिट प्लेटफ़ॉर्म के लिए अनुकूलित और 1 और 64 बाइट्स के बीच किसी भी आकार के डाइजेस्ट का उत्पादन करता है,
- BLAKE2s, 8- से 32-बिट प्लेटफ़ॉर्म के लिए अनुकूलित और 1 और 32 बाइट्स के बीच किसी भी आकार के डाइजेस्ट का उत्पादन करता है।