यूनिक्स पासवर्ड वेरिफाई करने के लिए, हमें crypt मॉड्यूल का उपयोग करना चाहिए। इसमें crypt(3) रूटीन है। यह मूल रूप से मॉडिफाइड DES एल्गोरिदम पर आधारित एक वन-वे हैश फंक्शन है।
crypt मॉड्यूल का उपयोग करने के लिए, हमें इसे आयात करना चाहिए।
import crypt
मेथड crypt.crypt(word, salt)
यह मेथड दो आर्गुमेंट्स लेता है। पहला वर्ड है और दूसरा सॉल्ट है। वर्ड मूल रूप से उपयोगकर्ता पासवर्ड है, जो प्रॉम्प्ट में दिया जाता है। सॉल्ट एक रैंडम स्ट्रिंग है। इसका उपयोग DES एल्गोरिदम को 4096 तरीकों में से एक में पर्टर्ब करने के लिए किया जाता है। सॉल्ट में केवल अपरकेस, लोअरकेस, न्यूमेरिक मान और '/', '.' कैरेक्टर्स होते हैं।
यह मेथड स्ट्रिंग के रूप में हैश्ड पासवर्ड लौटाता है।
उदाहरण कोड
import crypt, getpass, spwd
def check_pass():
username = input("Enter The Username: ")
password = spwd.getspnam(username).sp_pwdp
if password:
clr_text = getpass.getpass()
return crypt.crypt(clr_text, password) == password
else:
return 1
if check_pass():
print("The password matched")
else:
print("The password does not match")
आउटपुट
(इस प्रोग्राम को रूट लेवल परमिशन के साथ चलाएं)
$ sudo python3 example.py Enter The Username: unix_user Password: The password matched