2011-12-28 14 views
5

मैं एक स्क्रिप्ट पर काम कर रहा हूं और पासवर्ड सहेजने की आवश्यकता है। विकास उद्देश्यों के लिए, मैं crypt() फ़ंक्शन का उपयोग कर रहा हूं क्योंकि यह आसान और उपलब्ध था। अब जब मैं अधिकतर किया जाता हूं, तो मैं इसे थोड़ा बेहतर और अधिक सुसंगत रूप से बदलना चाहता हूं।क्रिप्ट करने के लिए वैकल्पिक()

चिंताओं मेरे पास से कुछ हैं:

  • सभी एल्गोरिदम हर प्रणाली
  • कभी कभी नमक परिणाम के लिए पहले से pended है पर समर्थित हैं नहीं (एक सुरक्षा समस्या की तरह लगता है)

मुझे ऐसा कुछ चाहिए जो PHP 4.3+ के साथ काम करता हो।

क्या कुछ भी उपलब्ध है, या मुझे crypt() के साथ रहना चाहिए? मैंने md5(md5($password).$salt) का उपयोग करने के बारे में सोचा। अंतर्दृष्टि के लिए धन्यवाद।

+5

आप कुछ "क्रिप्ट()' से बेहतर चाहते हैं और आप डबल एमडी 5 का प्रस्ताव दे रहे हैं? – ceejayoz

+0

मैंने उन परियोजनाओं पर काम किया है जहां एमडी 5 और शा 1 का उपयोग किया गया था (एक साथ नहीं)। Sha1 पर अधिक जानकारी: http://us.php.net/sha1 –

+0

हैशिंग (1 रास्ता) –

उत्तर

6

अपने सर्वर इसका समर्थन नहीं करता है, तो एक और सर्वर का उपयोग crypt

के साथ गलत कुछ भी नहीं है।

आप चाहिए कभी नहीं (उस बात के लिए या यहां तक ​​कि SHA1) पासवर्ड hashing या तो bcrypt

उपयोग करें (crypt की ब्लोफिश विधि) या PBKDF2

के लिए उपयोग MD5 वहाँ PBKDF2 के एक कार्यान्वयन है यहाँ: Encrypting Passwords with PHP for Storage Using the RSA PBKDF2 Standard

पर

अधिक जानकारी क्यों और यहाँ कैसे:

+0

समस्या यह है कि, मैं इस काम को अन्य उपयोगकर्ताओं के लिए बनाने की कोशिश कर रहा हूं जहां मेरे पास उनके सिस्टम पर नियंत्रण नहीं है और सभी क्रिप्ट विधियां उपलब्ध नहीं हैं, असल में ब्लाफिश मेरे पास नहीं है, हालांकि इसमें sha512 है, जबकि एक और सर्वर मैं खेलता हूं बस विपरीत है। – steveo225

+0

@ steveo225 अच्छी तरह से अगर आप पोर्टेबिलिटी के लिए सुरक्षा बलिदान देना चाहते हैं, तो मुझे आपके ग्राहकों के लिए खेद है। – Petah

+0

एमडी 5 के साथ क्या गलत है? मैंने कई अन्य ज्ञात स्क्रिप्ट सिस्टमों का उपयोग किया है, जैसे vBulletin? – steveo225

4

सबसे पहले: नमक prepending एक सुरक्षा समस्या नहीं है। प्रति-पासवर्ड नमक रखना एक बड़ी गुडिया है, और यह पीडब्ल्यू के साथ स्टोर होने के लिए बिल्कुल ठीक है।

अब: जब तक आप एक सिस्टम से दूसरे सिस्टम में पासवर्ड हैश नहीं लेते हैं, और बाद वाले पहले के डिफ़ॉल्ट एल्गोरिदम का समर्थन नहीं करते हैं, तो परिभाषा के अनुसार कुछ भी बुरा नहीं होगा। चूंकि PHP 5.3 में ब्लॉफिश जैसे PHP में अंतर्निर्मित एल्गोरिदम हैं, जिन्हें उपलब्ध होने की गारंटी है।