डेटा की सुरक्षा में सभी आईटी कंपनियों की प्रमुख चिंताओं में से एक। हमारे डेटा को प्रोजेक्ट करने और जांचने के लिए कई हैशिंग तकनीकें हैं।
हैश क्या है
हैश एक फ़ंक्शन है जो इनपुट के रूप में बाइट्स के चर लंबाई अनुक्रम लेता है और इसे एक निश्चित लंबाई अनुक्रम में परिवर्तित करता है। हालांकि, अपना मूल डेटा (इनपुट बाइट्स) वापस पाना आसान नहीं है। उदाहरण के लिए, x आपका इनपुट है और f f हैशिंग फ़ंक्शन है, तो f(x) की गणना करना त्वरित और आसान है लेकिन x को फिर से प्राप्त करने का प्रयास बहुत समय लेने वाला काम है।
हैश फ़ंक्शन से वापसी मान को हैश, चेकसम, हैश मान या संदेश डाइजेस्ट कहा जाता है।
हम ऊपर संक्षेप में नीचे बता सकते हैं -
मान लीजिए कि आप "हैलो वर्ल्ड" संदेश को sha1 हैश फ़ंक्शन में बदलना चाहते हैं तो परिणाम यह है:0a4d55a8d778e5022fab701977c5d840bbc486d0,
वास्तविक जीवन परिदृश्य में, हैश फ़ंक्शंस का उपयोग क्रिप्टोग्राफ़िक एल्गोरिदम में, डिजिटल हस्ताक्षर, फ़िंगरप्रिंट में, पासवर्ड और कई अन्य क्षेत्रों को संग्रहीत करने के लिए किया जाता है। एक पायथन प्रोग्रामर के रूप में, हमें डेटा या फ़ाइलों की दोहराव की जांच करने के लिए हैश फ़ंक्शन की आवश्यकता होती है, जब आप किसी सार्वजनिक नेटवर्क पर डेटा संचारित करते हैं, डेटाबेस में पासवर्ड संग्रहीत करते हैं, तो डेटा अखंडता की जांच करने के लिए।
अधिकतर उपयोग किए जाने वाले दो हैश फ़ंक्शन या एल्गोरिदम हैं -
-
MD5 - MD5 या संदेश डाइजेस्ट एल्गोरिथम 128-बिट हैश मान उत्पन्न करेगा। md5 एल्गोरिथम के साथ कुछ सुरक्षा समस्याएं हैं, इसलिए हमने मुख्य रूप से इसका उपयोग डेटा अखंडता की जांच के लिए किया है।
-
SHA - एल्गोरिथ्म के SHA समूह के अंतर्गत कई एल्गोरिदम आते हैं, जिन्हें यू.एस. संघीय सूचना प्रसंस्करण मानक द्वारा विकसित किया गया है। ये एल्गोरिदम md5 की तुलना में बहुत अधिक सुरक्षित हैं और इसलिए क्रिप्टोग्राफ़िक अनुप्रयोगों सहित कई क्षेत्रों में व्यापक रूप से उपयोग किए जाते हैं। इन एल्गोरिदम द्वारा उत्पन्न संदेश 160 बिट से लेकर 512 बिट तक होता है।
SHA1
SHA एल्गोरिदम का एक समूह है जैसे – SHA1, SHA224, SHA256, SHA384, SHA512। SHA1 एल्गोरिथम, md5 से अधिक सुरक्षित माना जाता है और इसलिए कई क्षेत्रों में इसका व्यापक रूप से उपयोग किया जाता है।
सबसे पहले, यदि आप किसी हैशिंग एल्गोरिथम का उपयोग करना चाहते हैं, तो हैशलिब मॉड्यूल आयात करें -
हैशलिब आयात करें
अब यह जांचने के लिए कि क्या हैशलिब मॉड्यूल में आवश्यक एल्गोरिदम या सभी एल्गोरिदम वर्तमान में उपलब्ध हैं -
>>> प्रिंट (हैशलिब.एल्गोरिदम_उपलब्ध){'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', 'भँवर', ' sha256', 'shake_256', 'SHA', 'RIPEMD160', 'shake_128', 'SHA512', 'ripemd160', 'SHA224', 'sha', 'blake2s', 'SHA384', 'MD5'}
हैशलिब मॉड्यूल के माध्यम से उपलब्ध एल्गोरिदम की उपरोक्त सूची में ओपनएसएसएल के माध्यम से एल्गोरिदम शामिल हैं।
हालांकि, हमेशा उपलब्ध एल्गोरिदम की सूची की जांच करने के लिए, हम इसे एल्गोरिदम_गारंटी के माध्यम से देख सकते हैं।
>>> प्रिंट (hashlib.algorithms_guaranteed){'sha3_512', 'sha256', 'sha3_256', 'shake_256', 'sha3_224', 'sha1', 'blake2b', 'sha512', 'md5', ' शेक_128', 'sha384', 'sha224', 'sha3_384', 'blake2s'}
आइए sha1 एल्गोरिदम को समझने के लिए एक सरल प्रोग्राम बनाएं,
import hashlibash_obj =hashlib.sha1(b'Hello, Python!')print(hash_obj.hexdigest())
आउटपुट
00d375a3693fde63e9540b91656c6ac5b5341f7c
हालाँकि, यदि आप चाहते हैं कि बाइट्स का क्रम वापस आए, तो आपको हैश_ओबज.डिगेट (), जैसे -
का उपयोग करना चाहिए।import hashlibash_obj =hashlib.sha1(b'Hello, Python!')# लिए बाइट्सप्रिंट का सीक्वेंस (hash_obj.digest())
आउटपुट
b'\x00\xd3u\xa3i?\xdec\xe9T\x0b\x91elj\xc5\xb54\x1f|'
यदि आप ध्यान दें, हमने किसी भी स्ट्रिंग अक्षर से पहले 'बी' का उपयोग किया है, यह स्ट्रिंग से बाइट्स उत्पन्न करना है क्योंकि हैशिंग फ़ंक्शन केवल पैरामीटर के रूप में बाइट्स के अनुक्रम को स्वीकार करता है।
यदि आप कंसोल से स्ट्रिंग पास करना चाहते हैं, तो स्ट्रिंग को बाइट्स के क्रम में एन्कोड करना न भूलें -
आयात करेंआउटपुट
हैश में स्ट्रिंग दर्ज करें:हैलो, TutorialsPointb20d14ead3e50552fc1f1cd96696b111a163dffa