Python getpass模块禁用语句的回显获取密码

Python getpass模块禁用语句的回显获取密码

 

在我们的许多Python程序中,我们需要获取秘密密钥,密码短语或密码以进​​行秘密交易,或识别用户是否被授权执行某项操作。接受键时,需要注意很多事情,即不应将该短语回显到屏幕上,禁用语句的回显等。使用Python getpass模块,所有这些功能都是内置的。让我们在示例中使用这个简单的模块,看看如何使用它。

Python getpass模块

我们将以一种简单的方式来开始接受Python示例中的键,并通过为用户提供自定义提示逐步自定义用户体验。最后,我们将看到如何将密码流传输到其他位置,例如文件而不是终端。让我们开始吧。

Python getpass示例

让我们以一个非常基本的示例开始实验该模块,该示例从终端上的用户获取密码:

 

import getpass

 

try:

    pwd = getpass.getpass()

except Exception as ex:

    print('Error Occured : ', ex)

else:

    print('Entered secret :', pwd)

让我们看一下该程序的输出:

没有提示的getpass


密码是用户的默认提示。在下一个示例中,我们将对其进行自定义。

Python getpass自定义提示

要向用户提示您自己的消息,只需在getpass()函数中提供String参数:

 

import getpass

 

pwd = getpass.getpass(prompt = 'Which is your favorite place to go?')

if pwd == 'JournalDev':

    print('Ofcourse!')

else:

    print('Where is that?')

让我们看一下该程序的输出:

带有自定义提示的getpass


当您需要询问除显式密码之外的秘密密码短语时,此功能很有用。

Python getpass与其他流

也可以通过getpass()功能禁用密码的终端回显并将输入转移到任何其他流。只需将传递stream给函数:

 

import getpass

import sys

 

pwd = getpass.getpass(stream=sys.stderr)

print('You entered:', pwd)

让我们看一下该程序的输出:

将密码传递到其他流

在没有终端的情况下获取密码

在Unix系统上工作时,getpass()需要可以通过termios控制的tty。这是必需的,以便禁用输入回显。

让我们在非Unix机器上执行第一个示例代码:

 

echo "not dark" | python3 getpass_defaults.py

让我们看一下该程序的输出:

没有终端


当我们在非Unix机器上执行该程序时,输出没有差异。否则,您只会not dark在屏幕上看到。

在此处阅读有关电传终端的 更多信息。

结论

在本课程中,我们研究了一种非常简单的方法,可以在Python程序中接受秘密值并将其流式传输到终端或任何其他可能的流和管道。

在此处阅读更多Python帖子。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值