# Berapa lama kata sandimu benar-benar bertahan

> Yang menentukan berapa lama sebuah kata sandi bertahan bukan kata sandinya: melainkan hash yang dipakai situs untuk menyimpannya. Dan soal itu tak ada yang memberitahumu saat mendaftar.

2026-03-04 · David Carrero · password.es
Original: https://password.es/id/blog/berapa-lama-kata-sandimu-benar-benar-bertahan/

---

Ketika sebuah situs bilang kata sandimu butuh *tiga juta tahun* untuk dibobol, ia
sedang menghilangkan bagian terpenting dari kalimatnya. Pertanyaan yang benar
bukan berapa lama. Melainkan **berapa lama melawan apa**.

Dan jawaban atas *melawan apa* bukan kamu yang menentukan. Yang menentukan adalah
seorang pengembang di toko online tempat kamu membeli sepatu tahun 2019, waktu ia
memilih cara menyimpan kata sandimu di basis datanya. Kamu mengetik untaian dua
puluh karakter yang sama persis di kedua tempat. Di satu tempat ia bertahan
berabad-abad, di tempat lain ia jatuh sebelum jam makan siang.

## Angka yang hilang dari persamaan

Serangan brute force adalah aritmetika kelas dasar: jumlah kandidat yang harus
dicoba, dibagi jumlah kandidat yang bisa dicoba per detik. Faktor pertama
bergantung pada kata sandimu — panjangnya, alfabetnya, ada atau tidaknya ia di
kamus. Faktor kedua **sama sekali tak ada hubungannya denganmu**.

Faktor kedua bergantung pada dua hal: perangkat keras si penyerang dan, terutama,
fungsi yang dipakai situs untuk mengubah kata sandimu menjadi rentetan karakter
yang tersimpan di tabel penggunanya. Fungsi itu namanya *hash*, dan tidak semuanya
sama mahalnya untuk dihitung.

MD5 dan SHA-1 dirancang agar cepat. Itu keunggulan: keduanya fungsi hash serbaguna,
dibuat untuk meringkas pesan dan memeriksa integritas, dan di sana yang kamu mau
adalah memproses satu gigabyte tanpa sempat berdiri ambil kopi dulu. Begitu ada
yang memakainya untuk menyimpan kata sandi, keunggulan itu berubah jadi
masalahnya. Fungsi yang bisa kamu hitung jutaan kali per detik adalah fungsi yang
**bisa juga dihitung si penyerang jutaan kali per detik** — dan dia punya kartu
grafis serta akhir pekan penuh.

bcrypt dan Argon2 dirancang dengan tujuan sebaliknya. Keduanya lambat dengan
sengaja, dan — ini bagian eleganya — lambatnya bisa diatur. Niels Provos dan David
Mazières memperkenalkan bcrypt pada 1999 dengan judul yang sudah mengatakan
semuanya: *A Future-Adaptable Password Scheme*. Gagasannya, fungsi itu bisa
dibikin makin mahal seiring tahun, mengikuti ritme makin murahnya perangkat keras.
Argon2, yang memenangi Password Hashing Competition pada 2015, menambah satu
putaran lagi: ia tak cuma memakan waktu, ia memakan **memori**, yang justru paling
tidak berlimpah di tangan GPU.

Antara hash cepat dan hash lambat yang dikonfigurasi dengan benar, selisihnya
bukan soal persentase. Selisihnya orde besaran. Banyak.

## Benchmark-nya ada, dan terbuka untuk umum

Semua ini bukan spekulasi. *Hashcat*, alat yang dipakai separuh dunia untuk
membobol kata sandi — termasuk pihak yang baik — punya mode benchmark yang bisa
dijalankan siapa saja di mesinnya sendiri, dan yang mengukur, algoritme demi
algoritme, berapa kali per detik masing-masing bisa dihitung. Komunitasnya
menerbitkan tabel-tabel itu setiap kali ada GPU baru keluar.

Yang menarik dari tabel-tabel itu bukan angka tertentu mana pun — yang lagi pula
kedaluwarsa tiap generasi perangkat keras — melainkan **jarak antarbarisnya**. Kamu
urutkan daftarnya berdasarkan kecepatan dan MD5 ada di paling atas, di planetnya
sendiri. Kamu turun terus, dan di dasar tabel ada bcrypt dan Argon2, dengan angka
yang sama sekali tak mirip. Kata sandinya sama. GPU-nya sama. Satu-satunya yang
berubah adalah bagaimana situs itu memutuskan menyimpannya.

Karena itulah "3 juta tahun" tanpa menyebut melawan hash apa adalah pemasaran,
bukan pengukuran. Sama seperti mengiklankan bahwa mobilmu butuh enam jam untuk
sampai tanpa menyebutkan tujuannya.

