Hash oluştur
Şifreyi doğrula
Hesaplama tarayıcınızda yapılır; şifre ve hash gönderilmez. Hash $2b$ sürümüyle üretilir; $2a$ ve $2y$ hash'leri de doğrulanabilir. Bcrypt şifrenin yalnızca ilk 72 baytını kullanır. Maliyet 1 arttıkça süre iki katına çıkar. Gerçek kullanıcı şifrelerini bir web sayfasına yazmak yerine bu aracı test ve öğrenme amacıyla kullanın.
Kısaca cevap
Hash oluştur bölümünde şifreyi yazıp maliyeti (cost) seçin; araç $2b$10$... biçiminde 60 karakterlik bir bcrypt hash üretir. Şifreyi doğrula bölümünde ise bir hash ile şifreyi yan yana koyup eşleşip eşleşmediğini görürsünüz. Bcrypt geri çözülemez; doğrulama, şifreyi hash içindeki tuz ve maliyetle yeniden hesaplayıp karşılaştırarak yapılır. Hesaplama tarayıcınızda yapılır.
Bu sayfada
Nasıl kullanılır?
- Hash oluştur: Şifreyi yazın, maliyeti seçin ve düğmeye basın. Her seferinde yeni bir rastgele tuz kullanıldığı için aynı şifre her seferinde farklı bir hash verir.
- Doğrula: Veritabanınızdaki veya kodunuzdaki hash’i ve şifreyi girip Doğrula’ya basın. “Doğrulamaya aktar”, az önce ürettiğiniz hash’i ve şifreyi doğrulama bölümüne taşır.
- Şifre kutusunun altındaki sayaç, şifrenin kaç bayt tuttuğunu gösterir. Bcrypt yalnızca ilk 72 baytı kullanır; Türkçe harfler UTF-8’de 2 bayt tutar.
Bcrypt hash’in parçaları
Örnek: $2b$10$N9qo8uLOickgx2ZMRZoMye6uFviiCj1boimH7CrvH.jbBcNG6PGPO
| Parça | Örnekte | Anlamı |
|---|---|---|
| Sürüm | $2b$ | Algoritma sürümü. $2a$ ve PHP’nin $2y$ sürümü de aynı şekilde doğrulanır. |
| Maliyet | 10 | 210 = 1.024 tur anahtar genişletme yapılır. |
| Tuz | N9qo8uLOickgx2ZMRZoMye | 22 karakter, 16 bayt rastgele değer. |
| Özet | son 31 karakter | Şifre, tuz ve maliyetten hesaplanan sonuç. |
Tuz hash’in içinde saklandığı için ayrıca bir yere kaydetmeniz gerekmez; doğrulama sırasında hash’ten okunur.
Maliyet (cost) kaç olmalı?
Maliyet 1 arttığında hesaplama süresi iki katına çıkar. Amaç, sizin sunucunuzda giriş başına kabul edilebilir (ör. 100–300 milisaniye) ama milyarlarca tahmin yapmak isteyen saldırgan için çok pahalı bir süre seçmektir. PHP’nin password_hash fonksiyonu varsayılan olarak 10 kullanır; OWASP de bcrypt için en az 10 önerir. Sunucunuz güçlüyse 11–12 seçebilirsiniz. Aracın gösterdiği süre tarayıcınızdaki süredir; sunucudaki süre farklı olabilir, karar vermeden önce kendi sunucunuzda ölçün.
Bcrypt neden şifre saklamak için kullanılır?
MD5 ve SHA-256 gibi genel amaçlı özetler çok hızlıdır; bu, sızmış bir veritabanındaki şifrelerin ekran kartlarıyla saniyede milyarlarca tahminle denenebilmesi demektir. Bcrypt bilerek yavaştır, her şifreye ayrı tuz kullanır ve maliyeti donanım hızlandıkça artırılabilir. Daha yeni bir seçenek olan Argon2 ile karşılaştırmayı bcrypt ve Argon2 ile şifre saklama yazısında yaptık. Kodda kullanım için PHP password_hash, Python bcrypt ve Node.js bcrypt rehberlerine bakabilirsiniz.
Dikkat edilecekler
- Bcrypt geri çözülemez. “Bcrypt decoder” diye bir şey yoktur; yalnızca bir şifrenin hash’le eşleşip eşleşmediği denenebilir.
- 72 bayt sınırı: 72 bayttan uzun şifrelerin geri kalanı yok sayılır. Çok uzun parolalara izin veriyorsanız bunu hesaba katın.
- Gerçek kullanıcı şifrelerini web araçlarına yazmayın. Bu araç geliştirme, test ve öğrenme içindir.
Sık sorulan sorular
Bcrypt hash nasıl oluşturulur?
Hash oluştur bölümüne şifreyi yazın, maliyeti seçin ve Hash oluştur düğmesine basın. Araç $2b$ ile başlayan 60 karakterlik bir bcrypt hash üretir.
Bcrypt hash çözülebilir mi?
Hayır. Bcrypt tek yönlüdür; hash’ten şifre geri elde edilemez. Yalnızca bir şifrenin hash ile eşleşip eşleşmediği, şifre yeniden hesaplanarak kontrol edilebilir.
Aynı şifre neden her seferinde farklı hash veriyor?
Her hash’te yeni bir rastgele tuz kullanılır ve tuz hash’in içine yazılır. Bu sayede aynı şifreyi kullanan iki kullanıcının hash’leri farklı olur; doğrulama yine de her ikisinde başarılı olur.
$2a$, $2b$ ve $2y$ arasındaki fark nedir?
Üçü de bcrypt’tir. $2b$ güncel sürümdür; $2a$ eski bir uygulama hatası nedeniyle ayrıştırılmış, $2y$ ise PHP’nin aynı düzeltme için kullandığı öneklerdir. Bu araç üçünü de doğrular.
Bcrypt cost değeri ne olmalı?
Yaygın varsayılan 10’dur ve OWASP en az 10 önerir. Sunucunuzda bir giriş kontrolü yaklaşık 100–300 milisaniye sürecek en yüksek değeri seçmek iyi bir yaklaşımdır.



