Parolni saqlashda har xil yondashuvlar bor. MD5/SHA-1 eskirgan, xavfsiz emas. Bugun yagona to'g'ri yo'l β modern hashing algoritmlari.
Nima uchun shunchaki hash yetmaydi?
MD5(password) β buzilgan. Rainbow tables β minglab umumiy parol hashlarini tezda topadi. Brute force GPU bilan β soatlar.
bcrypt β sinov o'tgan
1999'dan beri. Sekin (parol tekshirish 100ms+) β brute force qiyin. Cost parametri: 12 (default) yoki 14 (xavfsizroq, sekinroq).
PHP'da
$hash = password_hash($pass, PASSWORD_BCRYPT, ['cost' => 12]). Tekshirish: password_verify($pass, $hash).
Argon2 β 2015 yutuq
Password Hashing Competition g'olibi. bcrypt'dan xavfsizroq. GPU/ASIC hujumga qarshi. PASSWORD_ARGON2ID yoki ARGON2I.
Salt
Avtomatik. Har parol uchun unikal salt β bir xil parol β har xil hash. Rainbow tables ish bermaydi.
Pepper (server secret)
Application secret β DB'da emas, kod yoki .env'da. DB tanlansa ham parol ochilmaydi.
Rehashing
Vaqt o'tib cost oshiriladi. password_needs_rehash() bilan eski hashlarni yangilash.
2FA
Parol kuchli emas β har doim 2FA qo'shing. SMS, authenticator, hardware key.
Nima bo'lmasin?
MD5, SHA-1, SHA-256 (faqat) β eskirgan. Encryption (decrypt mumkin) β parol uchun emas. Plain text β albatta yo'q.