2FAコードジェネレーター(TOTP)

手元のBase32設定キーから、時刻ベースの認証コードをローカルで生成します。

計算は端末内で行われ、入力値をサーバーへ送りません。

具体例

RFCの公開テストキーを使うと、59秒時点のSHA-1・6桁コードは287082で、59.999秒までは287082のままです。60秒になると359152に変わります。

計算方法・仕組み

この生成器はTOTP規格RFC 6238に沿っています。現在のUNIX時刻を選んだ期間で割り、その値をキーとHMACで組み合わせ、結果を6桁または8桁の数字にします。同じキー、同じ設定、正しい時刻がそろえば、誰が計算しても同じコードになります。

注意事項

キーはパスワードと同じ扱いです。このページのメモリー内にとどまり、保存もログ記録も送信もされず、リセットやページを離れた時点で消えます。それでも、乗っ取られた端末や悪意あるブラウザー拡張までは防げないので、共用のパソコンにキーを貼り付けないでください。

時刻ベースのコードとは

認証アプリはTOTPという標準(RFC 6238)で30秒ごとに新しいコードを表示します。サービスとアプリは秘密のセットアップキーを共有し、それぞれ現在のUnix時刻を周期で割ったカウンターとキーをHMACで組み合わせ、6桁または8桁の数字に変換します。同じキー・同じ設定・正しい時刻なら誰でも同じコードになります。表の例はRFCに載っている公開のテスト用キーで、1970年1月1日から59秒の時点の6桁SHA-1コードは287082、59.999秒までは287082のままです。

設定と時計を合わせる

サービスが示すBase32のセットアップキーをそのまま入力します。スペースや小文字は受け付けますが、QRコードの画像、SMSのコード、otpauthリンクは使えません。多くのサービスはSHA-1・6桁・30秒で、どれか1つでも違うと正しそうに見えて誤ったコードになります。同じキーと時刻でも、8桁なら94287082、SHA-256なら46119246、SHA-512なら90693936です。コードは周期の境目で変わり、60秒の時点では359152になります。081804のような先頭の0も入力が必要です。

このページの安全対策の範囲

キーはパスワードと同じように扱います。キーはこのページのメモリ内にだけあり、保存・記録・送信されず、リセットやページ移動で消去されます。ページは広告や解析のスクリプトを読み込まず、外部への通信も遮断します。それでも乗っ取られた端末や悪意のあるブラウザー拡張機能からは守れないため、共用パソコンにはキーを貼り付けないでください。サービスのリカバリーコードは安全に保管し、日常のログインには信頼できる認証アプリを使いましょう。コードが拒否されたら、端末の時刻の自動設定を有効にして新しいコードで試してください。

計算・使用例
入力結果
RFC key · SHA-1 · 6 digits · 30 s · at 59 s287082
RFC key · SHA-1 · 6 digits · 30 s · at 59.999 s287082
RFC key · SHA-1 · 6 digits · 30 s · at 60 s359152
RFC key · SHA-1 · 6 digits · 30 s · at 1111111109 s081804
RFC key · SHA-1 · 8 digits · at 59 s94287082
RFC key · SHA-256 · 8 digits · at 59 s46119246
RFC key · SHA-512 · 8 digits · at 59 s90693936

よくある質問

コードが受け付けられません。何を確認すべきですか?

まず設定です。多くのサービスはSHA-1・6桁・30秒を使っており、どれか1つ違うだけで、それらしく見える誤ったコードになります。同じキーと同じ時刻でも、8桁なら94287082、SHA-256なら46119246、SHA-512なら90693936です。次に端末の時刻の自動設定を有効にし、新しいコードで試してください。

どの形式のキーを入力できますか?

サービスから提供されたBase32の設定キーをそのまま入力してください。空白や小文字は受け付けますが、QR画像やSMSのコード、otpauthリンクは使えません。秘密のキーは決して他人に渡さないでください。また、コードをコピーすると端末のクリップボードに残る点にもご注意ください。

アカウントのバックアップや復旧はできますか?

できません。このページは保管庫でもバックアップでも復旧サービスでもないので、各サービスの回復コードは別の安全な場所に保管し、日常のログインには信頼できる認証アプリをお使いください。なお081804のように先頭のゼロもコードの一部なので、省かずに入力してください。

関連ツール