HOTP

HOTP (HMAC-based One-Time Password, RFC 4226) adalah saudara berbasis penghitung dari TOTP. Di mana TOTP maju pada jam, HOTP maju pada penghitung bersama yang diinkrementasi oleh token dan server dengan setiap kode 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 tipenya. Membawa rahasia HMAC bersama ditambah nilai penghitung yang harus dijaga sinkronisasinya oleh kedua pihak. Format:

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

HOTP vs TOTP, kapan menggunakan yang mana

PropertiHOTP (RFC 4226)TOTP (RFC 6238)
Maju padaPenghitung (setiap penggunaan berhasil)Jam (setiap 30 detik)
Memerlukan sinkronisasi jamTidakYa, dalam ~30 detik drift
Resync saat driftServer menerima N nilai penghitung berikutnyaServer menerima jendela ±1
Deployment khasYubiKey, token hardware lama, perbankan offlineSemua 2FA konsumen, Google, Microsoft, 1Password, Authy
Penggunaan ulang penghitungKatastrofis, membocorkan rahasia seiring waktuN/A
Kerentanan jika rahasia bocorSemua kode masa depan dapat diprediksiSemua kode masa lalu + masa depan dapat diprediksi

Vektor uji kanonik

RFC 4226 Appendix D menyediakan nilai HOTP referensi untuk rahasia 12345678901234567890 (20 byte, Base32 GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ) dengan output 6 digit:

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

Payload QR minimal untuk pendaftaran pada penghitung 0:

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

Validator rahasia Base32 langsung

Validator yang sama seperti halaman TOTP, rahasia HOTP menggunakan alfabet Base32 yang identik (RFC 4648 §6: A-Z, 2-7). Berjalan di browser Anda, tanpa perjalanan pulang-pergi ke server.

Masukkan rahasia untuk divalidasi.

Kendala umum

Kompatibilitas autentikator

Aplikasi / TokenHOTPSHA256/5128-digitCatatan
YubiKey Authenticator (iOS/Android/desktop)YesYesYesHOTP adalah mode YubiKey OATH kanonik. Dukungan penuh RFC 4226.
Google AuthenticatorYesDiabaikan (SHA1 saja)Diabaikan (6 saja)Baseline de-facto. Aman untuk HOTP tetapi dengan 6-digit SHA1 saja.
1PasswordYesYesYesDukungan RFC penuh. Penghitung disimpan dan diekspor dengan entri.
BitwardenYesYesYesDukungan RFC penuh.
Microsoft AuthenticatorYesYesYesDukungan RFC penuh.
AuthyNo,,Menghapus HOTP di versi terbaru. Hanya TOTP.
Duo MobileNo,,Menggunakan alur push sendiri; hanya TOTP sebagai fallback.
OATH hardware tokens (Feitian, Token2, etc.)YesVariesVariesPasar hardware HOTP kanonik; selalu 6-digit SHA1 kecuali datasheet menyatakan lain.

Lihat juga

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