TOTP & HOTP

TOTP(時間ベースのワンタイムパスワード、RFC 6238)とHOTP(HMACベースのワンタイムパスワード、RFC 4226)は、2FAの登録QRが実装する2つのRFCです。エンコードされた otpauth:// URIスキームはGoogle Authenticatorのデファクトスタンダードであり、すべての主要な認証アプリで互換性があります。

TOTP仕様:RFC 6238(時間ベース、2011年)。
HOTP仕様:RFC 4226(カウンターベース、2005年)。
URIスキーム:Google Authenticator Key URI Format, すべての認証アプリが合意しているフォーマット。

概要

2FAの登録QRは、共有シークレットと識別メタデータを持つ otpauth:// スキームのURLです。フォーマット:

otpauth://TYPE/LABEL?secret=SECRET&issuer=ISSUER&algorithm=ALG&digits=N&period=SEC

標準テストベクター

ケース入力期待されるotpauth:// URI
TOTP、最小(SHA1、6桁、30秒)issuer=GitHub
account=alice@example.com
secret=JBSWY3DPEHPK3PXP
otpauth://totp/GitHub:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=GitHub
TOTP、SHA256、8桁issuer=Corp
account=bob
secret=JBSWY3DPEHPK3PXP
algorithm=SHA256
digits=8
otpauth://totp/Corp:bob?secret=JBSWY3DPEHPK3PXP&issuer=Corp&algorithm=SHA256&digits=8
HOTP、counter=0issuer=YubiKey
account=carol
secret=JBSWY3DPEHPK3PXP
counter=0
otpauth://hotp/YubiKey:carol?secret=JBSWY3DPEHPK3PXP&issuer=YubiKey&counter=0
TOTP、RFC 6238参照シークレットissuer=Example
account=test
secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
digits=8
標準RFC テストシークレット(12345678901234567890)。T=59秒でTOTP 94287082 を生成。

ライブBase32シークレットバリデーター

認証アプリはBase32アルファベット(A-Z、2-7)以外の文字を含むシークレットを拒否します。以下はTOTPジェネレーターがインラインで実行するバリデーターと同じものです。ブラウザで実行されます。

シークレットを入力して確認してください。

よくある落とし穴

認証アプリの互換性

アプリTOTP SHA1TOTP SHA256/512HOTP8桁備考
Google Authenticatorあり無視あり無視デファクトベースライン。常にこれを最初のターゲットに。
1Passwordありありありあり完全なRFCサポート。
Authyありありなしあり新しいバージョンではHOTPを削除。
Bitwardenありありありあり完全なRFCサポート。
Microsoft Authenticatorありありありあり完全なRFCサポート。
YubiKey AuthenticatorありありありありHOTPはYubiKey OATHの標準モード。
Duo Mobileあり無視なし無視独自のプッシュフローを使用。TOTPはフォールバックのみ。

関連ページ

仕様リファレンス確認済み 2026-04-18。RFC 6238(2011年)、RFC 4226(2005年)、Google Key URI Format。