धीमे और memory hard function से hash करें: फिलहाल Argon2id की सिफारिश है, bcrypt और scrypt भी चल जाते हैं। हर पासवर्ड को अपना unique salt मिलता है, जिसे ये एल्गोरिदम खुद बनाकर आउटपुट में रख देते हैं, और parameters ऐसे सेट होने चाहिए कि आपके हार्डवेयर पर hashing सेकंड के ठीक ठाक हिस्से जितना समय ले। SHA-256 या MD5 जैसा सादा तेज़ hash कभी इस्तेमाल न करें, पासवर्ड को उलटा किए जा सकने वाले तरीके से encrypt कभी न करें, और parameters बढ़ाने पर login के वक्त दोबारा hash करें।
इंटरव्यूअर यह क्यों पूछते हैं
यह तथ्यों वाला सिक्योरिटी सवाल है जिसका साफ सही जवाब है, इसलिए यह जल्दी छांट देता है। इंटरव्यूअर Argon2id या bcrypt, per user salts और जानबूझकर की गई धीमापन सुनना चाहते हैं, साथ ही आसपास के इंतज़ामों की समझ: rate limiting, breached password जांच और सुरक्षित reset flow। मौजूदा implementation की समीक्षा यह भी दिखाती है कि आप बारीक दिक्कतें पकड़ पाते हैं या नहीं, जैसे bcrypt का लंबे inputs को काट देना।
अपना जवाब कैसे स्ट्रक्चर करें
- एल्गोरिदम का नाम लें और बताएं कि धीमापन तथा memory hardness क्यों मायने रखते हैं।
- salts पर बात करें और यह कि per user salt पहले से बनी tables को क्यों बेकार कर देता है।
- बताएं कि parameters आप कैसे चुनते हैं और बाद में उन्हें कैसे बढ़ाते हैं।
- hash के परे आसपास के इंतज़ाम गिनाएं।
उदाहरण जवाब
मैं Argon2id की तरफ जाता हूं, और अगर प्लेटफॉर्म की library बेहतर सपोर्टेड हो तो bcrypt fallback के तौर पर। बात यह है कि यह जानबूझकर धीमा और memory hard है, ताकि dump हाथ लगने पर भी हमलावर graphics card पर हर सेकंड अरबों संभावनाएं न आज़मा सके। हर पासवर्ड को अपना random salt मिलता है, जिसे ये एल्गोरिदम encoded आउटपुट में ही रख देते हैं, इसलिए एक जैसे पासवर्ड के hash अलग होते हैं और पहले से बनी tables किसी काम की नहीं रहतीं। मैं असली हार्डवेयर पर parameters ट्यून करता हूं, हर hash पर कुछ सौ मिलीसेकंड का लक्ष्य रखकर, और उन्हें hash के साथ स्टोर करता हूं ताकि बाद में बढ़ा सकूं और अगली बार यूज़र के सफल login पर चुपचाप दोबारा hash कर सकूं। समीक्षा में मैं जिन चीज़ों पर उंगली रखता हूं वे हैं कोरा SHA-256 या MD5, कुछ भी जो उलटा किया जा सके, एक ही global salt, और bcrypt के मामले में खासकर यह कि वह 72 बाइट से आगे का input चुपचाप छोड़ देता है, जिससे लंबे passphrases चुपके से कमज़ोर हो जाते हैं। hash के परे मुझे login पर rate limiting चाहिए, जानी पहचानी breached पासवर्ड सूची से जांच, और एक बार इस्तेमाल होने वाले, समय पर expire होने वाले tokens के साथ reset flow।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- pepper क्या है, और आप उसे कहां रखेंगे?
- कमज़ोर तरीके से hash किए पासवर्ड की मौजूदा टेबल को आप कैसे migrate करेंगे?
- credential stuffing से login endpoint को आप कैसे बचाएंगे?
बैकएंड डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें