share facebook facebook twitter menu hatena pocket slack

2018.01.09 TUE

Python でコマンドラインからパスワード入力させるの際には画面にパスワード文字列は出力させたくないゾ

川原 洋平

WRITTEN BY 川原 洋平

この記事は…

初老丸 Advent Calendar 2017 - Qiita
集え、初老丸達よ。初老丸達による世界に向けた技術的(又はそれに関連する)な物語を綴るカレンダーです。我こそ初老丸という方、初老丸予備軍の方も奮ってご参加下さい。ジーク・初老丸!

qiita.com

参加者の少ない, 初老丸 Advent Calendar 2017 11 日目の記事です.

何がしたかったのか

以下のように Python スクリプトを実行して, コマンドラインからパスワードの入力を受け付けたい場合, パスワード文字列は出力させないようにしたい.

$ python script.py
Input Your Name: ore
Input Yout Password: [ここは画面上に表示させたくない]

どうしたか

モジュールの getpass を使えば一瞬だった.

https://docs.python.jp/3/library/getpass.html
docs.python.jp

以下のように利用する.

#!/usr/bin/env python

import getpass

print('ユーザー名を入力して下さい.')
user = input('username: ')
print('パスワードを入力して下さい.')
password = getpass.getpass('password: ')

print(user)
print(password)

実行すると以下のように出力される.

$ python sample.py
ユーザー名を入力して下さい.
username: foo
パスワードを入力して下さい.
password:
foo
bar

実際には password: 欄で bar を入力しているが, 画面には出力されていない. まさにコレをやりたかった.

以上

メモでした.

標準のモジュールでさくっと実現出来るのって嬉しい限り.

元記事はこちら

Python でコマンドラインからパスワード入力させるの際には画面にパスワード文字列は出力させたくないゾ

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。