क्रिप्टो के लिए ब्लोफिश-आधारित हैश समर्थन सक्षम करें


13

मैं लिनक्स (डेबियन) सर्वर पर छायांकित पासवर्ड और PHP के लिए crypt_blowfish समर्थन कैसे सक्षम करूं?

मैं OpenBSD- स्टाइल ब्लोफिश-आधारित bcrypt की बात कर रहा हूं , जिसे PHP में CRYPT_BLOWFISH के रूप में जाना जाता है।

जहां तक ​​मुझे पता है कि इसके लिए कोई डेबियन पैकेज नहीं है, तो PHP के लिए इस हैशिंग एल्गोरिथ्म को सक्षम करने के लिए मेरे पास और क्या विकल्प हैं?

नोट:
PHP का क्रिप्ट () फ़्यूक्शन अंतर्निहित ऑपरेटिंग सिस्टम द्वारा प्रदान किए गए सी-लाइब्रेरी क्रिप्ट (3) फ़ंक्शन के साथ अपेक्षाकृत सीधे इंटरफेस करता है।

अद्यतन
पैकेज-नामकरण उतना स्पष्ट नहीं है जितना यह (होना चाहिए) हो सकता है। नाशपाती Crypt_Blowfish पैकेज एक ड्रॉप में PHP के mcrypt विस्तार के लिए प्रतिस्थापन, जल्दी के लिए अनुमति देता है दो तरह ब्लोफिश एन्क्रिप्शन।

इसके अलावा डेबियन बीसीक्रिप्ट पैकेज भी 'सामान्य' टू-वे ब्लोफिश एल्गोरिथ्म का कार्यान्वयन है।

मैं जो खोज रहा हूं वह हैशिंग पासवर्ड के लिए Bcrypt-hash कार्यान्वयन है।


"नाशपाती स्थापित Crypt_blowfish" काम नहीं करता है?
कोरी

नाशपाती crypt_blowfish पैकेज 'सामान्य' दो-तरफ़ा ब्लोफ़िश एन्क्रिप्शन एल्गोरिथ्म है। मैं ब्लोफिश-आधारित हैशिंग एल्गोरिथ्म की तलाश कर रहा हूं।
जाको

आह, अब मैं समस्या देख रहा हूं।
मूरी

नहीं पता था कि आप एक सवाल पर एक उच्च इनाम हो सकता है तो अपने वर्तमान प्रतिनिधि। दिलचस्प।
कोपा

रेप तुरंत काट दिया जाता है, इसलिए उसके पास ~ 200 प्रतिनिधि था और अब ~ 50 है।
सिजॉयज

जवाबों:


9

डेबियन में आपको जो पैकेज स्थापित करना है, वह है libpam-unix2

फिर आपको निम्न फ़ाइलों को नीचे संपादित करना होगा /etc/pam.d/, और सभी pam_unix.soउपयोग को इसमें बदलना होगा pam_unix2.so:

  • आम-खाता
  • आम लेखन
  • आम-पासवर्ड
  • आम-सत्र

अंत में, common-passwordफ़ाइल को संपादित करें और "ब्लोफ़िश" के साथ "md5" पैरामीटर बदलें।

इन संशोधनों के बाद अपडेट किए गए पासवर्ड को ब्लोफिश का उपयोग करके हैश किया जाएगा। मौजूदा छाया पासवर्ड संशोधित नहीं हैं। स्रोत

PHP में ब्लोफ़िश का उपयोग करने के लिए, आप एक ब्लोफ़िश नमक प्रदान करते हैं crypt()। ऐशे ही:

crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) ) 

आपको पहले जांचना चाहिए कि क्या CRYPT_BLOWFISH == 1 है। और आपको एक लंबे पर्याप्त नमक का उपयोग करने की आवश्यकता होगी, जो 22 वर्णों के बराबर (या इससे अधिक) है। स्रोत


हम्म, उन परिवर्तनों को करने के बाद, CRYPT_BLOWFISH अभी भी किसी कारण से, 1 के बराबर नहीं है।
Kzqai

1
एक चेतावनी: यदि आपका संस्करण pam_unix2 वर्तमान में उपयोगकर्ता के पासवर्ड के लिए उपयोग किए जाने वाले हैशिंग एल्गोरिथ्म का समर्थन नहीं करता है, तो वह उपयोगकर्ता लॉग इन करने में सक्षम नहीं हो सकता है। मुझे लगता है कि मैं अपने डेबियन बॉक्स में भाग गया हूं; कुछ खाते SHA512 का उपयोग कर रहे थे और लॉग इन नहीं कर सकते थे, लेकिन एक ऐसा खाता जो MD5 का उपयोग करता था। आप उन पासवर्ड को रूट से सेट कर सकते हैं, क्योंकि passwdरूट से चलने पर पुराने पासवर्ड के लिए नहीं पूछते हैं। महत्वपूर्ण: जब तक आप फिर से लॉग इन नहीं कर सकते, तब तक अपना रूट सेशन खुला रखें!
टॉम ज़िक डिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.