簡體   English   中英

從標准輸入讀取密碼

[英]Read password from stdin

場景:一個交互式CLI Python程序,需要密碼。 這也意味着不可能有GUI解決方案。

在bash中,我可以讀取密碼而無需通過以下方式在屏幕上重新提示

read -s

Python有類似的東西嗎?

password = raw_input('Password: ', dont_print_statement_back_to_screen)

替代方法:將鍵入的字符替換為“ *”,然后再將其發送回屏幕(又稱瀏覽器樣式)。

>>> import getpass
>>> pw = getpass.getpass()

是的, getpass :“提示用戶輸入密碼而不回顯。”

編輯:我自己還沒有玩過這個模塊,所以這就是我剛准備的(不過,如果到處都找到類似的代碼,不會感到驚訝):

import getpass

def login():
    user = input("Username [%s]: " % getpass.getuser())
    if not user:
        user = getpass.getuser()

    pprompt = lambda: (getpass.getpass(), getpass.getpass('Retype password: '))

    p1, p2 = pprompt()
    while p1 != p2:
        print('Passwords do not match. Try again')
        p1, p2 = pprompt()

    return user, p1

(這是Python 3.x;使用Python 2.x時,請使用raw_input代替input 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM