डेवलपर टूल · SHA हैश कैलकुलेटर
हैशिंग एन्क्रिप्शन नहीं है: SHA-256 हैश को डिक्रिप्ट क्यों नहीं किया जा सकता
· यह क्यों मायने रखती है
क्रिप्टोग्राफी सुरक्षा एन्कोडिंग
कोई कुंजी नहीं है और कोई व्युत्क्रम नहीं है: हैश एक तरफ़ा कार्य है। यह पोस्ट एन्क्रिप्शन से अंतर बताती है, हैश लुकअप साइटें हैश को उल्टा क्यों करती हैं, और व्यक्तिगत डेटा को हैश करने के लिए इसका क्या अर्थ है।
कृपया इन हैश को डिक्रिप्ट करें - वह टिकट जो हैशिंग क्या है के बारे में गलतफहमी को उजागर करता है
एक समर्थन टिकट आता है जिसमें कुछ SHA-256 हैश को डिक्रिप्ट करने के लिए कहा जाता है। इसे पढ़ने वाले डेवलपर को हैशिंग क्या है, इसके बारे में गलतफहमी का संदेह है। भ्रम समझ में आता है - हैशिंग और एन्क्रिप्शन दोनों में क्रिप्टोग्राफ़िक एल्गोरिदम शामिल हैं, दोनों ही ऐसे आउटपुट उत्पन्न करते हैं जो अव्यवस्थित दिखते हैं, और दोनों सुरक्षा के लिए प्रासंगिक हैं। लेकिन वे मौलिक रूप से भिन्न टूल हैं। एन्क्रिप्शन प्रतिवर्ती है; हैशिंग नहीं है. यह अंतर इतना मायने रखता है कि उन्हें भ्रमित करने से वास्तविक सुरक्षा प्रणालियाँ टूट गई हैं। टिकट समझ में एक सामान्य अंतर का प्रतिनिधित्व करता है जो सिस्टम डिज़ाइन को प्रभावित करता है।
हैश फ़ंक्शन एक-तरफ़ा फ़ंक्शन है। आप डाइजेस्ट प्राप्त करने के लिए इनपुट को हैश कर सकते हैं, लेकिन इसमें कोई कुंजी नहीं है और कोई उलटा ऑपरेशन नहीं है जो डाइजेस्ट से इनपुट को पुनर्प्राप्त करता है। यह कोई सीमा या बग नहीं है; यह हैश की परिभाषित संपत्ति है। ToolAcre SHA हैश कैलकुलेटर आपके द्वारा पेस्ट किए गए टेक्स्ट का डाइजेस्ट तैयार करता है, और इसमें कोई "डिक्रिप्ट" बटन नहीं है क्योंकि कोई भी बटन मौजूद नहीं हो सकता है। ऑपरेशन गणित द्वारा अपरिवर्तनीय है, पसंद से नहीं। रिवर्स फ़ंक्शन की अनुपस्थिति ऐसी सुविधा नहीं है जिसका आप अनुरोध कर सकते हैं।
एन्क्रिप्शन में एक कुंजी और एक व्युत्क्रम होता है; हैशिंग में कोई भी नहीं है - स्पष्ट शब्दों में परिभाषात्मक अंतर
एन्क्रिप्शन अलग तरीके से काम करता है. एक एन्क्रिप्शन एल्गोरिदम प्लेनटेक्स्ट और एक कुंजी लेता है, और सिफरटेक्स्ट उत्पन्न करता है। कुंजी के बिना सिफरटेक्स्ट उलझा हुआ और अपठनीय है। महत्वपूर्ण बात यह है कि वही कुंजी सिफरटेक्स्ट को वापस प्लेनटेक्स्ट में डिक्रिप्ट कर सकती है। एन्क्रिप्शन डिज़ाइन द्वारा प्रतिवर्ती है। आप डेटा को गुप्त रखने के लिए एन्क्रिप्ट करते हैं; आप इसे दोबारा पढ़ने के लिए डिक्रिप्ट करें। एन्क्रिप्शन की सुरक्षा कुंजी के गुप्त होने पर निर्भर करती है। केवल कुंजी धारक ही परिवर्तन को उलट सकता है।
हैशिंग की कोई कुंजी नहीं है और कोई रिवर्सल नहीं है। आपके पास एक निश्चित-लंबाई वाला डाइजेस्ट तैयार करने के लिए कुछ है। एक ही इनपुट हमेशा एक ही डाइजेस्ट उत्पन्न करता है। एक अलग इनपुट एक अलग डाइजेस्ट उत्पन्न करता है—वह टकराव-प्रतिरोध गुण है। लेकिन आप डाइजेस्ट नहीं ले सकते और इनपुट तैयार नहीं कर सकते। फ़ंक्शन केवल एक ही दिशा में चलता है. यदि आपको डेटा को एन्क्रिप्ट करने की आवश्यकता है ताकि आप इसे बाद में डिक्रिप्ट कर सकें, तो हैशिंग गलत टूल है। यदि आपको सत्यापन या सामग्री पते के लिए डेटा के फ़िंगरप्रिंट की आवश्यकता है, तो हैशिंग सही है। सही टूल चुनने के लिए अंतर को समझना आवश्यक है।
हैश लुकअप साइटें कैसे काम करती हैं - सामान्य इनपुट के पूर्व-गणना किए गए शब्दकोश, डिक्रिप्शन नहीं
यह भेद इतना महत्वपूर्ण है कि यह पासवर्ड सत्यापन की सुरक्षा को रेखांकित करता है। एक सर्वर पासवर्ड संग्रहीत नहीं करता है. यह पासवर्ड को हैश करने के परिणाम को संग्रहीत करता है। जब कोई उपयोगकर्ता लॉग इन करता है, तो सर्वर उनके सबमिशन को हैश कर देता है और संग्रहीत मूल्य से इसकी तुलना करता है। यदि सर्वर से छेड़छाड़ की जाती है और उसका डेटाबेस चोरी हो जाता है, तो हमलावर को पासवर्ड नहीं मिलता है, केवल हैश मिलता है। हैश की एकतरफा प्रकृति का मतलब है कि हमलावर हैश से पासवर्ड को रिवर्स-इंजीनियर नहीं कर सकता है। सिस्टम की सुरक्षा इसी प्रॉपर्टी पर निर्भर करती है.
यदि सर्वर इसके बजाय एन्क्रिप्शन का उपयोग करता है - यदि यह पासवर्ड एन्क्रिप्ट करता है और उन्हें डिक्रिप्ट कर सकता है - तो कुंजी चुराने वाला समझौता तुरंत हर पासवर्ड को उजागर कर देगा। हैशिंग को विशेष रूप से चुना गया है क्योंकि यह अपरिवर्तनीय है। यही कारण है कि पासवर्ड सिस्टम हैशिंग का उपयोग करते हैं, एन्क्रिप्शन का नहीं। अपरिवर्तनीयता कोई सीमा नहीं है; यह संपूर्ण सुरक्षा मॉडल है. एक एन्क्रिप्टेड पासवर्ड डेटाबेस मूल रूप से हैशेड पासवर्ड की तुलना में कमजोर होता है क्योंकि एन्क्रिप्शन प्रतिवर्ती होता है।
कम-एन्ट्रॉपी इनपुट कमज़ोरी हैं - ईमेल पते, फ़ोन नंबर या संक्षिप्त PIN को हैश करने से थोड़ी सुरक्षा क्यों मिलती है
डिक्रिप्शन का भ्रम पैदा करने के लिए हैश लुकअप साइटें मौजूद हैं। ये साइटें सामान्य इनपुट और उनके हैश की पूर्व-गणना की गई तालिकाओं को होस्ट करती हैं। "रेनबो टेबल" पूर्व-तैयार शब्दकोष हैं: एक तालिका में हजारों सबसे आम पासवर्ड के हैश, या एक निश्चित लंबाई तक के सभी अल्फ़ान्यूमेरिक संयोजन, या कई भाषाओं में संपूर्ण शब्द सूचियां हो सकती हैं। साइट ऑपरेटर ने पहले ही हैशिंग कार्य कर लिया है और परिणाम संग्रहीत कर लिया है। जब कोई किसी लुकअप साइट पर हैश सबमिट करता है, तो साइट कुछ भी डिक्रिप्ट नहीं करती है। यह बस अपनी तालिका में हैश को ऊपर देखता है। यदि हैश वहां है - यदि कुछ शब्दकोश शब्द या पासवर्ड पैटर्न मेल खाता है - तो तालिका मूल इनपुट लौटाती है। तकनीक से अपरिचित किसी व्यक्ति को यह जादुई डिक्रिप्शन जैसा लगता है, लेकिन यह सिर्फ एक डेटाबेस लुकअप है। साइट हैश को उलट नहीं रही है; यह इसकी तुलना पूर्व-गणना किए गए मानों से कर रहा है।
कारगर उदाहरण - एक अनुमानित मान को हैश करना और यह दिखाना कि एक शब्दकोश इसे कैसे पुनर्प्राप्त करेगा, बनाम एक लंबे यादृच्छिक मान को यह नहीं कर सका
यही कारण है कि कम-एन्ट्रॉपी इनपुट असुरक्षित हैं। यदि आपके पास "पासवर्ड" जैसा कोई सामान्य पासवर्ड है या किसी के ईमेल पते जैसा पूर्वानुमानित मान है, तो इस बात की उचित संभावना है कि लुकअप साइट ने पहले ही उस हैश की गणना कर ली है और उसे संग्रहीत कर लिया है। लुकअप तुरंत मूल मान लौटाता है। यदि आपके पास 256-वर्ण की यादृच्छिक स्ट्रिंग है, तो पृथ्वी पर किसी भी लुकअप साइट पर वह विशेष हैश पूर्व-गणना नहीं होगी। लुकअप साइट कुछ भी नहीं लौटाती, क्योंकि इनपुट उनके शब्दकोश में नहीं था। हैश की सुरक्षा पूरी तरह से इनपुट की एन्ट्रापी पर निर्भर करती है।
ToolAcre SHA हैश कैलकुलेटर इसे सीधे प्रदर्शित करता है। हैश एक सामान्य शब्द है, और एक दृढ़ हमलावर इसे देख सकता है यदि वे अपनी स्वयं की शब्दकोश सेवा चलाते हैं। एक लंबे यादृच्छिक मान को हैश करें, और यहां तक कि एक विशाल शब्दकोश में भी इसे शामिल करने की संभावना नहीं होगी। हैशिंग की नियतिवाद - समान इनपुट समान आउटपुट देते हैं - जो शब्दकोश हमलों को संभव बनाता है। यह वह चीज़ भी है जो हैश को सत्यापन के लिए उपयोगी बनाती है। वही संपत्ति जो लुकअप को सक्षम बनाती है, सत्यापन को भी सक्षम बनाती है।
जब आप वास्तव में एन्क्रिप्शन चाहते हैं - ऐसे मामले जहां डेटा वापस आना चाहिए, और जहां हैश गलत टूल है
जब आप वास्तव में एन्क्रिप्शन चाहते हैं - जब आपको गुप्त डेटा भेजने और बाद में इसे पुनर्प्राप्त करने की आवश्यकता होती है - एक सिफर सही टूल है। AES सममित एन्क्रिप्शन के लिए आधुनिक मानक है: एक कुंजी साझा की जाती है, और यह प्लेनटेक्स्ट को एन्क्रिप्ट करती है और सिफरटेक्स्ट को डिक्रिप्ट करती है। RSA या अण्डाकार-वक्र क्रिप्टोग्राफी का उपयोग असममित एन्क्रिप्शन के लिए किया जाता है: एक सार्वजनिक कुंजी एन्क्रिप्ट करती है और एक निजी कुंजी डिक्रिप्ट करती है। ये टूल डिज़ाइन द्वारा प्रतिवर्ती हैं। सुरक्षा मुख्य गोपनीयता से आती है, अपरिवर्तनीयता से नहीं। गलती हैशिंग का उपयोग करना है जहां एन्क्रिप्शन की आवश्यकता है। यदि आपके पास बाद में इसे सत्यापित करने का इरादा रखने वाला क्रेडिट कार्ड नंबर है, तो आपके पास इसे डिक्रिप्ट करने का कोई तरीका नहीं है। यदि आपके पास एक व्यक्तिगत पहचानकर्ता है और बाद में उसे पुनर्प्राप्त करने की आवश्यकता है, तो हैशिंग गलत विकल्प था। ये ऐसी स्थितियाँ हैं जिनमें एन्क्रिप्शन की आवश्यकता होती है।
एक कार्यशील उदाहरण दोनों उपयोगों को स्पष्ट रूप से अलग करता है। आपके पास उपयोगकर्ता ID की एक सूची है जिसे एक-दूसरे से और आपके अपने कर्मचारियों से गुप्त रखा जाना चाहिए। आप उन्हें AES से एन्क्रिप्ट करते हैं और परिणाम संग्रहीत करते हैं। बाद में, जब आपको किसी उपयोगकर्ता को देखने की आवश्यकता होती है, तो आप उन्हें डिक्रिप्ट करते हैं और पढ़ते हैं। हैशिंग काम नहीं करेगी; एक बार हैश हो जाने पर, ID हमेशा के लिए खो जाती हैं। इसके विपरीत, आपके पास उपयोगकर्ता पासवर्ड हैं। आप उन्हें हैश करें और हैश को स्टोर करें। जब कोई उपयोगकर्ता लॉग इन करता है, तो आप उनके सबमिशन को हैश करते हैं और संग्रहीत मूल्य से तुलना करते हैं। आपको कभी भी पासवर्ड स्वयं पुनर्प्राप्त करने की आवश्यकता नहीं होगी. एन्क्रिप्शन गलत होगा; प्रारंभिक सेटअप के बाद आपके पास प्लेनटेक्स्ट पासवर्ड का कोई उपयोग नहीं है।
इसमें क्या शामिल नहीं है - कुंजीबद्ध और नमकीन हैशिंग डिज़ाइन, जो बार बढ़ाते हैं लेकिन एक अलग विषय हैं
सॉल्टिंग और कीड हैशिंग अलग-अलग उपचार के लायक हैं क्योंकि इनमें से कोई भी डाइजेस्ट को एन्क्रिप्शन में नहीं बदलता है। एक नमक समान निम्न-एन्ट्रॉपी इनपुट विभिन्न संग्रहीत रिकॉर्ड उत्पन्न करता है, और एक कुंजी प्रतिबंधित कर सकती है कि वैध प्रमाणीकरण मान की गणना कौन करता है। आउटपुट गैर-प्रतिवर्ती रहता है; पुनर्प्राप्ति प्रयास अभी भी व्युत्क्रम लागू करने के बजाय उम्मीदवार इनपुट का परीक्षण करके आगे बढ़ते हैं।
पासवर्ड हैशिंग जानबूझकर लागत के साथ-साथ नमक भी जोड़ता है, जबकि HMAC एक गुप्त कुंजी के साथ संदेशों को प्रमाणित करता है। ToolAcre कोई भी ऑपरेशन लागू नहीं करता है। उन्हें इस लेख से बाहर रखने से सादे SHA-256 के साथ-साथ एक समीक्षा किए गए पासवर्ड रिकॉर्ड या संदेश-प्रमाणीकरण निर्माण के बराबर एक तात्कालिक उपसर्ग का वर्णन करने के खतरनाक शॉर्टकट से बचा जा सकता है।
टेकअवे: केवल एक ही रास्ता - ToolAcre SHA हैश कैलकुलेटर डाइजेस्ट की गणना करता है; कोई रिवर्स बटन नहीं है क्योंकि कोई भी मौजूद नहीं हो सकता
ToolAcre SHA हैश कैलकुलेटर आपको हैशिंग क्रिया दिखाता है: टेक्स्ट पेस्ट करें, डाइजेस्ट प्राप्त करें, हो गया। कोई उलटफेर संभव या इरादा नहीं है. टूल सही ढंग से "डिक्रिप्ट" फ़ंक्शन प्रदान करने से इंकार कर देता है, क्योंकि कोई मौजूद नहीं हो सकता है। यदि आपको एन्क्रिप्शन की आवश्यकता है, तो उचित सिफर का उपयोग करें। उत्क्रमण की अनुपस्थिति टूल की कोई सीमा नहीं है; यह हैशिंग के बारे में एक गणितीय तथ्य है। वन-वे फ़ंक्शंस शक्तिशाली टूल हैं क्योंकि उन्हें उलटा नहीं किया जा सकता है। वे डेटा को इस तरह से प्रतिबद्ध करते हैं जिसे वापस नहीं लिया जा सकता। वे मूल का खुलासा किए बिना सत्यापन प्रदान करते हैं। वे पासवर्ड सिस्टम सक्षम करते हैं जो डेटाबेस चोरी होने पर भी सुरक्षित होते हैं। नमकीन और ठीक से लागत-ट्यून किए गए पासवर्ड हैश को अनुमान लगाकर उलटना असंभव हो जाता है। अपरिवर्तनीयता ही सुरक्षा तंत्र है।
ToolAcre SHA हैश कैलकुलेटर उन डाइजेस्ट की गणना करता है जो एकतरफा, उद्देश्यपूर्ण होते हैं, और ब्राउज़र के अपने Web Crypto कार्यान्वयन द्वारा ठीक से गणना की जाती है। यदि आपको सत्यापन या अखंडता के लिए हैश की आवश्यकता है, तो इसका उपयोग करें। यदि आपको डेटा को गुप्त रखना है और बाद में उसे पुनः प्राप्त करना है, तो एन्क्रिप्शन आपका टूल है। अपरिवर्तनीय हैशिंग और प्रतिवर्ती एन्क्रिप्शन के बीच अंतर को समझना सुरक्षा और सिस्टम बनाने के लिए मौलिक है जो वही करता है जिसकी आपको वास्तव में आवश्यकता है।