Ne işe yarar
bcrypt, kasıtlı olarak yavaş tasarlanmış bir parola hash fonksiyonudur. Saniyede milyarlarca kez hesaplanabilen MD5 veya SHA-256’nın aksine bcrypt’in ayarlanabilir bir maliyeti vardır ve veritabanınızı çalan bir saldırganın her tahminini pahalı hâle getirir. Argon2 ve scrypt ile birlikte parolaları saklamak için hâlâ en yaygın seçeneklerden biridir.
Bu araç iki şey yapar:
- Hash oluştur: parolayı seçtiğiniz maliyet ve sürüm önekiyle bcrypt hash’ine dönüştürür.
- Doğrula: bir parolanın, örneğin veritabanınızdaki veya bir framework’ün seed dosyasındaki mevcut bir bcrypt hash’iyle eşleşip eşleşmediğini kontrol eder.
Nasıl kullanılır
- Bir Parola yazın veya Örnek’e tıklayın.
- Hash oluştur modunda Maliyet ve Sürüm seçin. Hash hemen görünür; başka bir tane için Yeni salt’a tıklayın.
- Doğrula modunda Kontrol edilecek bcrypt hash’ini yapıştırın. Sonuç, parolanın eşleşip eşleşmediğini gösterir.
Bir bcrypt hash’ini okumak
$2b$10$./3kakECWB0QfIgYzIqciuv449HNnwGbgExtJQQwQ1MofonthOdoK gibi bir hash dört parçadan oluşur: sürüm 2b, maliyet 10 (2¹⁰ tur anahtar hazırlığı), 22 karakterlik salt ve 31 karakterlik sağlama değeri. Sunucunun daha sonra parolayı doğrulamak için ihtiyaç duyduğu her şey bu tek dizededir; bu yüzden yalnızca hash’i saklarsınız.
Bilinmesi gereken sınırlar
bcrypt bir parolanın yalnızca ilk 72 baytını okur. Daha uzun parolalar veya çok sayıda ASCII dışı karakter içeren parolalar (UTF-8’de her biri 2–4 bayt) sessizce kesilir. Bu olduğunda araç sizi uyarır. Çok uzun parola cümlelerini kabul etmeniz gerekiyorsa önce bir ön hash uygulayın veya Argon2id’yi düşünün.
SSS
› Aynı parola için neden her seferinde farklı bir hash alıyorum?
Her hash, hash’in içinde saklanan yeni ve rastgele 16 baytlık bir salt kullanır. Bu bilinçli bir tasarımdır; aynı parolalar aynı hash’i üretmez. Bir parolayı kontrol etmek için hash dizelerini karşılaştırmak yerine Doğrula’yı kullanın.
› Hangi maliyeti seçmeliyim?
Sunucunuzun her girişte kaldırabileceği en yüksek maliyeti seçin; bugün genellikle 10 ile 12 arasıdır. Her adım işi iki katına çıkarır. Üretim donanımınızda ölçün; hash başına 100–300 ms yaygın bir hedeftir.
› $2a$, $2b$ ve $2y$ arasındaki fark nedir?
Algoritma aynıdır. $2b$ OpenBSD’nin güncel önekidir, $2y$ PHP’nin password_hash fonksiyonunun yazdığı önektir, $2a$ ise eskisidir. Çoğu kütüphane üçünü de kabul eder; sisteminizin beklediğini seçin.
› Parolam bir yere gönderiliyor mu?
Hayır. Hash’leme ve doğrulama tarayıcınızda çalışır. Parola ve kontrol edilen hash yalnızca bu sayfanın belleğinde tutulur; kaydedilmez ve paylaşım bağlantılarına eklenmez.