वहाँ htpasswd फ़ाइलें बनाने के लिए एक कार्यक्रम संबंधी रास्ता नहीं है, htpasswd (अर्थात exec()
, passthru()
)?प्रोग्राम इमारत ओएस विशिष्ट कार्यों के आधार पर बिना
उत्तर
.httpasswd फ़ाइलें निर्दिष्ट हैश फ़ंक्शन के आधार पर केवल एक विशिष्ट प्रारूप के साथ टेक्स्ट फ़ाइलें हैं। आप MD5 उपयोग कर रहे हैं वे इस तरह दिखेगा:
foo:$apr1$y1cXxW5l$3vapv2yyCXaYz8zGoXj241
लॉगिन, एक कॉलन,, $ apr1 $, नमक और 1000 बार md5 बेस 64 के रूप में एन्कोड है यही कारण है कि। आप SHA1 का चयन करते हैं वे इस तरह दिखेगा:
foo:{SHA}BW6v589SIg3i3zaEW47RcMZ+I+M=
लॉगिन, एक कॉलन, स्ट्रिंग {SHA} और SHA1 हैश बेस 64 से एन्कोड किया गया है यही कारण है कि।
आप सिर्फ इस तरह फ़ाइल बना सकते हैं अपनी भाषा या तो MD5 या SHA1 और बेस 64 के एक कार्यान्वयन है:
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html
Trac htpasswd के लिए एक पायथन प्रतिस्थापन के साथ जहाजों, जो मुझे यकीन है कि आप अपनी पसंद की भाषा में पोर्ट कर सकते हैं: htpasswd.py।
सबसे पहले, इस फार्म बनाने के लिए:
<FORM METHOD="POST" ACTION="<? echo $_SERVER['PHP_SELF']; ?>" onSubmit='return ValidateForm()'>
Username<br /><INPUT TYPE="TEXT" NAME="user[]"><br /><br />
Password<br /><INPUT TYPE="PASSWORD" NAME="password1[]"><br />
<INPUT TYPE="PASSWORD" NAME="password2[]"><br /><br />
<INPUT type=submit name="submit" VALUE="Create .htpasswd entry" onclick="document.all.submit.style.visibility='hidden'">
</FORM>
फिर, इस पीएचपी-कोड आप के लिए पासवर्ड का सृजन होगा:
if (isset($_POST['user']) && isset($_POST['password1'])) {
if($_POST['password1'] == $_POST['password2']) {
$user = $_POST['user'];
$password1 = $_POST['password1'];
$htpasswd_text = "";
for ($i = 0; $i < count ($user); $i++) {
$htpasswd_text .= "$user[$i]:".crypt($password1[$i],CRYPT_STD_DES)."";
}
echo "<br />Copy this line to your .htpasswd file:";
echo "<pre style=\"border-bottom-width:1px;border-bottom-style:solid;\">";
echo nl2br($htpasswd_text);
echo "</pre><br />";
} else {
echo "<pre style=\"border-bottom-width:1px;border-bottom-style:solid;\">Passwords do not match !</pre><br />";
}
}
वास्तविक टेक्स्ट संलग्न करने का आप htpasswd करने के लिए फ़ाइल $htpasswd_text
में है चर।
क्रिप्ट प्रारूप हैशिंग अप्रचलित है और अब इसका उपयोग नहीं किया जाना चाहिए। Htpasswd के लिए वर्तमान डिफ़ॉल्ट md5 है। – bitmusher
से:
<?php
$login = 'foo';
$pass = 'pass';
$hash = base64_encode(sha1($pass, true));
$contents = $login . ':{SHA}' . $hash;
file_put_contents('.htpasswd', $contents);
?>
यहाँ प्रारूप बारे में अधिक जानकारी है PHP वेबसाइट पर यह क्या कहता है, आप निम्न विधि में क्रिप्ट() का उपयोग कर सकते हैं:
<?php
// Set the password & username
$username = 'user';
$password = 'mypassword';
// Get the hash, letting the salt be automatically generated
$hash = crypt($password);
// write to a file
file_set_contents('.htpasswd', $username ':' . $contents);
?>
इस उदाहरण का हिस्सा पाया जा सकता है: http://ca3.php.net/crypt
यह निश्चित रूप से पूरी मौजूदा फ़ाइल को ओवरराइट करेगा, इसलिए आप किसी प्रकार की संगतता करना चाहेंगे।
मुझे 100% यकीन नहीं है कि यह काम करेगा, लेकिन मुझे पूरा यकीन है।
htpasswd फ़ाइलों में क्रिप्ट प्रारूप हैशिंग अप्रचलित है और इसका उपयोग नहीं किया जाना चाहिए । वर्तमान डिफ़ॉल्ट एमडी 5 संस्करण है। – bitmusher
- 1. जानकारी 7: विशिष्ट चीज़ सूची के आधार पर चीज उठाएं
- 2. विशिष्ट कारक संयोजनों के आधार पर पंक्तियों को सारांशित करना
- 3. त्रुटि के बिना आर प्रोग्राम रोकें
- 4. पुनर्निर्माण के बिना लिनक्स मंच पर प्रोग्राम कैसे प्रोफाइल करें?
- 5. gnumake और prerequisites के साथ समांतर इमारत
- 6. जनरल विफलता इमारत bootstrapper
- 7. पॉज़िक्स और लिनक्स विशिष्ट कार्यों के लिए सी ++ रैपर
- 8. सी प्रोग्राम विंडोज और यूनिक्स ओएस पर क्रॉस प्लेटफॉर्म अंतर
- 9. गिट के साथ प्रतिबद्ध आईडी के आधार पर एक विशिष्ट प्रतिबद्धता पर वापस लौटना?
- 10. इमारत के बाद क्यूटी इंस्टॉल पथ बदलें?
- 11. मैक ओएस एक्स - मेनू के बिना ऐप?
- 12. केवल देरी_job capistrano कार्यों को विशिष्ट सर्वर
- 13. ओएस-एक्स
- 14. OpenCV परियोजना - opencv.hpp इमारत मुद्दा
- 15. ओएस स्तर पर क्या होता है जब एक .NET प्रोग्राम बिना किसी अपवाद के कारण निकलता है?
- 16. उपयोगकर्ता के आधार पर jquery
- 17. कोड के आधार पर, मैं
- 18. UISplitViewController प्रोग्राम के बिना nib/xib
- 19. क्रूज़ कंट्रोल.NET को उन कार्यों को संभालने के लिए उपयोग किया जाना चाहिए जो इमारत स्रोत से संबंधित नहीं हैं?
- 20. विशिष्ट फ़ील्ड के आधार पर सरणी में अद्वितीय आइटम को कैसे सुनिश्चित करें - mongoDB?
- 21. Emacs के बिना elisp प्रोग्राम चलाएं?
- 22. जावा प्रोग्राम कैसे तय कर सकता है कि ओएस
- 23. क्या कोई प्रोग्रामिंग प्रतिमान चर और कार्यों में हेरफेर करने के आधार पर आधारित नहीं है?
- 24. केवल एक कॉलम के विशिष्ट मानों के आधार पर पंक्तियों का चयन कैसे करें
- 25. आर: केवल विशिष्ट क्षेत्र के लिए साजिश का पृष्ठभूमि रंग बदलें (एक्स-मानों के आधार पर)
- 26. एक विशिष्ट एक और स्तंभ के मूल्य के आधार पर स्तंभ का चयन करें
- 27. संकलन समय पर विशिष्ट आधार वर्गों के एकाधिक विरासत को रोकने के लिए संभव है?
- 28. एक संकलित प्रोग्राम ओएस के साथ कैसे सहभागिता करता है?
- 29. जेड - पर्यावरण के आधार पर सेट आधार निर्देशिका
- 30. उपयोगकर्ता स्थान के आधार पर सूचनाएं भेजें
मुझे एमडी 5 प्रारूप पासवर्ड उत्पन्न करने के लिए कोड भी मिला है http://techtalk.virendrachandak.com/using-php-create-passwords-for-htpasswd-file/ –