2016-12-15 115 views
0

我正在使用Python。我正在製作一個腳本,用戶必須在終端中輸入密碼。在Python中掩蓋密碼輸入的問題

我已經通過使用getpass模塊在本網站上找到了解決方案。

new_password=getpass.getpass(prompt="Type new password: ") 

問題是我得到一個警告和密碼輸入顯示以及。

Warning (from warnings module): 
    File "C:\Python34\lib\getpass.py", line 101 
    return fallback_getpass(prompt, stream) 
GetPassWarning: Can not control echo on the terminal. 
Warning: Password input may be echoed. 
+0

widows使用'getpass.win_getpass()'來使用它。 – Ja8zyjits

+0

不幸的是沒有幫助 –

+0

你使用空閒或Windows終端? – Ja8zyjits

回答

0

使用普通的終端與此代碼:

import getpass 
new_password=getpass.getpass(prompt="Type new password: ") 
print(new_password) 

將工作正常的,但如果我們嘗試同樣的閒置,我們會得到你已經在你的問題暴露了錯誤。現在

,如果我們看一下文檔here你會看到這樣做的目的,它說:

注意如果從IDLE內調用getpass,輸入可在 做你推出的終端IDLE而不是空閒窗口 本身。

0

使用命令提示符作爲管理員運行此程序。

原因是因爲stdin,stdout和stderr連接到/ dev/tty或其他PTY兼容設備的系統環境。

IDLE REPL不符合此要求。

如果你使用的是Windows操作系統或new_password=getpass.getpass("Type new password: ",none) Linux發行版更改new_password=getpass.getpass(prompt="Type new password: ")new_password=getpass.getpass("Type new password: ")

這將幫助你肯定的:

import getpass 
pw=getpass.getpass("Enter Your Password Here: ") 
if (pw=="password"): 
    print ("You are Welcome...") 
else: 
    print ("Sorry! Your are not allowed.") 

按照Python文檔:

getpass.getpass([prompt[, stream]])

提示,而不回顯用戶輸入密碼。系統會提示用戶使用字符串提示符,該提示符默認爲'Password:'。在Unix上,提示被寫入類文件對象流。流默認爲控制終端(/ dev/tty)或sys.stderr不可用(在Windows上忽略此參數)

版本2.5中已更改:已添加流參數。

說明:如果您從IDLE內部調用getpass,則輸入可能會在您啓動IDLE的終端中完成,而不是在空閒窗口本身中完成。