Python - 在键入密码时隐藏字符

时间:2018-03-27 11:16:48

标签: python passwords

我必须在终端输入用户密码。谷歌搜索arround导致getpass作为最推荐的方式。

但是,不知何故 - 使用此功能并未按预期隐藏字符。 首先,我认为它与平台(Pycharm)有关,但测试与IDLE产量相同。

任何想法为什么? (以下代码在Mac上使用Python shell)

>> import getpass
>>> a=getpass.getpass(prompt='Password')
Warning: Password input may be echoed.
PasswordTHISISPASSWORD

3 个答案:

答案 0 :(得分:2)

如果你从IDE启动它会导致回声。您可以在命令行终端中尝试它,它可以正常工作,如附带的屏幕截图所示。

希望这会有所帮助

enter image description here

答案 1 :(得分:2)

我用终端和PyCharm尝试了你的代码,它在终端上运行得更好但是我在PyCharm的运行配置中找到了一个复选框,它避免了密码的回显并正确地将它设置为变量,你可以看到调试器,但我注意到,如果你尝试在某些情况下打印变量,它会打印一些奇怪的东西。

单击运行按钮左侧的编辑配置... 并检查输出控制台中的模拟终端,它与最新版本的PyCharm一起使用

编辑:我刚刚读到你正在使用Mac,我用linux试过这个,所以我不确定它是否适用于mac

答案 2 :(得分:0)

在最新版的Pycharm中,您要做的就是更新运行配置。

运行>编辑配置>启用“在输出控制台中仿真终端”

这使您的Pycharm输出控制台可以充当终端。然后,getpass()函数可以很好地工作而无需回显您的密码。