2010-02-10 14 views
7

यहाँ PHP manual page for crypt() से उदाहरण है? मुझे लगता है कि यह 'mypassword' वह पासवर्ड है जिसे मैं वास्तविक व्यवस्थापक का उपयोग करना चाहता हूं। तो मैंने पहले इसे रोया, और इसे $password के बराबर सेट किया। जाहिर है, मुझे इसे डीबी में स्टोर करने की आवश्यकता होगी। लेकिन अगली पंक्तियों में इसका उपयोग नमक और जो मैं तुलना कर रहा हूं, दोनों के रूप में उपयोग किया जा रहा है, और मुझे समझ में नहीं आता कि crypt($user_input, $password) संभवतः $password के बराबर हो सकता है, यदि इस बाद के मामले में मेरे पास आदर्श रूप से $user_input के रूप में सही पासवर्ड है लेकिन नमकीन $password के साथ $password की तुलना में। यह मेरे लिए अधिक मतलब होता अगर अंतिम पंक्ति थे(PHP) तहखाने कैसे सही ढंग से लागू करने के लिए()

if (crypt($user_input) == $password) { 
    echo "Password verified!"; 
} 

मैं क्या समझ नहीं कर रहा हूँ?

+0

आपको एमडी 5, शाए 1 आदि जैसे अधिक उन्नत तकनीकों का उपयोग करना चाहिए – dusoft

+1

हा। हां। हां। hahah। अगर आप केवल मेरे दोस्त के साथ इस महाकाव्य यात्रा पर थे। http://stackoverflow.com/questions/2235158/php-sha1-vs-md5-vs-sha256-which-to-use-for-a-php-login – sepiroth

उत्तर

8

crypt एक तरफा कार्य है और एक स्ट्रिंग देता है जिसमें पहले से ही नमक होता है। आउटपुट /etc/shadow में संग्रहीत के समान है।

php.net से

उदाहरण:

<?php 
echo 'result: ' . crypt('somepassword'); 
echo 'result: ' . crypt('somepassword'); 
echo 'result: ' . crypt('somepassword'); 
?> 

result: $1$K2D8DGwq$b05uO37aMwO4rnDlB9Rsi1 
result: $1$aPBvu2y.$213YVEs8/5m.jMCXSScly/ 
result: $1$dW3Xu2p6$nuCtJe2zzlgBMLxN2oZCx/ 

जब तहखाने परिणाम के साथ उपयोगकर्ता इनपुट तुलना, समारोह स्वचालित रूप से स्ट्रिंग से नमक निकाल लेता है।

+0

मुझे समझ में नहीं आता कि यह मेरे प्रश्न का उत्तर कैसे देता है .. – sepiroth

+4

यह आपके प्रश्न का पूरी तरह उत्तर देता है। क्रिप्ट() एक स्ट्रिंग आउटपुट करता है जिसमें नमक और हैश का नतीजा होता है। जब आप इसे नमक के रूप में स्ट्रिंग करते हैं, तो यह केवल नमक भाग निकालने और हैश भाग को अनदेखा करना जानता है। और यह अभी भी एक स्ट्रिंग देता है जिसमें नमक और हैश दोनों होते हैं। तो इन तारों की तुलना सीधे तुलना की जा सकती है। – gnud

+0

मैंने यही कहा। – AndiDog

संबंधित मुद्दे