Python中的getpass()和getuser()(无回显的密码)

当您创建一些需要密码保护才能运行的python程序时,我们将使用getpass()和getuser()模块的帮助。它们具有多种功能,可用于管理密码保护以及密码检索等。在本文中,我们将看到如何在有无回显屏幕的情况下键入密码。下面是处理它的不同方法。

有提示

以下代码将保存到文件(logon.py)。getpass()函数输出提示,然后从用户读取输入,直到他们按回车

示例

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

输出结果

运行上面的代码给我们以下结果-

$ python logon.py
Password:
Password entered: abracadbra

有安全问题

接下来,我们可以增强代码以提示用户一个安全性问题。这个问题可以帮助用户重新找回密码。

示例

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

输出结果

运行上面的代码给我们以下结果-

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

显示登录名

有时我们需要知道用于运行脚本的登录名。这可以通过使用getuser()函数来实现。

示例

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

输出结果

运行上面的代码给我们以下结果-

User Name: user1
You are in !