HOTP

HOTP (HMAC-based One-Time Password, RFC 4226) adalah saudara berasaskan pembilang TOTP. Di mana TOTP maju pada jam, HOTP maju pada pembilang bersama yang ditambah oleh token dan pelayan dengan setiap kod yang digunakan.

Canonical spec:RFC 4226, HOTP: An HMAC-Based One-Time Password Algorithm (2005).
URI scheme:Google Authenticator Key URI Format, the otpauth:// scheme every authenticator agrees on.
Sibling spec:TOTP (RFC 6238), time-based variant that builds on HOTP.

Apa itu

QR pendaftaran HOTP adalah URL dalam skema otpauth:// dengan hotp sebagai jenisnya. Ia membawa rahasia HMAC bersama ditambah nilai pembilang yang mesti disegerakkan oleh kedua pihak. Format:

otpauth://hotp/LABEL?secret=SECRET&issuer=ISSUER&counter=N&digits=N&algorithm=ALG

HOTP vs TOTP, bila menggunakan yang mana

SifatHOTP (RFC 4226)TOTP (RFC 6238)
Maju padaPembilang (setiap penggunaan berjaya)Jam (setiap 30 s)
Memerlukan penyegerakan jamTidakYa, dalam ~30 s hanyut
Resync semasa hanyutPelayan menerima N nilai pembilang seterusnyaPelayan menerima tetingkap ±1
Penggunaan biasaYubiKey, token perkakasan lama, perbankan luar talianSemua 2FA pengguna, Google, Microsoft, 1Password, Authy
Guna semula pembilangBencana, membocorkan rahasia dari semasa ke semasaTidak berkenaan
Kerentanan jika rahasia bocorSemua kod masa hadapan boleh diramalSemua kod masa lalu + masa hadapan boleh diramal

Vektor ujian kanonik

RFC 4226 Lampiran D menyediakan nilai HOTP rujukan untuk rahasia 12345678901234567890 (20 bait, Base32 GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ) dengan output 6 digit:

CounterHOTP (6-digit)
0755224
1287082
2359152
3969429
4338314
5254676
6287922
7162583
8399871
9520489

Muatan QR minimum untuk pendaftaran pada pembilang 0:

otpauth://hotp/Example:test?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&issuer=Example&counter=0

Pengesah rahasia Base32 langsung

Pengesah yang sama seperti halaman TOTP, rahasia HOTP menggunakan abjad Base32 yang sama (RFC 4648 §6: A-Z, 2-7). Berjalan dalam penyemak imbas anda, tiada perjalanan pergi-balik pelayan.

Masukkan rahasia untuk mengesahkan.

Masalah lazim

Keserasian pengesah

Aplikasi / TokenHOTPSHA256/5128-digitNota
YubiKey Authenticator (iOS/Android/desktop)YesYesYesHOTP ialah mod YubiKey OATH kanonik. Sokongan penuh RFC 4226.
Google AuthenticatorYesDiabaikan (SHA1 sahaja)Diabaikan (6 sahaja)Asas de facto. Selamat untuk HOTP tetapi dengan 6-digit SHA1 sahaja.
1PasswordYesYesYesSokongan RFC penuh. Pembilang disimpan dan dieksport dengan entri.
BitwardenYesYesYesSokongan RFC penuh.
Microsoft AuthenticatorYesYesYesSokongan RFC penuh.
AuthyNo,,Menggugurkan HOTP dalam versi terbaru. TOTP sahaja.
Duo MobileNo,,Menggunakan aliran push sendiri; hanya TOTP sebagai sandaran.
OATH hardware tokens (Feitian, Token2, etc.)YesVariesVariesPasaran HOTP perkakasan kanonik; sentiasa 6-digit SHA1 melainkan helaian data menyatakan sebaliknya.

Lihat juga

Spec references verified 2026-04-19. RFC 4226 (2005), Google Key URI Format.