ในการตรวจสอบรหัสผ่าน UNIX เราควรใช้โมดูล crypt มีรูทีน crypt(3) เป็นฟังก์ชันแฮชทางเดียวโดยอิงตามอัลกอริทึม DES ที่แก้ไข
ในการใช้โมดูล crypt เราควรนำเข้าโดยใช้
import crypt
วิธี crypt.crypt(คำ เกลือ)
วิธีนี้ใช้สองอาร์กิวเมนต์ อันแรกเป็นคำ อันที่สองเป็นเกลือ คำนั้นเป็นรหัสผ่านของผู้ใช้ซึ่งได้รับในพรอมต์ เกลือเป็นสตริงสุ่ม ใช้เพื่อรบกวนอัลกอริทึม 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