Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन (hashlib) का उपयोग करके सुरक्षित हैश और मैसेज डाइजेस्ट


फेडरल इंफॉर्मेशन प्रोसेसिंग स्टैंडर्ड (FIPS) सुरक्षित हैश एल्गोरिदम SHA1, SHA224, SHA256, SHA384, और SHA512 को परिभाषित करता है। RSA, Rivest, Shamir, और Adleman के उपनामों के प्रारंभिक अक्षरों से बना संक्षिप्त नाम, MD5 एल्गोरिदम को परिभाषित करता है। पुराने एल्गोरिदम को मैसेज डाइजेस्ट कहा जाता था। आधुनिक शब्द सुरक्षित हैश है।

hashlib मॉड्यूल का उपयोग निम्नलिखित एल्गोरिदम को लागू करने के लिए किया जाता है।

  • md5
  • sha1
  • sha224
  • sha256
  • sha384
  • sha512

hashlib.new(name[, data])

एक जेनेरिक कंस्ट्रक्टर है जो वांछित एल्गोरिदम के स्ट्रिंग नाम को अपने पहले पैरामीटर के रूप में लेता है। यह ऊपर सूचीबद्ध हैश के साथ-साथ किसी भी अन्य एल्गोरिदम तक पहुंच की अनुमति देने के लिए भी मौजूद है जो आपकी OpenSSL लाइब्रेरी पेश कर सकती है। नामित कंस्ट्रक्टर new() की तुलना में बहुत तेज हैं और इन्हें प्राथमिकता दी जानी चाहिए।

>>> 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'

हैश ऑब्जेक्ट में निम्नलिखित मेथड हैं -

update() बाइट्स-जैसे ऑब्जेक्ट के साथ हैश ऑब्जेक्ट को अपडेट करें। m.update(a); m.update(b) m.update(a+b) के बराबर है।
digest() अब तक update() मेथड को पास किए गए डेटा का डाइजेस्ट लौटाएं।
hexdigest() डाइजेस्ट को दोगुनी लंबाई के स्ट्रिंग ऑब्जेक्ट के रूप में लौटाया जाता है, जिसमें केवल हेक्साडेसिमल अंक होते हैं।
copy() हैश ऑब्जेक्ट की एक प्रति लौटाएं। इसका उपयोग सामान्य प्रारंभिक सबस्ट्रिंग साझा करने वाले डेटा के डाइजेस्ट की गणना करने के लिए किया जा सकता है।

Hashlib निम्नलिखित एट्रिब्यूट प्रदान करता है -

algorithms_guaranteed इस मॉड्यूल द्वारा सभी प्लेटफार्मों पर समर्थित होने की गारंटी वाले हैश एल्गोरिदम के नामों का एक सेट।
algorithms_available चल रहे पायथन इंटरप्रेटर में उपलब्ध हैश एल्गोरिदम के नामों का एक सेट।
digest_size परिणामी हैश का आकार बाइट्स में।
block_size हैश एल्गोरिदम का आंतरिक ब्लॉक आकार बाइट्स में।
name इस हैश का विहित नाम, हमेशा लोअरकेस और हमेशा new() के पैरामीटर के रूप में उपयुक्त ताकि इस प्रकार का एक और हैश बनाया जा सके।

shake_128() और shake_256() एल्गोरिदम length_in_bits//2 तक 128 या 256 बिट्स की सुरक्षा के साथ परिवर्तनीय लंबाई के डाइजेस्ट प्रदान करते हैं।

BLAKE2 एक क्रिप्टोग्राफिक हैश फंक्शन है जिसे RFC 7693 में परिभाषित किया गया है जो दो फ्लेवर में आता है -

  • BLAKE2b, 64-बिट प्लेटफॉर्म के लिए अनुकूलित और 1 और 64 बाइट्स के बीच किसी भी आकार के डाइजेस्ट उत्पन्न करता है,
  • BLAKE2s, 8- से 32-बिट प्लेटफॉर्म के लिए अनुकूलित और 1 और 32 बाइट्स के बीच किसी भी आकार के डाइजेस्ट उत्पन्न करता है।

  1. पायथन और Scrapy का उपयोग करके वेब स्क्रैपिंग पायथन और Scrapy का उपयोग करके वेब स्क्रैपिंग

    क्रॉलर विकसित करने के लिए सबसे अच्छे फ्रेमवर्क में से एक scrapy है। Scrapy एक लोकप्रिय वेब स्क्रैपिंग और क्रॉलिंग फ्रेमवर्क है जो वेबसाइटों को स्क्रैप करना आसान बनाने के लिए हाई-लेवल फंक्शनलिटी का उपयोग करता है। इंस्टॉलेशन विंडोज में scrapy इंस्टॉल करना आसान है: हम या तो pip या conda (यदि आपके पास

  1. पायथन का उपयोग करके SHA एन्कोडिंग पायथन का उपयोग करके SHA एन्कोडिंग

    सभी IT कंपनियों की प्रमुख चिंताओं में से एक उनके डेटा की सुरक्षा है। हमारे डेटा को सुरक्षित और जांचने के लिए कई हैशिंग तकनीकें हैं। हैश क्या है हैश एक फ़ंक्शन है जो इनपुट के रूप में बाइट्स के चर-लंबाई अनुक्रम को लेता है और इसे निश्चित-लंबाई अनुक्रम में परिवर्तित करता है। हालांकि, अपने मूल डेटा (इनप

  1. पायथन का उपयोग करके MD5 हैश एन्कोडिंग पायथन का उपयोग करके MD5 हैश एन्कोडिंग

    सभी IT कंपनियों की प्रमुख चिंताओं में से एक उनके डेटा की सुरक्षा है। हमारे डेटा को सुरक्षित और जांचने के लिए कई हैशिंग तकनीकें हैं। हैश क्या है हैश एक फ़ंक्शन है जो इनपुट के रूप में बाइट्स के चर-लंबाई अनुक्रम को लेता है और इसे निश्चित-लंबाई अनुक्रम में परिवर्तित करता है। हालांकि, अपने मूल डेटा (इनप