getpass — 이식성 있는 암호 입력¶
소스 코드: Lib/getpass.py
getpass 모듈은 두 가지 함수를 제공합니다:
- getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)¶
에코 없이 사용자에게 암호를 묻습니다. 사용자는 prompt 문자열을 사용하여 프롬프트되며, 기본값은
'Password: '입니다. 유닉스에서는 필요한 경우 replace 오류 처리기를 사용하여 파일 유사 객체 stream 에 프롬프트가 기록됩니다. stream 은 제어 터미널(/dev/tty)을 기본값으로 사용하며, 이것이 사용 불가능한 경우sys.stderr를 사용합니다 (이 인수는 Windows에서 무시됩니다).echo_char 인수는 사용자가 타이핑할 때 입력이 표시되는 방식을 제어합니다. echo_char 가
None인 경우(기본값), 입력은 숨겨진 상태로 유지됩니다. 그렇지 않은 경우, echo_char 는 단일 인쇄 가능한 ASCII 문자여야 하며, 입력되는 각 문자는 이 문자로 대체됩니다. 예를 들어,echo_char='*'를 사용하면 실제 입력 대신 별표가 표시됩니다.echo-free 입력을 사용할 수 없는 경우,
getpass()는 stream 에 경고 메시지를 출력하고sys.stdin에서 읽은 후GetPassWarning을 발행하는 방식으로 대체됩니다.참고
IDLE 내에서 :func:`getpass`를 호출하면, 입력이 IDLE 창 내부가 아닌 IDLE을 실행한 터미널에서 수행될 수 있습니다.
참고
유닉스 시스템에서 echo_char 가 설정되면, 터미널이 noncanonical mode 으로 작동하도록 구성됩니다. 일반적인 터미널 제어 문자가 지원됩니다.
Ctrl+A - 커서를 줄의 시작으로 이동
Ctrl+E - 커서를 줄의 끝으로 이동
Ctrl+K - 커서부터 줄 끝까지 지우기 (Kill)
Ctrl+U - 줄 전체 지우기 (Kill)
Ctrl+W - 이전 단어 지우기
Ctrl+V - 다음 문자를 문자 그대로 삽입 (따옴표)
Backspace/DEL - 커서 앞 문자 삭제
이 단축키들은 termios 설정에서 터미널이 구성한 제어 문자 매핑을 읽어 작동합니다.
버전 3.14에서 변경: 키보드 피드백을 위해 echo_char 매개변수가 추가되었습니다.
버전 3.15에서 변경: 유닉스에서 비어 있지 않은 echo_char 를 사용할 때, 키보드 단축키(커서 이동 및 줄 편집 포함)가 이제 터미널의 제어 문자 구성 설정을 사용하여 올바르게 처리됩니다.
- exception getpass.GetPassWarning¶
패스워드 입력이 에코 될 때 방출되는
UserWarning서브 클래스.
- getpass.getuser()¶
사용자의 “로그인 이름”을 반환합니다.
이 함수는 환경 변수
LOGNAME,USER,LNAME및USERNAME를 순서대로 검사하고, 비어 있지 않은 문자열로 설정된 첫 번째 값을 반환합니다. 아무것도 설정되지 않았으면,pwd모듈을 지원하는 시스템에서는 암호 데이터베이스의 로그인 이름이 반환되고, 그렇지 않으면OSError가 발생합니다.일반적으로, 이 함수는
os.getlogin()보다 선호됩니다.버전 3.13에서 변경: 이전에
OSError외의 다양한 예외가 발생했습니다.