TOTPジェネレーター

二要素認証用の時間ベースワンタイムパスワード(TOTP)をブラウザ内で直接生成・検証します。

このツールについて

TOTPジェネレーターは、RFC 6238 で定義された時間ベースワンタイムパスワードを生成・検証します。TOTPは、Google Authenticator、Authy、Microsoft Authenticatorなどの認証アプリの背後にあるアルゴリズムです。共有シークレットキーと現在の時刻を組み合わせて、30秒または60秒ごとに変わる短命の数値コードを生成します。

既存のBase32エンコードされたシークレットを入力するか、ランダムシークレット生成 をクリックして暗号学的に強力なキーを作成します。ツールはシークレットをデコードし、現在の時間カウンターに対してHMACを計算し、動的トランケーションを適用して6桁または8桁のコードを抽出します。タイムピリオド(30秒または60秒)、桁数、ハッシュアルゴリズム(SHA-1またはSHA-256)をサービスの要件に合わせて設定できます。

カウントダウンプログレスバーがコードが切り替わるまでの残り時間を表示し、各ウィンドウの境界でコードが自動的に更新されます。コード検証 セクションでは、認証アプリからコードを貼り付けて、現在表示されているコードと一致するかを確認できます。2FAセットアップを本番環境に導入する前のテストに便利です。

ツールは認証アプリのセットアップに使用される標準的な otpauth:// プロビジョニングURIも生成します。URIをコピーして QRコード生成ツール に貼り付ければ、ユーザー向けのスキャン可能なセットアップコードを作成できます。HMAC計算にはブラウザの Web Crypto API を使用しています。これは ハッシュジェネレーター と同じエンジンです。

すべての処理はブラウザ内で完全に実行されます。シークレットキーやコードがサーバーに送信されることはありません。これにより、本番シークレットのテスト、認証セットアップの検証、2FA統合のデバッグを、機密情報を漏洩させることなく安全に行えます。

使い方

  1. シークレットキー フィールドにBase32エンコードされたシークレットキーを入力するか、ランダムシークレット生成 をクリックして作成します。
  2. 現在のTOTPコードが右側に大きなテキストで表示され、現在のウィンドウの残り時間を示すカウントダウンバーも表示されます。
  3. 設定パネルで 期間桁数アルゴリズム をサービスの設定に合わせて調整します。
  4. コードを検証するには、コード検証 フィールドにコードを貼り付けて 検証 をクリックします(または Ctrl+Enter を押します)。
  5. アカウント名発行者 を入力してプロビジョニングURIを生成し、コピーしてQRコード生成ツールでQRコードを作成します。
  6. Ctrl+Shift+C を押すと、現在のTOTPコードをクリップボードにすばやくコピーできます。

よくある質問

データは安全ですか?

はい。すべてのTOTP計算はWeb Crypto APIを使用してブラウザ内で完全に実行されます。シークレットキーや生成されたコードがサーバーに送信、保存、記録されることはありません。ツール使用中にブラウザのネットワークタブを確認することで検証できます。

TOTPとは何ですか?どのように動作しますか?

TOTP(時間ベースワンタイムパスワード)はRFC 6238で定義されたアルゴリズムで、共有シークレットと現在の時刻から短命の数値コードを生成します。時間を固定のウィンドウ(通常30秒)に分割し、シークレットキーを使用してウィンドウカウンターに対してHMACを計算し、動的トランケーションにより数値コードを抽出します。サーバーと認証アプリの両方が同じ計算を独立して実行します。

シークレットキーはどのような形式にすべきですか?

シークレットキーはBase32エンコードされている必要があり、A-Zと2-7の文字を使用します。これは認証アプリとほとんどの2FAサービスで使用される標準形式です。キー内のスペースやハイフンは自動的に除去されます。16進数エンコードされたシークレットがある場合は、まずBase32に変換する必要があります。

認証アプリとコードが一致しないのはなぜですか?

最も一般的な原因は時刻のずれです。TOTPは両側が同じ時計を持っていることに依存します。デバイスの時刻が正確で自動設定になっていることを確認してください。また、期間(30秒または60秒)、桁数(6桁または8桁)、アルゴリズム(SHA-1またはSHA-256)がサービスの設定と一致しているか確認してください。ほとんどのサービスはSHA-1、6桁、30秒間隔がデフォルトです。

アプリケーションの2FA設定に使用できますか?

はい。ランダムシークレットを生成し、サーバーの設定に合わせてパラメーターを設定し、プロビジョニングURIをコピーします。URIをQRコード生成ツールに貼り付けて、ユーザーが認証アプリでスキャンできるようにします。サーバー側でも同じTOTPアルゴリズムを実装して、ユーザーが送信するコードを検証する必要があります。

TOTPにおけるSHA-1とSHA-256の違いは何ですか?

SHA-1はほとんどの認証アプリとサービス(Google Authenticatorを含む)で使用されるデフォルトのアルゴリズムです。SHA-256はより大きなHMAC出力とより強力なセキュリティマージンを提供しますが、すべての認証アプリがサポートしているわけではありません。サービスが特にSHA-256を要求しない限り、SHA-1を使用してください。

関連ツール