JA
マイツール

TOTP・HOTP コード生成(2 段階認証)

Base32 の秘密鍵または otpauth:// リンクから TOTP・HOTP のワンタイムコード(RFC 6238 / RFC 4226)を生成します。SHA-1/256/512、6~8 桁、任意の時刻に対応。

サービスが「コードをスキャンできない場合」の下に表示する Base32 の鍵(空白や小文字でも構いません)、または QR コード内の otpauth:// リンク全体です。
種類
空欄なら現在の時刻を使います。別の時刻を入力すると、その時点のコード(過去または未来)を確認できます。
マイツール →
広告

認証アプリの 6 桁のコードは、公開されている 2 つのアルゴリズムで作られています。回数を数える HOTP(RFC 4226)と、時計を使う TOTP(RFC 6238)です。この生成ツールは、アプリに渡されたのと同じ Base32 の秘密鍵(または QR コード内の otpauth:// リンク)を受け取り、現在・前・次のコード、残り秒数、前後のステップの表を表示します。自作の 2FA 実装のテストや、特定の時刻のコードの確認、コードが拒否される理由の調査にお使いください。

使い方

  1. Base32 の秘密鍵、または otpauth:// リンク全体を貼り付けます。
  2. サービスの指示がない限り、TOTP、SHA-1、6 桁、30 秒のままにします。
  3. 時刻を空欄にすると現在、Unix 時間か ISO 形式の日付を入れるとその時点のコードを表示します。
  4. HOTP の場合は、カウンターベースの種類を選んでカウンターを入力します。

計算式

HOTP(K, C) = Truncate(HMAC-SHA-1(K, C)) mod 10^d。TOTP は C = floor((now − T0) / X) を使い、T0 = 0(1970 年 1 月 1 日)、X = 30 秒です。

Truncate は、HMAC の最後のバイトの下位 4 ビットをオフセットとし、そこから 4 バイトを読んで最上位ビットを消し、31 ビットの数を得ます。d は桁数です。サービスが求める場合は HMAC-SHA-1 の代わりに SHA-256 や SHA-512 を使います。カウンター C は 8 バイトで、上位のバイトから書きます。

計算例

RFC 6238 は ASCII の秘密鍵 "12345678901234567890"、SHA-1、8 桁を使います。Unix 時間 59 ではステップは T = 1 でコードは 94287082、1111111109(2005 年 3 月 18 日 01:58:29 UTC)では T = 37037036 でコードは 07081804 です。同じ秘密鍵を Base32 で書くと GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ で、カウンター 1 の HOTP では 287082 になります。

よくある質問

2FA の秘密鍵をここに貼り付けても安全ですか?

コードはブラウザー内で計算され、どこにも送信されませんが、秘密鍵はパスワードと同じくらい機密性が高いものです。持っている人は誰でもあなたのコードを作れます。信頼できる端末でのテストや復旧にだけ使い、秘密鍵を共有しないでください。

サービスにコードが拒否されるのはなぜですか?

たいていは端末の時計が 1 ステップ以上ずれているか、設定が違っています。ほとんどのサービスは SHA-1、6 桁、30 秒を使い、それ以外は otpauth:// リンクに書かれています。「使用した時刻」の行を確認し、前後のコードと比べてみてください。

TOTP と HOTP の違いは何ですか?

TOTP は時計からカウンターを得るため、コードはタイムステップが過ぎると失効します。HOTP はコードを要求するたびに増えるカウンターを使い、サーバーも自分のカウンターを持ち、少し先まで許容する範囲を設けています。

秘密鍵で 0、1、8、9 が拒否されるのはなぜですか?

Base32(RFC 4648)は A–Z と 2–7 だけを使うため、0 や 1 はほぼ確実に O や I の打ち間違いです。

出典

最終更新:

このツールを引用する
APA

kakaoCalc. (2026, November 8). TOTP・HOTP コード生成(2 段階認証). https://kakao.mobile/ja/tools/totp-generator/

MLA

“TOTP・HOTP コード生成(2 段階認証).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/totp-generator/.

広告