Pembuat Kode TOTP / 2FA
Buat kode TOTP/2FA dari secret Base32 secara instan — 100% di browser Anda, secret tidak pernah meninggalkan perangkat. Setup QR + verifikasi kode. Gratis, tanpa daftar.
Opsi lanjutan
Apa Itu Pembuat Kode TOTP / 2FA?
Pembuat TOTP mengubah secret bersama menjadi kode sekali pakai berputar yang menjadi penggerak autentikasi dua faktor. TOTP — Time-based One-Time Password, didefinisikan dalam RFC 6238 — mengambil secret Base32 dan waktu saat ini, membagi waktu menjadi langkah tetap (30 detik secara default), dan menjalankan HMAC atas penghitung langkah untuk menurunkan kode numerik pendek. Karena baik aplikasi authenticator Anda maupun server memegang secret yang sama dan membaca jam yang sama, keduanya menghitung kode identik tanpa pernah menukarkannya lewat jaringan. Itulah inti 2FA: bahkan jika kata sandi Anda bocor, penyerang tetap membutuhkan kode yang hanya bisa dihasilkan secret Anda saat ini.
"The TOTP algorithm is a time-based variant of the HOTP algorithm... TOTP = HOTP(K, T), where T is an integer representing the number of time steps between the initial counter time T0 and the current Unix time." — RFC 6238, Section 4
Alat ini melakukan tiga pekerjaan dalam satu halaman. Ia menghasilkan kode langsung dari secret Base32 mana pun dengan hitung mundur dan pratinjau kode berikutnya; ia mengatur secret baru sepenuhnya, membangun URI otpauth:// dan kode QR yang Anda pindai ke aplikasi authenticator; dan ia memverifikasi kode terhadap secret dengan toleransi ±1 langkah waktu, sesuai cara server nyata menerima kode yang baru berputar. Semuanya berjalan melalui Web Crypto API bawaan browser tanpa dependensi dan tanpa panggilan jaringan.
Pengembang sering memakai pembuat TOTP: untuk mereproduksi kode persis yang ditampilkan aplikasi pengguna saat men-debug login 2FA, untuk mencetak secret dan QR bagi akun baru, untuk memastikan jendela verifikasi di server cocok dengan yang dialami pengguna, atau untuk membangun fixture deterministik bagi pengujian end-to-end alur dua faktor. Karena secret adalah kunci berumur panjang — siapa pun yang memilikinya bisa menghasilkan setiap kode di masa depan — ia harus dilindungi seperti kata sandi. Pasangkan alat ini dengan pembuat kata sandi acak kami untuk kata sandi kuat dan kode pemulihan yang berdampingan dengan 2FA, dan dengan pembuat kode QR saat Anda butuh gambar pendaftaran mandiri. Untuk menandatangani JSON Web Token yang sering menumpang di atas sesi terautentikasi, lihat enkoder JWT.
// Generate a TOTP code in the browser with the Web Crypto API
// (SHA-1, 6 digits, 30s period — RFC 6238 defaults)
async function generateTotp(base32Secret, time = Date.now()) {
// Decode the Base32 secret to raw bytes (A-Z, 2-7)
const alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
let bits = '';
for (const c of base32Secret.replace(/=+$/, '').toUpperCase())
bits += alpha.indexOf(c).toString(2).padStart(5, '0');
const bytes = new Uint8Array(
bits.match(/.{8}/g).map((b) => parseInt(b, 2)));
// Counter = number of 30s steps since the Unix epoch (8-byte big-endian)
const counter = Math.floor(time / 1000 / 30);
const msg = new Uint8Array(8);
let c = counter;
for (let i = 7; i >= 0; i--) { msg[i] = c & 0xff; c = Math.floor(c / 256); }
const key = await crypto.subtle.importKey(
'raw', bytes, { name: 'HMAC', hash: 'SHA-1' }, false, ['sign']);
const hmac = new Uint8Array(await crypto.subtle.sign('HMAC', key, msg));
// Dynamic truncation (RFC 4226) -> 6-digit code
const off = hmac[hmac.length - 1] & 0x0f;
const bin = ((hmac[off] & 0x7f) << 24) | (hmac[off + 1] << 16) |
(hmac[off + 2] << 8) | hmac[off + 3];
return (bin % 1_000_000).toString().padStart(6, '0');
}
const code = await generateTotp('JBSWY3DPEHPK3PXP');
// -> a 6-digit code that rotates every 30 seconds Fitur Utama
Kode Langsung dengan Hitung Mundur
Tempelkan secret Base32 dan kode TOTP saat ini muncul seketika dengan cincin hitung mundur 30 detik serta pratinjau kode berikutnya — tanpa tombol Generate, tanpa menunggu.
Setup Secret & QR
Buat secret Base32 acak, lalu dapatkan URI otpauth:// dan kode QR untuk dipindai langsung ke Google Authenticator, Authy, atau 1Password.
Verifikator Kode Bawaan
Periksa kode terhadap secret dengan toleransi ±1 langkah waktu yang sama seperti server nyata, sehingga kode yang baru berputar tetap tervalidasi.
Algoritma & Digit yang Dapat Dikonfigurasi
Beralih antara SHA-1, SHA-256, dan SHA-512, pilih 6 atau 8 digit, dan setel periode 30 atau 60 dtk agar cocok dengan persyaratan penyedia mana pun.
Secret Tidak Pernah Meninggalkan Browser
Setiap kode dihitung secara lokal lewat Web Crypto API bawaan. Tidak ada yang diunggah, dicatat, atau disimpan — terbukti, bahkan saat offline.
Tanpa Dependensi
Dibangun hanya di atas Web Crypto API browser — tanpa pustaka pihak ketiga, tanpa telemetri, dan tanpa panggilan jaringan apa pun.
Contoh Pembuat TOTP
TOTP Standar 6 Digit (SHA-1, 30 dtk)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-1 digits: 6 period: 30s
Code: 282760 · expires in 30s
Secret uji kanonik RFC 6238 dengan pengaturan default yang dipakai setiap aplikasi arus utama — SHA-1, 6 digit, periode 30 detik. Kode bersifat berbasis waktu, jadi nilai pastinya bergantung pada waktu saat ini; alat menampilkan hitung mundur langsung dan kode berikutnya.
TOTP Enterprise 8 Digit (SHA-256)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-256 digits: 8 period: 30s
Code: 31094217 · expires in 30s
Beberapa sistem enterprise dan berkeamanan tinggi mengeluarkan kode 8 digit yang ditandatangani dengan SHA-256 alih-alih default SHA-1. Cocokkan algoritma, jumlah digit, dan periode persis seperti yang diharapkan server Anda, atau kode yang dihasilkan tidak akan tervalidasi.
URI Setup otpauth:// untuk Aplikasi Authenticator
issuer: Acme account: alice@example.com secret: JBSWY3DPEHPK3PXP
otpauth://totp/Acme:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Acme&algorithm=SHA1&digits=6&period=30
Alat membangun URI otpauth:// standar dan menampilkannya sebagai kode QR. Pindai dengan Google Authenticator, Authy, atau 1Password — atau tempelkan URI langsung — untuk mendaftarkan secret di perangkat Anda.
Cara Menggunakan Pembuat TOTP
- 1
Tempelkan Secret Base32
Di tab Generate, tempelkan secret Base32 Anda (misalnya JBSWY3DPEHPK3PXP). Kode TOTP saat ini muncul seketika dengan hitung mundur 30 detik — tanpa tombol Generate.
- 2
Sesuaikan Opsi Lanjutan (opsional)
Buka opsi lanjutan untuk mengubah algoritma (SHA-1/256/512), jumlah digit (6 atau 8), atau periode (30 atau 60 dtk) agar cocok dengan yang dikeluarkan penyedia Anda.
- 3
Setup atau Verify
Gunakan tab Setup untuk membuat secret dan QR bagi aplikasi authenticator, atau tab Verify untuk memeriksa kode terhadap secret dengan toleransi ±1 langkah waktu.
Kesalahan Umum
Algoritma atau Digit Tidak Cocok
Secret yang dikeluarkan untuk SHA-256 atau 8 digit menghasilkan kode yang sepenuhnya berbeda di bawah default SHA-1 / 6 digit. Cocokkan parameter penyedia persis.
secret + SHA-1/6 digits // but server expects SHA-256/8
algorithm: SHA-256, digits: 8 // match the otpauth:// URI
Pergeseran Jam
Jika jam perangkat meleset lebih dari satu langkah waktu, kode tidak akan tervalidasi. Sinkronkan jam sistem sebelum membandingkan kode.
system clock 90s fast // code is two steps ahead
enable NTP / automatic time // code aligns with server
Secret Base32 Tidak Valid
Base32 hanya memakai A–Z dan 2–7. Spasi dari kunci tercetak tidak masalah, tetapi 0, 1, atau 8 bukan Base32 yang valid dan akan gagal didekode.
secret: "JBSW 0NE8" // contains 0 and 8
secret: "JBSWY3DPEHPK3PXP" // valid Base32
Kasus Penggunaan Umum
- Men-debug Alur Login 2FA
- Reproduksi kode persis yang ditampilkan aplikasi authenticator pengguna, sehingga Anda dapat menelusuri alasan masuk dua faktor ditolak.
- Mendaftarkan Akun Baru
- Buat secret Base32 dan kode QR baru, lalu pindai ke Google Authenticator, Authy, atau 1Password untuk menyiapkan 2FA.
- Memvalidasi Jendela Server Anda
- Verifikasi kode terhadap secret untuk memastikan backend Anda menerima kode yang baru berputar dan menolak yang sudah kedaluwarsa.
- Membangun Fixture Pengujian End-to-End
- Hitung kode TOTP deterministik dari secret yang diketahui untuk menggerakkan pengujian otomatis alur autentikasi dua faktor.
- Mencocokkan Pengaturan Enterprise
- Reproduksi kode 8 digit atau SHA-256 saat penyedia menyimpang dari default SHA-1 / 6 digit, untuk men-debug ketidakcocokan.
- Memulihkan Akses dengan Cepat
- Buat kode saat ini dari secret yang dicadangkan ketika ponsel Anda tidak tersedia — menggunakan salinan sekali pakai dari secret.
Detail Teknis
- Patuh RFC 6238 / RFC 4226
- Mengimplementasikan TOTP sesuai RFC 6238 di atas algoritma pemotongan dinamis HOTP dari RFC 4226, dengan SHA-1, SHA-256, dan SHA-512 yang dapat dipilih.
- HMAC Web Crypto Bawaan
- Kode diturunkan lewat HMAC crypto.subtle atas penghitung langkah waktu big-endian. Dekode Base32 dan pemotongan berjalan sepenuhnya di browser.
- URI otpauth:// Standar, Tanpa Dependensi
- URI setup mengikuti Key Uri Format (otpauth://totp) dengan parameter issuer, algoritma, digit, dan periode. Tanpa pustaka eksternal, tanpa panggilan jaringan.
Praktik Terbaik
- Perlakukan Secret Seperti Kata Sandi
- Siapa pun yang memiliki secret Base32 bisa menghasilkan setiap kode di masa depan. Simpan di pengelola secret, jangan pernah di kontrol sumber, dan utamakan secret uji di sini.
- Jaga Jam Tetap Sinkron
- TOTP bergantung pada waktu yang akurat. Aktifkan sinkronisasi waktu jaringan di server dan perangkat agar kode selaras dalam jendela verifikasi.
- Tetap pada Default Kecuali Diperlukan
- SHA-1, 6 digit, dan periode 30 detik memaksimalkan kompatibilitas aplikasi. Beralih ke 8 digit atau SHA-256/512 hanya saat penyedia Anda mewajibkannya.
FAQ Pembuat TOTP / 2FA
Apakah pembuat TOTP / 2FA online aman digunakan?
otpauth://, dan kode yang dihasilkan semuanya dihitung secara lokal dengan Web Crypto API bawaan. Tidak ada permintaan jaringan, tidak ada pencatatan, tidak ada penyimpanan, dan tidak ada analitik yang terkait dengan input Anda — Anda dapat memverifikasi ini dengan memutus koneksi internet dan melihat alat tetap berjalan. Itu kebalikan dari pembuat mencurigakan yang mengirim (POST) secret Anda ke server, di mana operatornya bisa mencetak kode Anda selamanya. Secret TOTP adalah kunci bersama berumur panjang, jadi kebiasaan teraman tetaplah memilih secret sekali pakai atau uji ketika Anda hanya perlu bereksperimen. Apa itu TOTP dan apa itu secret Base32?
JBSWY3DPEHPK3PXP adalah secret uji RFC yang terkenal. Mengapa kode yang dihasilkan berbeda dari aplikasi authenticator di ponsel saya?
Apa perbedaan antara TOTP dan HOTP?
Bisakah saya memakai kode 8 digit atau SHA-256 / SHA-512?
otpauth:// yang dibuat alat mencatat parameter tersebut agar aplikasi Anda mendaftarkan secret dengan benar. Bagaimana cara menambahkan secret ini ke Google Authenticator, Authy, atau 1Password?
otpauth://. Di Google Authenticator atau Authy, ketuk tombol tambah dan pilih Pindai kode QR untuk mengarahkan kamera ke kode QR di layar, atau pilih Masukkan kunci setup dan tempelkan secret Base32 dengan nama akun dan algoritma yang cocok. Di 1Password, edit item login, tambahkan kolom One-Time Password, dan tempelkan URI otpauth:// langsung. Perlu gambar QR mandiri untuk dokumentasi? Gunakan pembuat kode QR kami, dan untuk secret acak serta kode pemulihan di sekitarnya, gunakan pembuat kata sandi acak. Alat Terkait
Lihat semua alat →Generator & Verifier Hash Bcrypt
Alat Keamanan
Buat dan verifikasi hash kata sandi bcrypt online — biaya yang dapat diatur, prefiks $2b$/$2a$/$2y$. 100% di browser Anda; kata sandi tidak pernah diunggah.
JWT Decoder
Alat Keamanan
Dekode token JWT online dengan dekoder JWT gratis kami. Periksa header, payload, tanda tangan, kedaluwarsa, dan klaim secara instan. 100% browser — token Anda tidak meninggalkan perangkat. Tanpa pendaftaran, tanpa pelacakan.
JWT Encoder & Generator
Alat Keamanan
Generator & encoder JWT online gratis. Susun header dan payload, tandatangani dengan HS256, RS256, atau ES256 secara instan. 100% di browser — secret dan key Anda tidak pernah meninggalkan perangkat.
Generator JWT Secret Gratis — HS256/384/512
Alat Keamanan
Buat JWT secret kuat sesuai RFC untuk HS256/384/512 — 100% di browser, tak pernah dikirim ke server. base64url, base64, atau hex; salin untuk .env.
MD5 Hash Generator & Alat Checksum File
Alat Keamanan
Hasilkan hash MD5, SHA-256, SHA-1 & SHA-512 secara online gratis. Hash teks atau file di browser Anda, verifikasi checksum dan salin hasil. Tanpa pendaftaran.
Generator Kata Sandi Acak Online — Kuat, Aman & Gratis
Alat Keamanan
Buat kata sandi acak yang kuat secara instan — gratis, tanpa pendaftaran, 100% di browser. Sesuaikan panjang & karakter, batch hingga 50 dengan analisis entropi.