LinuxでSudoを使ってパスワードを入力するように指示されたときに、ターミナルウィンドウに何も表示されません(パスワードは表示されません)。
Pythonでそれをする方法はありますか?私は機密性の高い情報を必要とするスクリプトを作成しています。それを入力するときにそれを隠したいと思います。
つまり、パスワードを表示せずにユーザーからパスワードを取得したいのです。
getpass.getpass()
を使う:
password = getpass()
オプションのプロンプトをパラメータとして渡すことができます。デフォルトは"Password: "
です。
この関数は適切な端末を必要とするので、それはタイプされた文字のエコーをオフにすることができます - 詳細については “ GetPassWarning:IDLEから実行するときにエコーを制御できません” を参照してください。
import getpass
pswd = getpass.getpass('Password:')
getpass はLinux、Windows、そしてMac上で動作します。
このためには getpass を使用してください。
getpass.getpass - エコーすることなくユーザにパスワードの入力を促す
import sys
import msvcrt
passwor = ''
while True:
x = msvcrt.getch()
if x == '\r':
break
sys.stdout.write('*')
passwor +=x
print '\n'+passwor
このコードはすべての文字の代わりにアスタリスクを印刷します。