आप एक मौजूदा एप्लिकेशन को एक स्थापित उपयोगकर्ता आधार के साथ बनाए रखते हैं। समय के साथ यह तय हो गया है कि वर्तमान पासवर्ड हैशिंग तकनीक पुरानी है और इसे अपग्रेड किए जाने की आवश्यकता है। इसके अलावा, UX कारणों से, आप नहीं चाहते कि मौजूदा उपयोगकर्ता अपने पासवर्ड को अपडेट करने के लिए मजबूर हों। पूरे पासवर्ड हैशिंग अपडेट को स्क्रीन के पीछे होना चाहिए।
इसमें शामिल उपयोगकर्ताओं के लिए एक 'सरलीकृत' डेटाबेस मॉडल मान लें:
- आईडी
- ईमेल
- पारण शब्द
ऐसी आवश्यकता को हल करने के लिए कोई कैसे घूमता है?
मेरे वर्तमान विचार हैं:
- उपयुक्त कक्षा में एक नई हैशिंग विधि बनाएं
- अतिरिक्त पासवर्ड फ़ील्ड को रखने के लिए डेटाबेस में उपयोगकर्ता तालिका को अपडेट करें
- एक बार जब कोई उपयोगकर्ता पुराने पासवर्ड हैश का उपयोग करने में सफलतापूर्वक लॉग इन करता है, तो अपडेटेड हैश के साथ दूसरा पासवर्ड फ़ील्ड भरें
यह मुझे इस समस्या के साथ छोड़ देता है कि मैं उन उपयोगकर्ताओं के बीच उचित अंतर नहीं कर सकता जिनके पास है और जिन्होंने अपना पासवर्ड हैश अपडेट नहीं किया है और इस तरह दोनों को जांचने के लिए मजबूर किया जाएगा। यह बुरी तरह से दोषपूर्ण लगता है।
इसके अलावा मूल रूप से इसका मतलब है कि पुरानी हैशिंग तकनीक को अनिश्चित काल तक रहने के लिए मजबूर किया जा सकता है जब तक कि हर एक उपयोगकर्ता ने अपना पासवर्ड अपडेट नहीं किया हो। केवल उसी क्षण मैं पुराने हैशिंग चेक को निकालना शुरू कर सकता हूं और शानदार डेटाबेस क्षेत्र को हटा सकता हूं।
मैं मुख्य रूप से यहां कुछ डिज़ाइन युक्तियों की तलाश कर रहा हूं, क्योंकि मेरा वर्तमान 'समाधान' गंदा, अधूरा है और क्या नहीं, लेकिन यदि किसी संभावित समाधान का वर्णन करने के लिए वास्तविक कोड की आवश्यकता होती है, तो किसी भी भाषा का उपयोग करने के लिए स्वतंत्र महसूस करें।