PythonでのOATH-TOTPの6桁数字(名大CASでは「認証コード」と呼ぶ)の生成

最近ではOATH-TOTP規格の多要素認証を要求される局面が増えているが、 ブラウザ以外では主にシェル上で生活している人にとって 認証アプリを立ち上げるのがめんどくさいことこの上ないので、 Pythonとpyotpモジュールを使ってPythonスクリプトの呼び出しで 6桁数字(名大CASでは「認証コード」)を生成することを勧める。

以下、やり方について最小限の説明をする。

Pythonの準備

Pythonとpyotpモジュールを入れる。

BASE32エンコードのシード(認証シード)を入れたPythonスクリプト作成

以下のスクリプトを準備し、適当な名前(例: otp.py)で保存して実行する。 (LinuxなどのUNIX系OSならば、chmodで実行権限を付与して実行)

#!/usr/bin/env python

import pyotp
otp = pyotp.TOTP('ここにあなたのBASE32エンコードのシード(名大CASでは「認証シード」)を入れる')
print(otp.now())

実行してみると、以下のように6桁の数字(名大CASでは「認証コード」)が出力される。

% ./otp.py
308772
%

注意点


嶋田創のページに戻る