## Offline dan online: dua dunia yang tak bersentuhan

Ada pembedaan kedua yang hampir tak pernah dijelaskan orang dan yang mengubah
hasilnya sama brutalnya.

Dalam serangan **online**, penyerang mencoba kata sandi lewat formulir masuk,
seperti pengguna biasa. Ritmenya bukan ditentukan perangkat kerasnya: ditentukan
servernya. Bisa ada batas percobaan, penguncian sementara, *captcha*, jeda antar
permintaan, peringatan begitu terdeteksi seribu kegagalan dari satu alamat yang
sama. Melawan situs yang dipertahankan dengan layak, serangan online itu lambat,
berisik, dan cukup bodoh. Aritmetikanya begitu buruk bagi si penyerang sampai
brute force murni nyaris tak dicoba: yang dilakukan adalah mencoba empat kata
sandi paling klasik itu terhadap jutaan akun, dan itu permainan lain.

Dalam serangan **offline**, penyerang sudah memegang salinan basis datanya. Dia
bawa pulang. Di sana tak ada server, tak ada batas percobaan, tak ada yang
mengawasi: yang ada kartu-kartu grafisnya dan tagihan listriknya. Dia bisa mencoba
berbulan-bulan tanpa ada yang tahu, dan dia akan tahu sendiri kapan dia berhasil,
dengan membandingkan hash. Di sinilah hash menentukan segalanya, karena hash
harfiah satu-satunya yang menahannya.

Dan perlu jujur soal peluangnya: skenario offline itu tidak eksotis. Itu yang
terjadi setiap kali sebuah basis data bocor. Waktu LinkedIn kehilangan basis
datanya pada 2012, analisis atas salinan yang bocor menunjukkan bahwa mereka
menyimpan kata sandi dengan SHA-1 **tanpa garam**: hash cepat, tanpa bahan yang
mencegah orang menghitung tabel di muka. Bahwa begitu banyak yang jebol dan
secepat itu bukan cuma soal pengguna yang memilih dengan buruk. Itu, terutama,
sebuah keputusan rekayasa yang tak pernah dilihat pengguna mana pun.

## Apa yang kami lakukan di sini, dan mengapa kami mengatakannya

[Pemeriksa](/id/pemeriksa/) kami mengasumsikan **10¹² percobaan per detik,
offline, melawan hash cepat**. Itu tertulis di halamannya sendiri, di bawah
hasilnya, dan bukan demi transparansi hiasan: tanpa data itu, waktu yang
ditampilkannya tak berarti apa-apa.

Itu memang sengaja kasus terburuk. Kami mengasumsikan basis datanya sudah bocor,
penyerangnya punya perangkat keras serius, situsnya menyimpan kata sandimu dengan
cara terburuk yang masih masuk akal, dan dia bahkan tahu alfabet serta panjangnya.
Kalau situsnya memakai bcrypt yang dikonfigurasi dengan benar, angka sebenarnya
naik banyak orde besaran dan kata sandimu bertahan jauh lebih lama daripada yang
kami katakan.

Kami lebih suka keliru ke arah itu. **Pemeriksa yang memberimu selamat sedang
memberi selamat kepada dirinya sendiri.**

## Kesimpulan yang tak enak didengar

Kata sandimu tidak punya satu waktu pembobolan. Ia punya waktu pembobolan *untuk
setiap situs tempat kamu memakainya*, dan waktu itu ditetapkan orang-orang yang
tak kamu kenal dengan kriteria yang tak mereka terbitkan.

Dari situ ada dua hal yang bisa disimpulkan, dan itu-itu juga. Pertama: karena
kamu tak bisa mengendalikan hash-nya, **kendalikan entropinya**, yaitu separuh
persamaan yang memang milikmu — makanya [generator](/id/) menunjukkan bit kepadamu,
bukan persentase yang ramah. Kedua, dan lebih penting: kalau tiap situs punya kata
sandinya sendiri, yang menyimpannya dengan MD5 cuma bisa menghadiahkan kata sandi
situs itu saja.

Karena mata rantai terlemah bukan kata sandimu. Melainkan situs terburuk tempat
kamu pernah mengetiknya.

---

*Sumber: benchmark publik hashcat (`hashcat -b`), bisa diperiksa dan direproduksi ·
N. Provos dan D. Mazières, "A Future-Adaptable Password Scheme", USENIX, 1999 ·
Password Hashing Competition, dimenangi Argon2 pada 2015 · model ancaman yang
dinyatakan di pemeriksa password.es: 10¹² percobaan/detik, offline, hash cepat ·
kebocoran LinkedIn 2012: perusahaannya mengonfirmasi kebocoran itu, dan penggunaan
SHA-1 tanpa garam dipastikan lewat analisis atas salinan yang dipublikasikan.*
