AZ Tools

TOTP コード生成器

開発

TOTP(Time-based One-Time Password、RFC 6238)は Google 認証システム・Authy・1Password・大半の企業向け多要素認証の基盤となる標準アルゴリズムです。2FA 設定時にサービスが提示した Base32 シークレット(QR コードに埋め込まれているのと同じ文字列)を貼り付けると、本ツールは現在の 6 桁コード、次回ローテーションまでの残り秒数を示すカウントダウンリング、そして次のコードを表示します。桁数(6/7/8)、周期(15/30/60/120 秒)、HMAC ハッシュ(SHA-1・SHA-256・SHA-512)はサービスに合わせて変更でき、既定値は Google 認証システム仕様と一致します。すべての計算はブラウザの Web Crypto API で行われ、シークレットがネットワークへ送信されることはありません。自分の 2FA 設定のテスト、自身が管理するシークレットからのコード復旧、認証フロー開発・デバッグ用途であり、自分のものでないアカウントの認証回避には使えません。

使い方

  1. Base32 シークレット(設定画面で表示される長い文字列)をシークレット欄に貼り付けます。空白とハイフンは無視されます。
  2. 桁数・周期・アルゴリズムをサービスの設定に合わせます。Google 認証システム既定は 6 桁 / 30 秒 / SHA-1。
  3. 現在のコードをクリックするとコピーされます。カウントダウンリングが 0 近くなら『次のコード』を確認し、どちらを使うか判断します。
  4. コードが拒否される場合は端末時計の同期を確認 — TOTP は Unix 時刻が秒単位で正しいことを前提とします。

よくある質問

安全?シークレットが送信されることは?
ブラウザ外には出ません。Base32 デコードも HMAC-SHA 計算も Web Crypto API で端末内で実行されます。ネットワークタブで確認できます。ただし TOTP シークレットはパスワード同様の機密情報なので、信頼できるツールにのみ貼り付け、シークレットが映るスクリーンショットは共有しないでください。
どの設定を選ぶ?
既定値(6 桁・30 秒・SHA-1)は Google 認証システム仕様と同じで多くのサービスで動きます。一部の銀行・企業システムは 8 桁・60 秒・SHA-256/512 を使い、設定説明や otpauth:// URI に記載されています。パラメータがずれると無言で誤コードを返します。
コードが拒否されます — 何が悪い?
最も多い原因は時計のずれです。TOTP は端末の Unix 時刻を使うので 30 秒以上ずれていると常に失敗します。時計を同期してください(多くの OS は自動 — NTP 設定を確認)。他の原因:桁数・周期・アルゴリズムの不一致、シークレット文字の欠落/余分、別アカウントのシークレット。
TOTP と HOTP の違いは?
HOTP(RFC 4226)は『次のコード』を押すたびにカウンタが増え、サーバとの同期が必要です。TOTP(RFC 6238)はカウンタの代わりに『現在 Unix 時刻 ÷ 周期』を使うのでコードが自動回転します。現代の 2FA はほぼ TOTP です。
QR コードや otpauth:// URI を読み込める?
本ツールでは Base32 シークレットを直接貼り付ける形式です。otpauth:// URI なら『secret=』の後ろの値がシークレット。QR 画像しかない場合はまず別のデコーダで読み取り、シークレットだけここに貼り付けてください。

関連ツール