सबसे पहले, मैं अन्य उत्तरों से सहमत हूं जो यह बताता है कि इससे बचने के लिए बहुत सुरक्षित है, और केवल पासवर्ड की राख को स्टोर करें, न कि पासवर्ड को स्वयं, या कुछ भी जो पासवर्ड में बदल सकता है।
हालांकि, ऐसे समय होते हैं, जब आपको रिकवरी की अनुमति देने की अधिक या कम आवश्यकता होती है। पासवर्ड के मामले में, आप आम तौर पर मौजूदा पासवर्ड को पुनर्प्राप्त करने के बजाय जरूरत पड़ने पर एक व्यवस्थापक को पासवर्ड बदलने की अनुमति देकर पुनर्प्राप्त करना चाहते हैं।
हालांकि, एक और संभावना यह है कि आप उपयोगकर्ता को अपने पासवर्ड से एन्क्रिप्ट किए गए सर्वर पर डेटा स्टोर करने की अनुमति देते हैं। इस मामले में, बस एक व्यवस्थापक को पासवर्ड बदलने की अनुमति देना पर्याप्त नहीं है । नया पासवर्ड डेटा को डिक्रिप्ट करने के लिए काम नहीं करेगा, और अधिकांश उपयोगकर्ता अपने सभी एन्क्रिप्ट किए गए डेटा को अस्वीकार्य तब पाएंगे जब वे पासवर्ड भूल जाते हैं / खो देते हैं। इस स्थिति के लिए, एक विकल्प है जो यथोचित रूप से सुरक्षित है, और फिर भी वास्तव में आवश्यकता होने पर पुनर्प्राप्ति की अनुमति देता है।
डेटा को एन्क्रिप्ट करने के लिए उपयोगकर्ता के पासवर्ड का उपयोग करने के बजाय, आप डेटा को एन्क्रिप्ट करने के लिए एक यादृच्छिक कुंजी बनाते हैं। फिर आप उस कुंजी को एक दो स्थानों पर संग्रहीत करते हैं: एक बार उपयोगकर्ता के पासवर्ड के साथ एन्क्रिप्ट किया गया, और एक अन्य स्थान पर व्यवस्थापक पासवर्ड के साथ एन्क्रिप्ट किया गया। तब जब (वास्तव में यदि नहीं) उपयोगकर्ता अपना पासवर्ड खो देता है और अब सीधे डेटा तक नहीं पहुंच सकता है, तो आप वास्तविक कुंजी को डिक्रिप्ट करने के लिए व्यवस्थापक पासवर्ड का उपयोग कर सकते हैं और उपयोग कर सकते हैं कि डेटा को पुनर्प्राप्त करें और / या फिर से एन्क्रिप्ट करें। उपयोगकर्ता का नया पासवर्ड।
यदि आप किसी एक प्रशासक पर पूरी तरह भरोसा नहीं करना चाहते हैं, तो आप उसे भी प्रबंधित कर सकते हैं। उदाहरण के लिए, आप यह तय कर सकते हैं कि 5 लोगों के पास व्यवस्थापक कुंजियाँ होंगी, और आप चाहते हैं कि उनमें से कम से कम तीन लोग एक कुंजी को पुनर्प्राप्त करने से पहले सहमत हों। इस मामले में, जब आप प्रशासनिक उद्देश्यों के लिए एन्क्रिप्ट किए गए पासवर्ड को स्टोर करते हैं, तो आप इसे कई बार स्टोर करते हैं, एक बार प्रत्येक में पांच में से तीन प्रशासकों के सेट के लिए (जो बहुत जगह नहीं लेता है, क्योंकि आप केवल कई कुंजी संग्रहीत कर रहे हैं , ~ 256 बिट एप्स पर, डेटा की एक से अधिक प्रतियां नहीं)। उन प्रतियों में से प्रत्येक को उन तीन प्रशासकों के लिए प्रत्येक पासवर्ड के साथ क्रमिक रूप से एन्क्रिप्ट किया गया है।
इसे डिक्रिप्ट करने के लिए, आपको उन तीन प्रशासकों की पहचान करने की आवश्यकता है जो अपने पासवर्ड दर्ज कर रहे हैं, और तीन के उस सेट के लिए उचित एन्क्रिप्टेड कुंजी चुनें, फिर अंत में मूल कुंजी प्राप्त करने के लिए तीन पासवर्डों में से प्रत्येक का उपयोग करके डिक्रिप्ट करें। इसके बाद आप डेटा को पुनर्प्राप्त करने के लिए उपयोग कर सकते हैं, या आप इसे उपयोगकर्ता के नए पासवर्ड के (हैश) के साथ फिर से एन्क्रिप्ट कर सकते हैं ताकि वे अभी भी अपने डेटा तक पहुंच सकें।
जब आप ऐसा करते हैं, हालांकि, आपको वास्तव में एक मानक एन्क्रिप्शन एल्गोरिथ्म का उपयोग करने की आवश्यकता होती है, और (मजबूत वरीयता द्वारा) एक मानक, अच्छी तरह से जाना जाता है, इसका अच्छी तरह से अध्ययन किया गया कार्यान्वयन।