TOTPジェネレーターとは?

二要素認証のための無料 TOTP / HOTP ジェネレーターです。base32 のシークレットキーを入力すると、30 秒ごとに更新される TOTP(RFC 6238、Google Authenticator や Authy など主要な 2FA に対応)と、カウンターで進める HOTP(RFC 4226、YubiKey や一部の銀行アプリ向け)の使い捨てコードを生成します。

RFC 6238 (TOTP) と RFC 4226 (HOTP) をデバイス内で完全に実装しており、base32 シークレットはページの外に出ず、タブを閉じれば消去されます。既定値(SHA-1、6 桁、30 秒間隔)は Google Authenticator、Authy、Microsoft Authenticator、1Password、ほとんどの銀行アプリと一致します。必要に応じて SHA-256・SHA-512、7 桁または 8 桁のコード、HOTP のカウンターモードも利用できます。さらに、PBKDF2 と AES-GCM で暗号化した JSON バックアップを使えば、同期サービスに頼らずに登録した全アカウントを別の端末へ移行できます。

使い方

  1. TOTPシークレットキー(base32)を入力するか、QRコードをスキャンしてインポートします。
  2. 6桁のコードが生成され、30秒ごとに自動的に更新されるのを確認します。
  3. 現在のコードをコピーし、有効期限が切れる前にログイン画面に貼り付けます。

使用するタイミング

  • 認証アプリ用のスマートフォンを紛失・初期化したときに一時的にアカウントへ復旧する。
  • 新しいモバイルアプリを入れずに PC 上で 2FA コードを生成したい。
  • 開発中に本物の共有秘密を晒さずに 2FA フローを検証する。

結果

会社が2FAを使っているのにスマートフォンを紛失してしまったとします。セットアップ時に保存しておいたシークレットキーをここに入力すれば、現在の6桁コードを取得してログインでき、新しい認証アプリの設定を進められます。

よくある質問

2FA の秘密鍵を Web ページに入力しても安全ですか?
TOTP の計算はこのページ内で完結し、秘密鍵を含むリクエストは送信されません。ただし、銀行やメイン用メールなどの重要アカウントには引き続きスマホ常駐型の認証アプリを推奨します。本ツールは復旧、検証、重要度の低いアカウント向けに有効です。
Google や GitHub などのアプリで秘密鍵はどこに表示されますか?
2FA の設定画面で「スキャンできない場合は手動入力」のようなリンクを開くと、A〜Z と 2〜7 で構成された base32 文字列(通常 16〜32 文字)が表示されます。その文字列を本ツールの「秘密鍵」欄に貼り付けてください。
生成したばかりのコードが拒否されるのはなぜですか?
ほとんどの場合、端末時計のずれが原因です。TOTP はサーバーと端末の時刻一致を前提にしており、30 秒以上ずれるとコードが合いません。端末時刻をインターネット同期に設定して再試行してください。
秘密鍵を入力する代わりに QR コードを読み取れますか?
可能です。「QR コードから取り込み」をタップしてスクリーンショットをアップロードするか、印刷された QR を読み取ってください。otpauth:// URI を解析して秘密鍵、発行者、アカウント名、アルゴリズム、桁数、間隔を抽出し、自動で項目を追加します。
アカウントを別の端末へ移すにはどうしますか?
方法は二つあります。各シークレットの原本が残っていれば、新しい認証アプリで手動入力するか QR を再スキャンすれば完了です。残っていない場合は「バックアップ」ボタンを使います。強固なパスワードを設定し、暗号化された JSON ファイルを書き出し、新しい端末へコピーしたうえで同じパスワードを入れて「読み込み」を押すと、すべてのアカウントが一度に戻ります。原本もバックアップもない場合は、サービス側で 2FA を最初から設定し直してもらう必要があります。

関連ツール