Thư viện python chuẩn getpass là gì?

Khi chúng tôi sử dụng ứng dụng dựa trên thiết bị đầu cuối với một số thông tin đăng nhập bảo mật sử dụng mật khẩu trước khi thực thi ứng dụng, thì nó sẽ được thực hiện với mô-đun Python Getpass. Trong bài viết này, chúng ta sẽ xem cách sử dụng mô-đun Getpass

Mô-đun Getpass cung cấp hai chức năng

  • vượt qua. getpass[]
  • vượt qua. getuser[]

getpass[]

Trong nhiều chương trình, chúng tôi cần bảo mật dữ liệu hoặc chương trình thì trường hợp này chúng tôi sử dụng một số khóa bí mật hoặc mật khẩu để xác định người dùng. Sử dụng getpass[] có thể chấp nhận mật khẩu trong chương trình python

Python3




import getpass

 

$ python getpass_defaults.py
Password:
You entered: sekret
0
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
2
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
4
$ python getpass_defaults.py
Password:
You entered: sekret
5

$ python getpass_defaults.py
Password:
You entered: sekret
6
$ python getpass_defaults.py
Password:
You entered: sekret
0
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
1 getpass3getpass4

getpass5getpass6getpass7getpass8

$ python getpass_defaults.py
Password:
You entered: sekret
5

 0getpass4

getpass5getpass6getpass7 5

$ python getpass_defaults.py
Password:
You entered: sekret
5

đầu ra

Hãy hiểu mô-đun này một số ví dụ

getpass không cần nhắc

Trong ví dụ này, chúng ta sẽ xem cách lấy mật khẩu từ người dùng và trả lại cùng một mật khẩu mà không cần nhắc

Python3




import getpass

 

$ python getpass_defaults.py
Password:
You entered: sekret
0
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
02

getpass6getpass7____105

$ python getpass_defaults.py
Password:
You entered: sekret
06

đầu ra

getpass với lời nhắc

Nếu người dùng muốn một số thông báo trước khi đăng nhập như câu hỏi bảo mật thì chúng tôi sẽ sử dụng các thuộc tính nhắc trong getpass

Python3




import getpass

 

$ python getpass_defaults.py
Password:
You entered: sekret
0
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
2
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
14
$ python getpass_defaults.py
Password:
You entered: sekret
5

$ python getpass_defaults.py
Password:
You entered: sekret
6
$ python getpass_defaults.py
Password:
You entered: sekret
0
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
20getpass4

getpass5getpass6getpass7

$ python getpass_defaults.py
Password:
You entered: sekret
25
$ python getpass_defaults.py
Password:
You entered: sekret
5

 0getpass4

getpass5getpass6getpass7

$ python getpass_defaults.py
Password:
You entered: sekret
12
$ python getpass_defaults.py
Password:
You entered: sekret
5

đầu ra

getpass với luồng khác

Chức năng này cho phép chúng tôi truyền mật khẩu mà người dùng nhập

Python3




import getpass

import

$ python getpass_defaults.py
Password:
You entered: sekret
17

 

$ python getpass_defaults.py
Password:
You entered: sekret
0
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
41
$ python getpass_defaults.py
Password:
You entered: sekret
1
$ python getpass_defaults.py
Password:
You entered: sekret
43

getpass6getpass7____146

$ python getpass_defaults.py
Password:
You entered: sekret
06

đầu ra

getuser[]

Hàm này trả về tên đăng nhập hệ thống của người dùng. Nó kiểm tra biến môi trường của máy tính của bạn và lấy tên người dùng và trả về dưới dạng một chuỗi và nếu nó không thể tìm thấy biến môi trường thì ngoại lệ sẽ được đưa ra

Nhiều chương trình tương tác với người dùng thông qua thiết bị đầu cuối cần hỏi người dùng giá trị mật khẩu mà không hiển thị nội dung người dùng nhập trên màn hình. Mô-đun getpass cung cấp một cách di động để xử lý các lời nhắc mật khẩu đó một cách an toàn

