Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฟังก์ชั่น Python เพื่อตรวจสอบรหัสผ่าน UNIX


ในการตรวจสอบรหัสผ่าน 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