Latihan 1: 2FA dengan TOTP — Auth

Latihan 1 dari materi 2FA dengan TOTP di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Buat simulasi TOTP sederhana (bukan implementasi RFC nyata, tapi mensimulasikan konsepnya):

  1. generateTotp(secret, timestamp):

    • Hitung time window: Math.floor(timestamp / 30)
    • Kombinasikan: (secret * 7 + timeWindow * 13) % 1000000
    • Return string 6 digit dengan leading zeros (e.g. "042891")
  2. verifyTotp(secret, code, timestamp):

    • Cek window saat ini dan 1 window sebelum/sesudahnya (window -1, 0, +1)
    • Return true jika code cocok dengan salah satu window, false jika tidak

Gunakan timestamp dalam detik (bukan milidetik).

Hint