DevToys Web Pro iconDevToys Web Proブログ
評価:
ブラウザ拡張機能を試す:

OTPジェネレーター(TOTP/HOTP)

設定

  • モード

    時間ベース(TOTP)またはカウンターベース(HOTP)を選択してください

  • アルゴリズム

    OTP 生成に使用するハッシュアルゴリズム

  • 桁数

    OTP コードの桁数

  • 周期

    TOTPコードの有効時間間隔

秘密鍵

  • 生成されたコード

  • ------

    QRコード設定

    コードを検証

    現在のシークレットに対してコードが有効か確認します

    OTP 認証 URI

  • このURIを使用するか、QRコードをスキャンして、このアカウントを認証アプリに追加してください

    技術的な詳細

    OTPジェネレーターの仕組み

    このツールでできること

    このOTPジェネレーターは、Google Authenticator、Authy、その他の2FAアプリと互換性のある、時間ベースのワンタイムパスワード(TOTP)およびHMACベースのワンタイムパスワード(HOTP)を生成します。Base32のシークレットキーを入力または生成すると、TOTPでは30秒または60秒ごとに変化する6〜8桁のコード、HOTPではカウンターの増加に応じて変化するコードを生成します。すべての計算はWeb Crypto APIを使用してブラウザ内でローカルに実行されるため、シークレットがデバイス外へ送信されることはありません。

    開発者によくある利用シーン

    開発者は、オンラインTOTPジェネレーターを使用して二要素認証の実装をテストし、OTPライブラリが正しいコードを生成しているかを検証し、認証フローのデバッグを行います。2FAシステムを構築する際、このツールを使ってテスト用シークレットを生成し、サーバー側のTOTP実装を検証し、時刻同期が正しいことを確認できます。また、QAチームが認証アプリを端末にインストールせずに2FAワークフローを検証するのにも役立ちます。

    データ形式と標準

    このOTPツールは、RFC 6238(TOTP)およびRFC 4226(HOTP)の標準を実装しています。シークレットキーは、認証アプリの標準形式であるBase32エンコーディングを使用します。ツールはSHA-1(デフォルトで最も互換性が高い)、SHA-256、SHA-512のハッシュアルゴリズムをサポートします。出力コードは6桁、7桁、8桁にでき、最も一般的なのは6桁です。OTP Auth URI形式(otpauth://totp/...)はGoogle Authenticatorなどのアプリと互換性があります。

    よくある落とし穴とエッジケース

    TOTPコードは非常に時間に敏感です。サーバーとクライアントの時計が30秒以上ずれていると認証に失敗します。多くの実装では、わずかなドリフトに対応するために1〜2ステップの許容ウィンドウを設けています。SHA-1は最も広くサポートされているアルゴリズムであり、古い認証アプリの中にはSHA-256やSHA-512をサポートしないものがあります。シークレットキーが正しくBase32エンコードされていることを確認してください。無効な文字が含まれるとデコードエラーになります。

    コードではなくこのツールを使うべき場面

    このOTPジェネレーターは、開発中のテスト、デバッグ、2FA実装の検証に使用してください。本番システムでは、pyotp(Python)、speakeasy(Node.js)、GoogleAuthenticator(各種言語)などの確立されたライブラリを使用して、サーバー上でOTPコードの生成と検証を行ってください。クライアント側コードでシークレットキーを決して露出させないでください。このツールは開発ワークフローに最適ですが、アプリケーションはOTP検証をサーバー側で処理する必要があります。