Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのgetpassモジュールとは?パスワード入力とユーザー名取得の基本を解説

Pythonの標準ライブラリには、ターミナル上で動作するアプリケーションにおいて、ユーザーの認証情報を検証してから処理を実行したい場合に役立つgetpassモジュールが用意されています。このモジュールには主に2つの関数が定義されており、セキュリティを意識したコマンドラインツールの開発に欠かせない存在です。

getpass() 関数:パスワードを安全に入力する

getpass()関数は、ユーザーにパスワードの入力を促すための関数です。デフォルトでは、ターミナルに入力されたキーは画面に表示(エコー)されないため、第三者にパスワードを盗み見られる心配がありません。

また、プロンプトとして表示されるメッセージは、デフォルトで「Password:」となっていますが、引数に任意の文字列を渡すことで自由にカスタマイズすることも可能です。

実行例

以下の例では、WindowsのコマンドプロンプトからPythonの対話シェルを起動し、パスワードを入力しています。入力内容はターミナルに表示されません。

C:\python36>python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import getpass
>>> pwd = getpass.getpass("enter password:")
enter password:
>>> pwd
'admin'

コマンドプロンプトでは入力が非表示になっているのが確認できます。

IDLEでの注意点

ただし、IDLEを使ってPythonの対話セッションを実行した場合、エコーバックなしの入力には対応していません。そのため、IDLE上でgetpass()を使用すると、入力したパスワードがそのまま画面に表示されてしまいます。セキュリティを確保したい場合は、実際のターミナルやコマンドプロンプト環境で実行するようにしましょう。

getuser() 関数:ログインユーザー名を取得する

getuser()関数は、現在システムにログインしているユーザー名を返します。認証処理の前段階としてユーザー名を自動的に取得したい場合などに便利です。

>>> getpass.getuser()
'acer'

このように、getpassモジュールを活用すれば、わずか数行のコードで安全な認証フローの基盤を構築できます。CLIツールやスクリプトで機密情報を扱う際は、ぜひ活用してみてください。

  1. Pythonの__import__()関数とは?動的なモジュールインポートの使い方を解説

    Pythonでプログラムを作成する際、他のモジュールが提供する関数やクラスなどを活用したい場面は多々あります。通常はコードの先頭でimport文を使ってモジュールを読み込みますが、__import__()関数を使えば、実行時に動的にモジュールをインポートすることも可能です。例えば、特定のモジュールが必要なのが数行のコードだけの一時的な処理である場合や、モジュールからオブジェクトのコピーを作成して変更・利用したい場合などに、この関数が役立ちます。__import__()関数の構文__import__()関数の構文は以下のとおりです。__import__(name, globals=None, l

  2. PythonのpyqrcodeモジュールでQRコードを生成する方法

    QRコードは、白い背景の上に黒い四角形を格子状に配置した2次元コードで、カメラなどの画像読み取り装置によって読み取ることができます。商業用途での在庫追跡や決済、ウェブサイトへのログインなど、スマートフォンユーザー向けのさまざまなアプリケーションで広く利用されています。Pythonではpyqrcodeモジュールを使うことで、簡単にQRコードを生成できます。QRコードには、データを効率的に格納するための4つの標準エンコードモード(数値モード、英数字モード、バイト/バイナリモード、漢字モード)が用意されています。英数字のQRコードを生成するpyqrcodeモジュールには、QRコードを生成するためのc