तपाईंले प्रयोगकर्तालाई पुष्टि गर्दा वा यस्तै केहि गर्दा सादा पाठमा पासवर्ड राख्नु हुँदैन।
धेरै व्यक्तिहरूले एउटै पासवर्ड प्रयोग गर्ने हुनाले, यदि आक्रमणकारीले गुप्तिकरण नगरिएका पासवर्डहरूको डाटाबेस पत्ता लगायो भने, तिनीहरू सजिलैसँग लिंक गरिएको वेबसाइट वा खातामा प्रवेश गर्न मिल्दो इमेलहरूसँग संयोजनमा प्रयोग गर्न सकिन्छ र अन्य खाताहरू पहुँच गर्न प्रयास गर्न पनि प्रयोग गरिन्छ।
पासवर्ड प्रदान गर्दा पासवर्डहरू प्रायः आज ह्यास हुन्छन्। नुनको साथ ह्यास गर्न र ह्यास गरिएको पासवर्डको साथ नुन सँगै राख्न सल्लाह दिइन्छ।
साल्टिङ भनेको ह्यास ब्राउनको लागि रेसिपीको एउटा चरण जस्तो लाग्न सक्छ, तर क्रिप्टोग्राफीमा, यसले ह्यास फंक्शनको इनपुटमा अनियमित डेटा थप्नलाई जनाउँछ कि ह्यासले सधैं अनौठो परिणाम प्रदान गर्नेछ भनी इनपुटहरू समान छन्।
नतिजाको रूपमा, नुन थपेर सिर्जना गरिएको विशिष्ट ह्यासले हामीलाई ह्यास टेबल हमलाहरू सहित, शब्दकोश र ब्रूट-फोर्स अफलाइन प्रयासहरूलाई दबाएर धेरै आक्रमण विधिहरूबाट बचाउन सक्छ।
यहाँ, कोड स्निपेटहरूको सहायताले, हामी तपाइँको पासवर्डहरू सुरक्षित गर्न कसरी 'bcrypt' प्रयोग गर्ने भनेर प्रदर्शन गर्नेछौं।
त्यसोभए, 'bcrypt' के हो?
Bcrypt एक ह्यासिङ पुस्तकालय हो जसले धेरै भाषाहरूलाई समर्थन गर्दछ र विशेष पासवर्ड इन्क्रिप्सन प्रदान गर्दछ। तपाईँको पासवर्डको सुरक्षा बढाउनको लागि, यसले तपाईँको स्ट्रिङ इन्क्रिप्ट गर्दा स्वचालित रूपमा अतिरिक्त अनियमित अक्षरहरू (नुन) उत्पादन गर्छ।
तपाईले आगमन स्ट्रिङमा कति थप वर्णहरू थप्न चाहनुहुन्छ भनेर परिभाषित गर्न पनि छनौट गर्न सक्नुहुन्छ।
bcrypt पुस्तकालयले बाइट कोड मात्र पढ्छ, कच्चा तारहरू होइन। तसर्थ, एन्क्रिप्शनको लागि bcrypt मा आगमन पासवर्ड स्ट्रिङ पेश गर्नु अघि, तपाईंले पहिले यसलाई इन्कोड गर्नुपर्छ।
एन्क्रिप्टिङ र एन्कोडिङ एउटै कुरा होइनन्। यसले एन्क्रिप्शन प्रविधिद्वारा ढाक्नु अघि स्ट्रिङ मेसिन-पढ्न योग्य छ भनी सुनिश्चित गर्दछ।
पाइथनमा पासवर्ड इन्क्रिप्ट गर्न bcrypt प्रयोग गर्दै
पाइथनले bcrypt पासवर्ड इन्क्रिप्सन सरल बनाउँछ। हामी फ्रेमवर्कको सहायता बिना यो गर्नमा ध्यान केन्द्रित गर्नेछौं। तर चिन्ता नगर्नुहोस्, यदि तपाइँ कसरी प्रयोगकर्ता इनपुटहरू बचत गर्ने र डाटाबेसबाट पढ्ने भनेर बुझ्नुहुन्छ भने, प्रक्रिया फ्रेमवर्कहरूमा समान छ।
स्थापना
तपाईंले मात्र पाइथन भर्चुअल वातावरण सेटअप गर्न आवश्यक छ र त्यसपछि PyCharm जस्तै IDE प्रयोग गर्नुहोस्। पुस्तकालय त्यसपछि पहिले स्थापना गर्नुपर्छ:
पासवर्ड इन्क्रिप्ट गर्दै
इन्स्टल भइसकेपछि पाठ इन्क्रिप्ट गर्न bcrypt कसरी प्रयोग गर्ने हेरौं:
माथि उल्लिखित पाइथन कोडले एन्क्रिप्टेड बाइट स्ट्रिङलाई कार्यान्वयन र आउटपुट गर्छ। तर हरेक पटक तपाईंले स्क्रिप्ट चलाउनुहुन्छ, परिणाम फरक हुन्छ। Bcrypt ले यो विधि प्रयोग गर्दछ कि प्रत्येक प्रयोगकर्तासँग विशेष रूपमा गुप्तिकरण गरिएको पासवर्ड छ भनी सुनिश्चित गर्न।
त्यो, संयोगवश, पासवर्ड ईन्क्रिप्शनको लागि हो।
Bcrypt प्रयोग गरेर पासवर्ड तुलना र पुष्टिकरण
के हुन्छ यदि तपाइँ ह्यास गरिएको पासवर्ड बचत गर्न चाहानुहुन्छ र यो प्रमाणीकरणको लागि पेश गरिएको पासवर्डसँग मेल खान्छ कि भनेर पछि जाँच गर्नुहोस्?
त्यो सरल छ। केवल प्रमाणीकरण गर्ने पासवर्डलाई डाटाबेसको प्रविष्टि (वा यस अवस्थामा मेमोरीमा) तुलना गरिनुपर्छ।
प्रमाणिकरण पासवर्ड पनि डाटाबेसमा एकसँग तुलना गर्नु अघि इन्कोड गरिएको हुनुपर्छ किनभने bcrypt ले बाइट स्ट्रिङहरू मात्र पढ्न सक्छ। साधारणतया, तपाईले हाल तपाईको डाटाबेसमा रहेको एन्कोड गरिएको ह्यास गरिएको पासवर्डसँग एन्कोड गरिएको प्रमाणीकरण इनपुट तुलना गर्नुहुनेछ।
काल्पनिक पाइथन इनपुटहरू प्रयोग गरेर यसलाई परीक्षण गरौं:
माथि उल्लिखित कोड चलाउँदा, तपाईंलाई नयाँ पासवर्डको लागि प्रोम्प्ट गरिन्छ। यो Python द्वारा मेमोरीमा बचत गरिएको छ। प्रमाणीकरण खण्डमा, तपाईंले त्यसपछि उही पासवर्ड प्रविष्ट गर्नुहुनेछ, जुन तपाईंको लागि निजी हो।
यदि पासवर्ड तुलना गरिएको छ र पहिले एन्क्रिप्ट गरिएको थियो र मिलान बचत गरिएको थियो भने, पाइथनले सफलता सन्देश उत्सर्जन गर्दछ।
यदि होइन भने, त्रुटि सन्देश छापिएको छ र त्यसपछि अर्को वाक्य थपिएको छ।
मौलिक विचार दर्ता गर्ने र त्यसपछि प्रमाणीकरणको लागि डाटाबेसमा पासवर्ड आपूर्ति गर्ने जस्तै हो।
निष्कर्ष
सादा पाइथन छोटो मेमोरीमा कसरी bcrypt प्रकार्यहरू देखाउनको लागि हामीले इन्क्रिप्टेड पासवर्डहरू मात्र प्रयोग गरेका छौं, यसको वास्तविक प्रयोज्यता प्रयोगकर्ता-आधार एपहरूमा छ।
जे होस्, यस लेखले वास्तविक-विश्व परिस्थितिहरूमा पनि यो पूरा गर्नको लागि तपाईंको कोड व्यवस्थित गर्न आवश्यक विधिहरू देखाउँछ।
उदाहरणका लागि, यदि तपाइँ फ्लास्क प्रयोग गर्दै हुनुहुन्छ भने, तपाइँ आगतहरूको सट्टा छुट्टै वेब फारमहरू मार्फत दर्ता र प्रमाणीकरण क्षेत्रहरू प्रदान गर्न सक्नुहुन्छ।
निस्सन्देह, पासवर्डहरू तुलना गर्दा, तपाईंले डाटाबेसबाट पढ्नुहुनेछ जुन ईन्क्रिप्टेड पासवर्डहरू समावेश गर्दछ जुन वास्तविक संसारमा राखिएको छ।
जोना नित्श
यो सरल र सरल व्याख्या को लागी धन्यवाद,
यसले मलाई मेरो हालको परियोजनामा धेरै मद्दत गर्यो।
मलाई लाग्छ कि यो धेरै राम्रो छ कि उदाहरण कोड नग्न न्यूनतममा सीमित छ र अन्य धेरै व्याख्याहरू जस्तै ओभरलोड गरिएको छैन।
शुभेक्षा सहित