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

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

सभी IT कंपनियों की प्रमुख चिंताओं में से एक उनके डेटा की सुरक्षा है। हमारे डेटा को सुरक्षित और जांचने के लिए कई हैशिंग तकनीकें हैं।

हैश क्या है

हैश एक फ़ंक्शन है जो इनपुट के रूप में बाइट्स के चर-लंबाई अनुक्रम को लेता है और इसे निश्चित-लंबाई अनुक्रम में परिवर्तित करता है। हालांकि, अपने मूल डेटा (इनपुट बाइट्स) को वापस प्राप्त करना आसान नहीं है। उदाहरण के लिए, x आपका इनपुट है और f हैशिंग फ़ंक्शन है, तो f(x) की गणना करना त्वरित और आसान है लेकिन x को फिर से प्राप्त करने की कोशिश करना बहुत समय लेने वाला काम है।

हैश फ़ंक्शन से वापसी मान को हैश, चेकसम, हैश मान या संदेश डाइजेस्ट कहा जाता है।

हम उपरोक्त को नीचे संक्षेप में प्रस्तुत कर सकते हैं:

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

मान लीजिए आप "Hello World" संदेश को sha1 हैश फ़ंक्शन में बदलना चाहते हैं तो परिणाम है: 0a4d55a8d778e5022fab701977c5d840bbc486d0,

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

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

अधिकतर उपयोग किए जाने वाले दो हैश फ़ंक्शन या एल्गोरिदम हैं:

  • MD5 - MD5 या संदेश डाइजेस्ट एल्गोरिदम 128-बिट हैश मान उत्पन्न करेगा। MD5 एल्गोरिदम के साथ कुछ सुरक्षा मुद्दे हैं इसलिए हम मुख्य रूप से इसका उपयोग डेटा अखंडता की जांच के लिए करते हैं।

  • SHA - SHA समूह के एल्गोरिदम के तहत कई एल्गोरिदम आते हैं, जिसे U.S फेडरल इंफॉर्मेशन प्रोसेसिंग स्टैंडर्ड द्वारा विकसित किया गया है। ये एल्गोरिदम MD5 की तुलना में अधिक सुरक्षित हैं और इसलिए क्रिप्टोग्राफिक अनुप्रयोगों सहित कई क्षेत्रों में व्यापक रूप से उपयोग किए जाते हैं। इन एल्गोरिदम द्वारा उत्पन्न संदेश 160 बिट्स से 512 बिट्स तक होता है।

SHA1

SHA एल्गोरिदम का एक समूह है जैसे - SHA1, SHA224, SHA256, SHA384, SHA512। SHA1 एल्गोरिदम, MD5 की तुलना में अधिक सुरक्षित माना जाता है और इसलिए कई क्षेत्रों में व्यापक रूप से उपयोग किया जाता है।

सबसे पहले, यदि आप किसी हैशिंग एल्गोरिदम का उपयोग करना चाहते हैं, तो hashlib मॉड्यूल आयात करें:

import hashlib

अब यह जांचने के लिए कि आवश्यक एल्गोरिदम या वर्तमान में hashlib मॉड्यूल में कौन से सभी एल्गोरिदम उपलब्ध हैं:

>>> print(hashlib.algorithms_available)
{'sha3_256', 'sha3_224', 'sha1', 'blake2b', 'sha512', 'dsaEncryption', 'dsaWithSHA', 'DSA', 'md5', 'sha384', 'sha224', 'sha3_384', 'ecdsa-with-SHA1', 'DSA-SHA', 'SHA1', 'md4', 'SHA256', 'MD4', 'sha3_512', 'whirlpool', 'sha256', 'shake_256', 'SHA', 'RIPEMD160', 'shake_128', 'SHA512', 'ripemd160', 'SHA224', 'sha', 'blake2s', 'SHA384', 'MD5'}

उपरोक्त hashlib मॉड्यूल के माध्यम से उपलब्ध एल्गोरिदम की सूची में OpenSSL के माध्यम से एल्गोरिदम शामिल हैं।

हालांकि, हमेशा उपलब्ध एल्गोरिदम की सूची जांचने के लिए, हम इसे algorithms_guaranteed के माध्यम से जांच सकते हैं।

>>> print(hashlib.algorithms_guaranteed)
{'sha3_512', 'sha256', 'sha3_256', 'shake_256', 'sha3_224', 'sha1', 'blake2b', 'sha512', 'md5', 'shake_128', 'sha384', 'sha224', 'sha3_384', 'blake2s'}

आइए sha1 एल्गोरिदम को समझने के लिए एक सरल प्रोग्राम बनाएं:

import hashlib
hash_obj = hashlib.sha1(b'Hello, Python!')
print(hash_obj.hexdigest())

आउटपुट

00d375a3693fde63e9540b91656c6ac5b5341f7c

हालांकि, यदि आप बाइट्स का अनुक्रम वापस चाहते हैं, तो आपको hash_obj.digest() का उपयोग करना चाहिए, जैसे:

import hashlib
hash_obj = hashlib.sha1(b'Hello, Python!')
# बाइट्स का अनुक्रम उत्पन्न करने के लिए
print(hash_obj.digest())

आउटपुट

b'\x00\xd3u\xa3i?\xdec\xe9T\x0b\x91elj\xc5\xb54\x1f|'

यदि आप ध्यान दें, तो हमने किसी भी स्ट्रिंग लिटरल से पहले 'b' का उपयोग किया है, यह स्ट्रिंग से बाइट्स उत्पन्न करने के लिए है क्योंकि हैशिंग फ़ंक्शन केवल पैरामीटर के रूप में बाइट्स के अनुक्रम को स्वीकार करता है।

यदि आप कंसोल से स्ट्रिंग पास करना चाहते हैं, तो स्ट्रिंग को बाइट्स के अनुक्रम में एन्कोड करना न भूलें:

import hashlib
mystring = input('Enter string to hash: ')
hash_obj = hashlib.sha1(mystring.encode())
print(hash_obj.hexdigest())

आउटपुट

Enter string to hash: Hello, TutorialsPoint
b20d14ead3e50552fc1f1cd96696b111a163dffa
  1. पायथन का उपयोग करके व्हाट्सएप ऑटोमेशन पायथन का उपयोग करके व्हाट्सएप ऑटोमेशन

    इस खंड में हम एक व्हाट्सएप चैटबॉट बनाने जा रहे हैं, लेकिन ट्विटर या फेसबुक के कुछ अन्य चैटबॉट्स के विपरीत, व्हाट्सएप चैटबॉट्स व्हाट्सएप की नीतियों के कारण सीधे प्लेटफॉर्म पर नहीं चलते।लेकिन इसे पूरा करने का एक तरीका है, सेलेनियम का उपयोग करके, पायथन में एक बहुत स्मार्ट पैकेज जिसके साथ डेवलपर्स ब्राउ

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

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

  1. पायथन में CX_Freeze का उपयोग पायथन में CX_Freeze का उपयोग

    कभी-कभी हम कुछ अलग बनाना चाहते हैं जो बहुत रोमांचक हो, और मानव स्वभाव के अनुसार, हम हमेशा इसे साझा करना पसंद करते हैं। पायथन भी उन इच्छाओं को पूरा करता है। पायथन का उपयोग करके, अगर हम अपने पायथन प्रोग्राम को अपने दोस्तों के साथ साझा करना चाहते हैं तो हम ऐसा कर सकते हैं, बस उनके मशीन पर वही पायथन सं