ইউনিক্স পাসওয়ার্ড ভেরিফাই করতে হলে, আমাদের crypt মডিউল ব্যবহার করতে হবে। এতে crypt(3) রুটিন রয়েছে। এটি মূলত মডিফাইড DES অ্যালগরিদমের ওপর ভিত্তি করে একটি একমুখী হ্যাশ ফাংশন।
crypt মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে।
import crypt
crypt.crypt(word, salt) মেথড
এই মেথড দুটি আর্গুমেন্ট নেয়। প্রথমটি হলো ওয়ার্ড এবং দ্বিতীয়টি হলো সল্ট। ওয়ার্ড মূলত ইউজার পাসওয়ার্ড, যা প্রম্পটে দেওয়া হয়। সল্ট একটি র্যান্ডম স্ট্রিং। এটি DES অ্যালগরিদমকে ৪০৯৬ ভাবেও পERTURB করতে ব্যবহৃত হয়। সল্টে শুধু আপারকেস, লোয়ারকেস, न्यूमেরিক ভ্যালু এবং '/', '.' ক্যারেক্টার থাকে।
এই মেথড একটি হ্যাশড পাসওয়ার্ড স্ট্রিং হিসেবে ফেরত দেয়।
উদাহরণ কোড
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