htmlcssjavascriptkeamananutilitasPemula9 mnt baca

Generator Kata Sandi

Membangun generator password acak dengan pengaturan panjang dan jenis karakter.

Kenapa Generator Password?

Password kuat itu panjang dan acak, tapi manusia buruk dalam membuat keacakan. Generator menyelesaikan masalah nyata sekaligus mengajarkan: random, string building, dan indikator kekuatan.

Langkah Membangun

HTML: Tampilan password (dengan tombol salin dan refresh), slider panjang (8-32), checkbox: huruf besar, angka, simbol, dan indikator kekuatan.

CSS: Tampilan password dalam font monospace besar. Indikator kekuatan sebagai 4 segmen bar yang terisi sesuai skor.

JS:

  1. Kumpulan karakter per jenis: lowercase selalu, uppercase/angka/simbol opsional.
  2. buatPassword(): loop sebanyak panjang, ambil karakter acak dengan Math.floor(Math.random() * kumpulan.length).
  3. Pastikan minimal satu karakter dari tiap jenis yang dipilih (ambil satu dulu, lalu acak urutannya).
  4. Skor kekuatan: berdasarkan panjang + variasi jenis. Tampilkan "Lemah/Sedang/Kuat/Sangat Kuat".

Catatan Keamanan Jujur

Math.random() TIDAK aman untuk kriptografi. Untuk password sungguhan, gunakan crypto.getRandomValues(). Modul ini memakai Math.random agar mudah dipahami, tapi sebutkan batasannya: inilah kejujuran teknis yang penting.

Kesalahan Umum

  • Karakter jenis terpilih tidak dijamin muncul (atasi dengan forced pick lalu shuffle).
  • Panjang slider tidak sinkron dengan label (update di satu fungsi).
  • Lupa mengecualikan karakter ambigu (l, 1, O, 0) yang membingungkan pengguna.
Live Playground
export default function App(): JSX.Element {
  return <h1>Hello world</h1>
}

Edit kode di kiri, preview kanan ter-update otomatis.

Tantangan

Tantangan: Passphrase Kata

Tambahkan mode "Passphrase": gabungkan 4 kata Indonesia acak dengan pemisah (misal "kucing-terbang-42-biru"). Sediakan daftar 50 kata di JS.