वापरकर्त्याची पुष्टी करताना किंवा तत्सम काहीतरी करताना तुम्ही पासवर्ड साध्या मजकुरात कधीही ठेवू नये.
बर्याच व्यक्ती समान पासवर्ड वापरत असल्याने, जर एखाद्या आक्रमणकर्त्याला एन्क्रिप्ट न केलेल्या पासवर्डचा डेटाबेस सापडला, तर ते लिंक केलेल्या वेबसाइट किंवा खात्यात प्रवेश करण्यासाठी आणि अगदी इतर खात्यांमध्ये प्रवेश करण्याचा प्रयत्न करण्यासाठी जुळणार्या ईमेलसह सहजपणे वापरला जाऊ शकतो.
आज जेव्हा पासवर्ड पुरवला जातो तेव्हा पासवर्ड अनेकदा हॅश केला जातो. मीठाने हॅश करण्याचा सल्ला दिला जातो आणि हॅश केलेल्या पासवर्डसह मीठ एकत्र ठेवा.
सॅल्टिंग हे हॅश ब्राउन्सच्या रेसिपीमधील एक पायरीसारखे वाटू शकते, परंतु क्रिप्टोग्राफीमध्ये, हे हॅश फंक्शनच्या इनपुटमध्ये यादृच्छिक डेटा जोडण्याचा संदर्भ देते जेणेकरून इनपुट एकसारखे असले तरीही हॅश नेहमीच एक अद्वितीय परिणाम देईल.
परिणामी, मीठ जोडून तयार केलेला विशिष्ट हॅश आपल्याला अनेक आक्रमण पद्धतींपासून वाचवू शकतो, ज्यात हॅश टेबल आक्रमणांचा समावेश आहे, शब्दकोष आणि ब्रूट-फोर्स ऑफलाइन प्रयत्नांना दाबून टाकताना.
येथे, कोड स्निपेट्सच्या मदतीने, आम्ही तुमचे पासवर्ड सुरक्षित करण्यासाठी 'bcrypt' कसे वापरायचे ते दाखवू.
तर, 'bcrypt' म्हणजे काय?
Bcrypt एक हॅशिंग लायब्ररी आहे जी अनेक भाषांना समर्थन देते आणि विशेष पासवर्ड एन्क्रिप्शन प्रदान करते. तुमच्या पासवर्डची सुरक्षितता वाढवण्यासाठी, तुमची स्ट्रिंग एनक्रिप्ट करताना ते आपोआप अतिरिक्त यादृच्छिक वर्ण (मीठ) तयार करते.
तुम्ही येणार्या स्ट्रिंगमध्ये किती अतिरिक्त वर्ण जोडू इच्छिता ते परिभाषित करणे देखील निवडू शकता.
bcrypt लायब्ररी फक्त बाइट कोड वाचते, रॉ स्ट्रिंग नाही. म्हणून, एन्क्रिप्शनसाठी bcrypt मध्ये इनकमिंग पासवर्ड स्ट्रिंग सबमिट करण्यापूर्वी, आपण प्रथम ते एन्कोड करणे आवश्यक आहे.
एन्क्रिप्टिंग आणि एन्कोडिंग या एकाच गोष्टी नाहीत. हे एन्क्रिप्शन तंत्राने झाकण्याआधी स्ट्रिंग मशीन-वाचण्यायोग्य असल्याची खात्री करते.
Python मध्ये पासवर्ड एनक्रिप्ट करण्यासाठी bcrypt वापरणे
Python bcrypt पासवर्ड एन्क्रिप्शन सोपे करते. आम्ही फ्रेमवर्कच्या मदतीशिवाय हे करण्यावर लक्ष केंद्रित करू. परंतु काळजी करू नका, जर तुम्हाला वापरकर्त्याचे इनपुट कसे जतन करायचे आणि ते डेटाबेसमधून कसे वाचायचे हे समजले असेल, तर फ्रेमवर्कमध्ये प्रक्रिया समान आहे.
स्थापना
तुम्हाला फक्त पायथन व्हर्च्युअल एन्व्हायर्नमेंट सेट करावे लागेल आणि नंतर PyCharm सारखे IDE वापरावे लागेल. लायब्ररी नंतर प्रथम स्थापित करणे आवश्यक आहे:
पासवर्ड एन्क्रिप्ट करत आहे
मजकूर इन्स्टॉल केल्यानंतर कूटबद्ध करण्यासाठी bcrypt कसे वापरायचे ते पाहू:
वर नमूद केलेला पायथन कोड एनक्रिप्टेड बाइट स्ट्रिंग कार्यान्वित करतो आणि आउटपुट करतो. पण प्रत्येक वेळी तुम्ही स्क्रिप्ट चालवता, परिणाम वेगळा असतो. प्रत्येक वापरकर्त्याकडे विशिष्टपणे कूटबद्ध केलेला पासवर्ड असल्याची खात्री करण्यासाठी Bcrypt ही पद्धत वापरते.
ते, प्रसंगोपात, पासवर्ड एन्क्रिप्शनसाठी आहे.
Bcrypt वापरून पासवर्ड तुलना आणि पुष्टीकरण
तुम्हाला हॅश केलेला पासवर्ड सेव्ह करायचा असेल आणि वापरकर्त्याने ऑथेंटिकेशनसाठी सबमिट केलेल्या पासवर्डशी तो जुळतो की नाही हे पाहण्यासाठी नंतर तपासायचे असल्यास काय होईल?
ते सोपे आहे. केवळ प्रमाणिकरण संकेतशब्दाची तुलना डेटाबेसच्या नोंदीशी (किंवा या प्रकरणात मेमरीमध्ये) करणे आवश्यक आहे.
डेटाबेसमधील पासवर्डशी तुलना करण्यापूर्वी ऑथेंटिकेटिंग पासवर्ड एन्कोड केलेला असणे आवश्यक आहे कारण bcrypt फक्त बाइट स्ट्रिंग वाचू शकते. मूलभूतपणे, तुम्ही तुमच्या डेटाबेसमध्ये सध्या असलेल्या एन्कोड केलेल्या हॅश पासवर्डशी एन्कोड केलेल्या प्रमाणीकरण इनपुटची तुलना कराल.
काल्पनिक पायथन इनपुट वापरून याची चाचणी करूया:
उपरोक्त कोड चालू केल्यावर, तुम्हाला नवीन पासवर्डसाठी सूचित केले जाईल. हे Python द्वारे मेमरीमध्ये जतन केले आहे. प्रमाणीकरण विभागात, तुम्ही तोच पासवर्ड टाकाल, जो तुमच्यासाठी खाजगी आहे.
जर पासवर्डची तुलना केली गेली आणि जो आधी कूटबद्ध केला गेला आणि सामना जतन केला गेला, तर पायथन यशस्वी संदेश उत्सर्जित करतो.
नसल्यास, त्रुटी संदेश छापला जातो आणि नंतर दुसरे वाक्य जोडले जाते.
मूलभूत कल्पना नोंदणी करणे आणि नंतर प्रमाणीकरणासाठी डेटाबेसला पासवर्ड पुरवणे यासारखीच आहे.
निष्कर्ष
जरी आम्ही साध्या पायथन शॉर्ट मेमरीमध्ये bcrypt फंक्शन कसे कार्य करते हे दर्शविण्यासाठी एन्क्रिप्टेड पासवर्ड वापरला असला तरीही, त्याची वास्तविक लागूता वापरकर्ता-बेस अॅप्समध्ये आहे.
तरीसुद्धा, हा लेख वास्तविक-जगातील परिस्थितीतही, हे पूर्ण करण्यासाठी तुमचा कोड व्यवस्थित करण्यासाठी आवश्यक पद्धती दाखवतो.
उदाहरणार्थ, तुम्ही फ्लास्क वापरत असल्यास, तुम्ही इनपुट्सऐवजी स्वतंत्र वेब फॉर्मद्वारे नोंदणी आणि प्रमाणीकरण फील्ड प्रदान करू शकता.
अर्थात, पासवर्डची तुलना करताना, तुम्ही डेटाबेसमधून वाचाल ज्यामध्ये एनक्रिप्टेड पासवर्ड आहेत जे वास्तविक जगात ठेवलेले आहेत.
जोना नित्श
या साध्या आणि सोप्या स्पष्टीकरणाबद्दल धन्यवाद,
माझ्या सध्याच्या प्रकल्पात यामुळे मला खूप मदत झाली.
मला वाटते की हे खूप चांगले आहे की उदाहरण कोड अगदी कमीत कमी मर्यादित आहे आणि इतर अनेक स्पष्टीकरणांप्रमाणे ओव्हरलोड केलेले नाही.
बेस्ट विनम्र