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 !