TOTP コード生成ツール
base32 シークレットから、桁数と時間周期を選んで TOTP の二要素認証コードをブラウザー内でリアルタイムに生成します。
TOTP コード生成ツール — base32 のシークレットを貼り付けると、対応する TOTP 二要素認証コードが、Google Authenticator や Authy とまったく同じように毎秒更新されます。6 桁か 8 桁、30 秒(または任意)の周期を選べ、必要なときには新しいランダムなシークレットも生成できます。すべて Web Crypto API の HMAC-SHA1 でローカルに計算されるため、シークレットがブラウザーの外に出ることはありません。
TOTP コード生成ツールとは?
TOTP コード生成ツールは、base32 の共有シークレットを、Google Authenticator・Authy・Microsoft Authenticator などの認証アプリが生成するのと同じ時間ベースのワンタイムパスワード(TOTP)に変換する無料のオンラインツールです。開発者や QA エンジニアは、二要素認証フローのテスト、otpauth:// URI のキーが手元にあるときのアクセス復旧、QR コードをスキャンせずに 2FA 設定が正しく動くかの確認に使います。RFC 4226 の HOTP の上に RFC 6238 を実装しており、時間カウンターの HMAC-SHA1 を計算して動的トランケーションを施し、周期ごとに切り替わる 6 桁または 8 桁のコードを得ます。コードと残り秒数のカウントダウンは毎秒リアルタイムで更新され、ボタン一つで新しいテストアカウント用に暗号学的にランダムな base32 シークレットを発行できます。
TOTP コード生成ツールの使い方
- 「シークレット」欄に base32 シークレットを貼り付けるか、「シークレット生成」を押して新しいランダムなものを作成します。空白とハイフンは無視されます。
- サービスが求める桁数に合わせて 6 桁か 8 桁を選びます。
- 「周期」を秒単位で設定します(30 がほぼすべての認証アプリで使われる標準値です)。
- 「コード」欄で現在のコードを読み取ります。自動で更新され、カウントダウンが有効な残り時間を示します。
- カウントダウンが 0 になる前にコピーボタンでコードをコピーするか、次のコードが入るのを待ちます。
使用例
標準的な 6 桁・30 秒のコード(一般的なケース)
JBSWY3DPEHPK3PXP のようなシークレットを貼り付け、桁数を 6、周期を 30 のままにします。「コード」欄に 30 秒ごとに変わる 6 桁の数字が表示され、同じ瞬間に同じシークレットで Google Authenticator が表示するものと一致します。
より厳格な設定向けの 8 桁コード
より長いワンタイムパスワードを要求するサービス向けに桁数を 8 に切り替えます。同じシークレットから 8 桁のコードが得られ、選んだ周期で切り替わり続けます。
テストアカウント用に新しいシークレットを生成
「シークレット生成」を押して新しいランダムな 20 バイトの base32 キーを作成し、その同じシークレットを設定中のアプリやサービスに入力すると、両者が一致するコードを生成します。
よくある質問
- シークレットはどこかにアップロードされますか?
- いいえ。base32 シークレットはブラウザー内に留まります。コードは Web Crypto API(HMAC-SHA1)でローカルに計算され、何もサーバーに送信・保存されないため、ツールはオフラインで動作し、シークレットがページの外に出ることはありません。
- コードが認証アプリと一致しないのはなぜですか?
- TOTP は現在時刻と、正確なシークレット・桁数・周期に依存します。桁数(6 か 8)と周期(通常 30 秒)がサービスと一致しているか、シークレットを完全に貼り付けたか、端末の時計が正確かを確認してください。大きな時刻ずれはコードをずらします。
- シークレットはどんな形式である必要がありますか?
- 文字 A-Z と数字 2-7 を使う base32 文字列で、otpauth:// 設定 URI や QR コードの下に表示されるエンコードと同じものです。空白・ハイフン・小文字・末尾の = パディングは受け付けます。それ以外の文字は無効として表示されます。
- どのアルゴリズムと標準を使っていますか?
- HMAC-SHA1 を用いて RFC 4226 の HOTP の上に RFC 6238 の TOTP を実装しています。これはほぼすべての認証アプリが使う既定値です。現在 SHA-256 や SHA-512 の派生は提供していません。
- 貼り付ける代わりにここでシークレットを生成できますか?
- はい。「シークレット生成」は crypto.getRandomValues で暗号学的にランダムな 20 バイトのキーを作成し base32 にエンコードするので、保護したいアプリにそのまま登録できます。
関連ツール
AES テキスト暗号化(AES-GCM + PBKDF2)
パスフレーズから導出した鍵(PBKDF2 SHA-256)で AES-GCM によりテキストを暗号化・復号します。すべてブラウザ内で完結し、アップロードはありません。
HMAC 生成ツール
SHA-1・SHA-256・SHA-384・SHA-512 を使い、メッセージと秘密鍵から HMAC を計算し、16進数または Base64 で出力します。
JWT ツール — デコード・検証・署名
JSON Web Token のデコード、シークレットや PEM 公開鍵による HS/RS/ES 署名検証、HS 署名をすべてブラウザ内で完結できます。
パスワード生成ツール
長さ・文字種・紛らわしい文字の除外を調整できる、強力でランダムなパスワードをすべてブラウザー内で作成します。