2

入力からのエコーを防ぐには??

「getpass()」を試しましたが、うまくいきませんでした。

Windows IDLE では動作しません

    Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import getpass
>>> p = getpass.getpass(prompt="Input: ")
Warning: Password input may be echoed.
Input: abc <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< It still echos..

Windowsの端末では、動作します

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import getpass
>>> p = getpass.getpass(prompt="Input: ")
Input:
>>>

入力からのエコーを防ぐ簡単な方法はありますか?

4

1 に答える 1

3

最初の例はIDLEにあると思います。

getpass.win_getpass() から:

if sys.stdin is not sys.__stdin__:
    return fallback_getpass(prompt, stream)

IDLE は sys.stdin を別のオブジェクトに置き換えます。getpass は、誰かが stdin をラップしたことを検出し、セキュリティ上の理由で失敗します。

参照: http://bugs.python.org/issue9290

于 2013-07-08T06:46:14.110 に答える