Thí dụ

Hàm getpass[] in lời nhắc sau đó đọc đầu vào từ người dùng cho đến khi họ nhấn phím quay lại. Đầu vào được trả lại dưới dạng một chuỗi cho người gọi

import getpass

p = getpass.getpass[]
print 'You entered:', p

Lời nhắc mặc định, nếu người gọi không chỉ định, là “Mật khẩu. ”

$ python getpass_defaults.py
Password:
You entered: sekret

Lời nhắc có thể được thay đổi thành bất kỳ giá trị nào mà chương trình của bạn cần

import getpass

p = getpass.getpass[prompt='What is your favorite color? ']
if p.lower[] == 'blue':
    print 'Right.  Off you go.'
else:
    print 'Auuuuugh!'

Tôi không khuyên bạn nên sử dụng sơ đồ xác thực không an toàn như vậy, nhưng nó minh họa điểm

$ python getpass_prompt.py
What is your favorite color?
Right.  Off you go.
$ python getpass_prompt.py
What is your favorite color?
Auuuuugh!

Theo mặc định, getpass[] sử dụng thiết bị xuất chuẩn để in chuỗi dấu nhắc. Đối với một chương trình có thể tạo ra đầu ra hữu ích trên sys. thiết bị xuất chuẩn, tốt hơn hết là gửi lời nhắc đến một luồng khác, chẳng hạn như sys. tiêu chuẩn

import getpass
import sys

p = getpass.getpass[stream=sys.stderr]
print 'You entered:', p

Bằng cách này, đầu ra tiêu chuẩn có thể được chuyển hướng [đến một đường ống hoặc tệp] mà không cần nhìn thấy lời nhắc mật khẩu. Giá trị được nhập bởi người dùng vẫn không được lặp lại màn hình

$ python getpass_stream.py >/dev/null
Password:

Sử dụng getpass mà không cần Terminal

Trong Unix, getpass[] luôn yêu cầu một tty mà nó có thể điều khiển thông qua termios, do đó có thể tắt tiếng vang. Điều này có nghĩa là các giá trị sẽ không được đọc từ luồng không phải đầu cuối được chuyển hướng đến đầu vào tiêu chuẩn

$ echo "sekret" | python getpass_defaults.py
Traceback [most recent call last]:
 File "getpass_defaults.py", line 34, in
   p = getpass.getpass[]
 File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/getpass.py", line 32, in unix_getpass
   old = termios.tcgetattr[fd]     # a copy to save
termios.error: [25, 'Inappropriate ioctl for device']

Người gọi có thể phát hiện khi nào luồng đầu vào không phải là tty và sử dụng một phương pháp thay thế để đọc trong trường hợp đó

Thư viện Getpass trong Python là gì?

Mô-đun getpass cung cấp cách nhập mật khẩu độc lập với nền tảng trong chương trình dòng lệnh , như Ví dụ 2-25 cho thấy. getpass[prompt] in chuỗi dấu nhắc, tắt tiếng vang bàn phím và đọc mật khẩu. Nếu đối số dấu nhắc bị bỏ qua, nó sẽ in " Mật khẩu. “.

Getpass hoạt động như thế nào với Python?

Hàm getpass[] in lời nhắc sau đó đọc đầu vào từ người dùng cho đến khi họ nhấn phím quay lại. Đầu vào được trả lại dưới dạng một chuỗi cho người gọi. Lời nhắc mặc định, nếu người gọi không chỉ định, là “Mật khẩu. ”. Lời nhắc có thể được thay đổi thành bất kỳ giá trị nào mà chương trình của bạn cần

Tên của trăn được xây dựng trong mô-đun để đọc mật khẩu là gì?

getpass — Nhập mật khẩu di động — Python 3. 11.

Chủ Đề