Computer >> Máy Tính >  >> Lập trình >> Python

Hàm Python để kiểm tra mật khẩu UNIX

Để xác minh mật khẩu UNIX, chúng ta nên sử dụng mô-đun mã hóa. Nó có quy trình crypt (3). Về cơ bản, nó là hàm băm một chiều dựa trên thuật toán DES đã sửa đổi.

Để sử dụng mô-đun crypt, chúng ta nên nhập nó bằng cách sử dụng.

import crypt

Phương thức crypt.crypt (từ, muối)

Phương thức này có hai đối số. Cái đầu tiên là từ và cái thứ hai là muối. Từ này về cơ bản là mật khẩu người dùng, được đưa ra trong lời nhắc. Muối là một chuỗi ngẫu nhiên. Nó được sử dụng để xáo trộn Thuật toán DES theo một trong 4096 cách. Muối chỉ chứa các giá trị chữ hoa, chữ thường, chữ số và các ký tự ‘/’, ‘.’.

Phương thức này trả về mật khẩu được băm dưới dạng chuỗi.

Mã mẫu

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")

Đầu ra

(Chạy Chương trình này với quyền cấp cơ sở)

$ sudo python3 example.py
Enter The Username: unix_user
Password:
The password matched