ツール

TOTP コード生成・otpauth:// 作成ツール

Base32 シークレットや otpauth:// URI から現在と次の二段階認証コードを表示し、新規登録用の URI と QR コードも作成します。

ブラウザ内で実行ハッシュと暗号化1476
無料

入力

0 B

結果

結果はここに表示されます。

二段階認証のログインを実装したりデバッグしたりするとき、スマートフォンを取り出さずにサーバーが期待しているコードを確認したい場面があります。Base32 のシークレットか完全な otpauth:// URI を貼り付けると、このツールは現在の 30 秒枠のコード、その残り秒数、前後の枠のコードを表示します。入力を空のまま実行すると、新しい 160 ビットのシークレットと otpauth:// URI を作成し、必要なら認証アプリで読み取れる QR コードも表示します。計算には、ブラウザ、Node、Deno、Bun で動く保守中の HOTP/TOTP ライブラリ otpauth(hectorm/otpauth、MIT)を使っています。

動作のしくみ

  • コードは RFC 6238 に従います。Unix 時刻を周期で割った値をカウンターとし、シークレットで HMAC-SHA1(または SHA-256/512)を計算し、RFC 4226 の方法で 6 桁または 8 桁に切り詰めます。
  • otpauth:// URI は独自のアルゴリズム、桁数、周期を持っており、それがドロップダウンより優先されます。Base32 シークレットだけのときは、ドロップダウンと発行者、アカウントから URI を組み立てます。
  • 前のコードも表示するのは、多くのサーバーが前後 1 ステップの時刻ずれを許容するためです。端末のコードが「前」と一致する場合、たいていは端末の時計が遅れています。
  • QR プレビューは otpauth:// URI 全体をエンコードしたもので、スイッチをオンにしたときだけ qrcode パッケージで描画されます。

データの行き先

どこにも行きません。このツールは完全にブラウザ内で動作します。貼り付けたテキストはページが処理し、サーバーに送信されることも、ログに記録されることもありません。

このツールは鍵や資格情報を扱うため、実行に関する情報は一切保存されません。あなた自身の履歴にも残りません。

必要なポイント

このツールは無料です。ログインもポイントも必要ありません。

よくある質問

アプリに表示されるコードがこのページと違います。なぜですか?
ほとんどは時刻かパラメーターの不一致が原因です。まず端末の時刻が自動設定になっているか確認してください。30 秒ずれたスマートフォンは常に 1 つ前のコードを表示します。次にアルゴリズム、桁数、周期を確認します。多くの認証アプリは SHA1、6 桁、30 秒しか扱わず、それ以外の値を黙って無視するため、SHA-256 や 8 桁で設定されたサーバーはアプリのコードを拒否します。
TOTP のシークレットはどのくらいの長さが必要ですか?
RFC 4226 は最低 128 ビットを求め、160 ビット(Base32 で 32 文字)を推奨しています。これより短いものはツールが警告します。よく見かけるデモ用シークレット JBSWY3DPEHPK3PXP はわずか 80 ビットなので、実際のアカウントには決して使わないでください。
本物の二段階認証シークレットをここに貼っても安全ですか?
計算はこのページ内で行われ、送信も保存もされません。ただし、シークレットは第二要素そのものであり、それを持つ人は誰でも有効なコードを永久に生成できます。共有のパソコンに貼り付けたシークレットは漏えいしたものとみなし、不安があればアカウントを登録し直してください。シークレットを平文で含む QR コードも同様です。
otpauth:// URI には何が含まれますか?
形式は Google Authenticator の Key URI ドキュメントに基づき、otpauth://totp/Issuer:account?secret=BASE32&issuer=Issuer に、任意で algorithm、digits、period パラメーターを付けます。発行者が 2 回出てくるのは意図的で、ラベル内のものは古いアプリ向け、パラメーターは新しいアプリ向けです。これでどちらのアプリでも正しい名前が表示されます。

背後にあるオープンソース

このツールは hectorm/otpauth(MIT)の上で動作しています。同じ処理を自分のプログラムに組み込みたい場合は、そのライブラリを使ってください。

hectorm/otpauth

別の呼び方

  • TOTP 生成
  • 二段階認証 コード 生成
  • otpauth URI
  • Google Authenticator コード 確認
  • ワンタイムパスワード テスト
  • RFC 6238