Parol bazasi modeli
Server parolning o‘zini saqlamasligi kerak. Maxsus password hasher salt va hisoblash xarajatidan foydalanadi. Salt har bir yozuv uchun noyob, maxfiy bo‘lishi shart emas; oldindan hisoblangan jadvallar samaradorligini kamaytiradi.
Frameworkdan foydalaning
Django User.set_password va check_password ishlating. O‘z parol protokoli yoki kriptografik algoritmingizni yasamang. Xarajat parametri apparat va ishlash talabiga mos tanlanadi, vaqt o‘tishi bilan yangilanadi. Misolda bcrypt turli salt bilan turli hash yaratadi; platforma Django’ning standart hasheridan foydalanadi. bcrypt kirishi 72 baytdan oshmasligi kerak; haqiqiy tizimda framework siyosatini qo‘llang.
Kirish himoyasi
Uzun parol, ommabop parollarni rad etish, rate limit va imkon bo‘lsa MFA qo‘shiladi. Parolni log, email yoki URL’da yubormang. Reset link qisqa muddatli, bir martalik va taxmin qilib bo‘lmaydigan bo‘lsin. Parol uzunligi yolg‘iz o‘zi kuchlilikning to‘liq o‘lchovi emas.
Python’da ko‘rib chiqamiz
import bcrypt
password = b"synthetic-training-password"
a = bcrypt.hashpw(password, bcrypt.gensalt(rounds=4))
b = bcrypt.hashpw(password, bcrypt.gensalt(rounds=4))
print(a == b)
# rounds=4 faqat tez o‘quv namoyishi; production parametri emas.
# Lokal muhit: python3 -m pip install bcrypt==5.0.0Misolni
Mustaqil mashq
Bir xil parol va turli salt natijalarini solishtiring. Django’da make_password/check_password bilan lokal misol yozing. Real parolingizdan foydalanmang.