moldspoon

🔐 TOTPワンタイムパスワード生成・検証

Base32のシークレットから、二段階認証で使われるワンタイムパスワード(TOTP/RFC 6238)を生成します。残り秒数の確認、コードの照合、認証アプリに登録するためのQRコード表示まで、この1ページで行えます。

🔒 シークレットはブラウザ内でのみ処理され、弊社サーバーへ送信・保存されることは一切ありません。

計算はすべてお使いの端末の中(WebCrypto)で完結しています。通信は発生しません。

1. シークレット(Base32)

小文字・空白・ハイフン・末尾のパディング(=)が混ざっていても、そのまま解釈します。読み取り結果:JBSW Y3DP EHPK 3PXP10バイト/80bit)

RFC 4226が推奨する160bit(20バイト)の乱数を、暗号論的乱数生成器で作成します。
2. オプション
6
8
15
30
60
SHA-1RFC 6238の既定。Google Authenticator など、ほぼすべてのアプリが対応します。
SHA-256対応アプリは限られます。サーバー側と揃っているか必ず確認してください。
SHA-512対応アプリはさらに限られます。独自実装同士の検証向けです。
✅ 現在の設定(SHA-1・6桁・30秒)は、Google Authenticator をはじめとする多くの認証アプリと互換性があります。
3. 現在のワンタイムパスワード
— — —
残り 30 秒 / ステップ番号 T =
1つ前(T-1)
1つ次(T+1)

前後のコードは、端末の時計のずれを切り分けるための参考値です。サーバー側は通常、この前後1ステップまでを許容します。

✅ コピーしました!

※ コピーボタンでは、区切りを含まない現在のコードをコピーします。

4. コードの検証

別の実装が出力したコードを貼り付けると、現在のステップから前後1ステップの範囲で一致するかを判定します。

5. 認証アプリへの登録(otpauth:// URI とQRコード)
✅ コピーしました!

Google Authenticator・Microsoft Authenticator・1Password などの認証アプリで、このQRコードを読み取ると登録できます。

QRコードには、シークレットそのものが含まれています。画面共有・スクリーンショットの取り扱いにご注意ください。

用途とご注意

本ツールは、2FA(二段階認証)実装のデバッグ・検証を目的としています。本番環境で実際に使われているシークレットを入力しないことを強く推奨します。

TOTPは端末の時計を前提とした仕組みです。コードが合わない場合は、まずご利用の端末とサーバーの時刻同期(NTP)をご確認ください。

シークレットは認証情報そのものです。共有・保管の方法にはパスワードと同等以上の注意を払ってください。

※ シークレット・コードはすべてブラウザ内(WebCrypto)で処理しており、弊社サーバーへ送信・保存することは一切ありません。

※ 実装はRFC 6238(TOTP)・RFC 4226(HOTP)・RFC 4648(Base32)に準拠し、各RFCのテストベクターとの一致を確認しています。

※ T0(基準時刻)は0(UNIXエポック)固定です。

こんなツールをこれからも作っていきます。もしこれは!と思っていただけましたら、シェア・応援していただけると嬉しいです!😀

X (旧Twitter)

0

Facebook

LINE

0

はてブ

リンクコピー

✅ コピーしました!