Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

getpass() và getuser() trong Python (Nhập mật khẩu không hiển thị)


Khi bạn tạo một số chương trình Python cần bảo vệ bằng mật khẩu trước khi chạy, chúng ta nhờ đến các module getpass() và getuser(). Chúng có nhiều chức năng có thể được sử dụng để quản lý bảo vệ mật khẩu cũng như truy xuất mật khẩu. Trong bài viết này, chúng ta sẽ xem cách nhập mật khẩu có và không hiển thị nó trở lại màn hình. Dưới đây là các cách xử lý khác nhau.

Có nhắc nhở (Prompt)

Mã dưới đây được lưu vào một tệp (logon.py). Hàm getpass() in một nhắc nhở sau đó đọc đầu vào từ người dùng cho đến khi họ nhấn Enter.

Ví dụ

import getpass
try:
    pwd = getpass.getpass()
except Exception as err:
    print('Error Occured : ', err)
else:
    print('Password entered :', pwd)

Kết quả

Chạy mã trên cho kết quả sau:

$ python logon.py
Password: 
Password entered: abracadbra

Với câu hỏi bảo mật

Tiếp theo, chúng ta có thể mở rộng mã để nhắc người dùng bằng một câu hỏi bảo mật. Câu hỏi này giúp người dùng nhớ lại mật khẩu.

Ví dụ

import getpass
pwd = getpass.getpass(prompt='What is your favorite colour?')
if pwd == 'Crimson':
    print('You are in!')
else:
    print('Try Again')

Kết quả

Chạy mã trên cho kết quả sau:

$ python logon.py
'What is your favorite colour? You are in!

Hiển thị tên đăng nhập

Đôi khi chúng ta cần biết tên đăng nhập đang được sử dụng để chạy script. Điều này đạt được bằng cách sử dụng hàm getuser().

Ví dụ

import getpass
user = getpass.getuser()
while True:
    pwd = getpass.getpass("User Name : ", user)
    if pwd == 'Crimson':
        print("You are in!")
    else:
        print("The password you entered is wrong.")

Kết quả

Chạy mã trên cho kết quả sau:

User Name: user1
You are in !