DevToolPal
ID

Generator Kode TOTP / HOTP

Buat kode autentikasi dua faktor (TOTP dan HOTP) dari secret Base32 atau URI otpauth://, dengan SHA-1/256/512, 6–8 digit, dan hitung mundur langsung.

Berjalan lokal, tidak pernah diunggah

Opsi

Jenis
Digit
Langkah waktu

Secret (Base32) atau URI otpauth://

Kode

Hasil akan muncul di sini

Fungsinya

Aplikasi autentikasi dua faktor seperti Google Authenticator, Microsoft Authenticator, dan 1Password menampilkan kode enam digit yang berganti setiap 30 detik. Setiap kode adalah kata sandi sekali pakai yang dihitung dari secret bersama: TOTP (RFC 6238) memakai waktu dan HOTP (RFC 4226) memakai penghitung. Alat ini menghitung kode yang sama dari secret, sehingga Anda bisa menguji penyiapan 2FA, men-debug implementasi server, atau memeriksa seharusnya kode itu berapa.

Alat ini menampilkan kode saat ini dengan hitung mundur langsung, serta kode sebelumnya dan berikutnya yang sering diterima server untuk menutupi selisih jam kecil.

Cara memakai

  1. Tempelkan secret Base32 (huruf A–Z dan angka 2–7; spasi dan huruf besar/kecil tidak berpengaruh), atau tempelkan URI otpauth:// lengkap dari kode QR. Klik Contoh untuk mencoba.
  2. Pilih TOTP atau HOTP, lalu atur algoritme, digit, dan langkah waktu sesuai akun. Pengaturan di dalam URI otpauth lebih diutamakan.
  3. Untuk HOTP, isi penghitung dan gunakan Penghitung +1 untuk menelusuri kode.
  4. Salin kode saat ini. Hitung mundur menunjukkan berapa lama kode masih berlaku.

Contoh

Secret demo JBSWY3DPEHPK3PXP adalah bentuk Base32 dari byte “Hello!” diikuti 0xDEADBEEF. URI di bawah, seperti yang dikodekan dalam kode QR, menggambarkan akun yang memakainya dengan pengaturan bawaan:

otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example&algorithm=SHA1&digits=6&period=30

Pada waktu Unix 1700000000, secret ini menghasilkan kode 324 550, dan jendela waktunya tersisa 10 detik.

Cara kode dihitung

Secret didekode dari Base32 menjadi byte. Untuk TOTP, penghitung adalah waktu Unix dalam detik dibagi langkah waktu lalu dibulatkan ke bawah. Penghitung ditulis sebagai 8 byte dan ditandatangani dengan HMAC memakai secret. Pemotongan dinamis memilih 4 byte dari keluaran HMAC berdasarkan nibble terakhirnya, lalu angkanya dikurangi ke jumlah digit yang diminta dengan tetap mempertahankan nol di depan.

FAQ

› Mengapa kode saya tidak cocok dengan kode di aplikasi autentikator?

Kode TOTP bergantung pada jam, jadi pertama-tama pastikan waktu perangkat diatur otomatis. Lalu pastikan algoritme, jumlah digit, dan langkah waktu sesuai dengan akun. Sebagian besar layanan memakai SHA-1, 6 digit, dan 30 detik, dan aplikasi autentikator mengabaikan pengaturan lain kecuali kode QR menyebutkannya.

› Apa bedanya TOTP dan HOTP?

TOTP (RFC 6238) memakai waktu saat ini dibagi langkah waktu sebagai penghitung, sehingga kode berganti setiap 30 detik. HOTP (RFC 4226) memakai penghitung yang bertambah satu setiap kali kode dipakai. Keduanya memproses secret dan penghitung dengan HMAC lalu mengambil 6 sampai 8 digit terakhir.

› Apakah secret saya disimpan atau dikirim ke mana pun?

Tidak. Kode dihitung di browser Anda dengan Web Crypto API. Secret tidak disimpan, tidak ditulis ke bilah alamat, dan tidak disertakan di tautan berbagi; tautan yang dibagikan hanya membawa pengaturan. Meski begitu, secret 2FA memberi akses penuh ke faktor kedua, jadi tempelkan hanya secret milik Anda sendiri.

› Bisakah saya memakainya saat menambahkan autentikasi dua faktor ke aplikasi saya?

Bisa. Klik Secret acak untuk membuat secret Base32 160 bit, masukkan ke URI otpauth:// atau kode QR untuk pengguna Anda, lalu bandingkan kode dari server dengan yang ditampilkan di sini. Server biasanya juga menerima kode sebelumnya dan berikutnya untuk menoleransi selisih jam.