Bcrypt
Algoritma hashing password yang lambat sengaja untuk melawan brute force.
Bcrypt adalah algoritma password hashing yang dirancang khusus untuk lambat — sengaja. Hashing adalah proses satu arah: password diubah jadi string acak yang tidak bisa dikembalikan ke password asli. Bcrypt menggunakan salt (random value) untuk memastikan password yang sama menghasilkan hash yang berbeda. Faktor cost (salt rounds) menentukan seberapa lambat proses hashing — bisa di-adjust seiring hardware menjadi lebih cepat (10 rounds ~ 100ms, 12 rounds ~ 400ms). Lambatnya bcrypt melindungi dari brute force attack (mencoba jutaan password) karena setiap percobaan memakan waktu. Alternatif modern: Argon2 (winner Password Hashing Competition 2015), scrypt.
Contoh Kode
import { hash, compare } from 'bcrypt';
// Hash password (12 rounds)
const hashedPassword = await hash('password123', 12);
// Hasil: $2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/LewKyNiAYMyzJ/IqG
// Verifikasi
const isMatch = await compare('password123', hashedPassword); // true