やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ワンタイムパスワード生成ライブラリの調査1

GitHubの二要素認証で使うワンタイムパスワードを生成するPythonライブラリを探す。

OTPライブラリ

Name LICENSE CopyRight
pyotp LICENSE Copyright (C) 2011-2016 Mark Percival <m@mdp.im>, Nathan Reynolds <email@nreynolds.co.uk>, and PyOTP contributors
onetimepass LICENSE.rst Copyright(C)2011-2013 Tomasz Jaskowski(https://github.com/tadeck)

新しいほうのpyotpを使うことにした。

インストール

C:/python34/Scripts/pip install pyotp

Collecting pyotp
  Downloading pyotp-2.2.4-py2.py3-none-any.whl
Installing collected packages: pyotp
Successfully installed pyotp-2.2.4

実行

import pyotp
totp = pyotp.TOTP(two_factor_secret)
otp = totp.now()
print(otp)

結果

WinAuthで出力したOTPと異なる値が出た。これではGitHubAPIに渡しても失敗してしまうだろう。

ローカル時刻がずれているのかと思って、WindowsXPのネット時刻あわせをしたが、やはり異なるOTPを出す。

所感

WinAuthの代わりになるかと思ったのだが、違うのか?私がしくみを理解できていないのかもしれない。