bcrypt Hash Oluşturucu
Hash oluştur
Daha yüksek = daha yavaş ve daha güvenli. 12 iyi bir varsayılandır.
Bazen eski bir yedekten gelen bcrypt hash’iniz ve düz metin bir parolanız olur; eşleşip eşleşmediklerini bilmeniz gerekir. Ya da elinizde bir parola vardır ve belirli bir cost faktörünün üreteceği hash’i istersiniz. Bu araç ikisini de yapar: bir parola yazınca taze hash üretir, hash ve aday parola yapıştırınca doğrulamanın başarılı olup olmadığını söyler — üretim ortamındaki giriş kontrolüyle aynı constant-time karşılaştırmayı kullanarak.
bcrypt üretme veya doğrulama
-
1
Bir mod seçin
Paroladan yeni hash üretin veya parolayı mevcut `$2a$` / `$2b$` / `$2y$` hash'ine karşı doğrulayın.
-
2
Üretme için: düz metin ve cost girin
Cost 4-14; 10-12 normaldir. Her hash için 16-byte rastgele salt oluşturulur.
-
3
Doğrulama için: hash ve düz metni yapıştırın
Araç salt ve cost değerini hash'ten çıkarır ve düz metni aynı parametrelerle yeniden hash'ler.
-
4
Sonucu okuyun
Üretme modu 60 karakterlik hash'i kopyalar; doğrulama modu yeşil eşleşme veya kırmızı uyuşmazlık döndürür.
Doğrulama modunun iç işleyişi
Şöyle saklanmış bir hash verildiğinde:
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
Doğrulayıcı:
- Sürümü (
2b), cost’u (12), salt’ı (cost’tan sonraki ilk 22 karakter) ve digest’i (son 31 karakter) parse eder. - Aday düz metin üzerinde çıkarılan salt ve cost ile bcrypt’i yeniden çalıştırır.
- Ortaya çıkan digest’i constant-time karşılaştırma kullanarak orijinaliyle karşılaştırır.
Başarılı karşılaştırma true; herhangi bir fark false üretir.
Constant-time karşılaştırma
İki stringi saf == ile karşılaştırmak, bir byte farklı olduğu anda döner — yeterince örnekle hash’i basamak basamak sızdırabilen bir timing side channel. Üretim parolası kontrolleri (ve bu araç), her zaman her byte’ı inceleyen constant-time karşılaştırma kullanır; bu yüzden karar süresi kaç baştaki byte’ın eşleştiğine bağlı değildir.
Yaygın tanı durumları
| Belirti | Olası neden |
|---|---|
| Doğrulama başarısız, paroladan eminsiniz | Girdide sondaki boşluk veya BOM. İkisini de temizleyin. |
Doğrulama başarısız, sürüm 2y |
Bazı kütüphaneler 2y sevmez; geçerli ve uyumludur. İleriye dönük 2b ile yeniden hash’leyin. |
| Hash çok kısa / bozuk | bcrypt hash’i değil. MD5 32 hex karakterdir, SHA-1 40, bcrypt ise $ ayraçlarıyla 60 karakterdir. |
| Cost uyuşmazlığı uyarısı | Saklanan cost, politika minimumunuzun altında. Bir sonraki başarılı girişte yeniden hash’leyin. |
Girişte yeniden hash’leme
En iyi uygulama: kullanıcı başarılı giriş yaptığında, saklanan hash’in cost değerinin güncel politikanızdan düşük olup olmadığını kontrol edin. Düşükse parolayı yeni cost ile yeniden hash’leyip veritabanını güncelleyin. Birkaç ay içinde kullanıcı tabanının tamamını kimseden parola değiştirmesini istemeden yükseltirsiniz.
Bu araç ne yapmaz?
- Toplu doğrulama — Her seferinde tek hash için tasarlanmıştır.
- Kırma veya brute force — Sözlük ya da rainbow-table saldırıları bilerek kapsam dışıdır.
- Düz metni geri alma — bcrypt tek yönlüdür; parolayı unuttuysanız tek yol sıfırlamaktır.
Sık Sorulan Sorular
Hayır. Hash’leme ve doğrulama tarayıcınızda gerçekleşir. Ne düz metin ne de hash sayfadan ayrılır.
Salt her hash için rastgele oluşturulur. Zaten bütün amaç budur — aynı parolaya sahip iki kullanıcı farklı hash alır ve rainbow table’lar boşa çıkar.
Evet, doğrulama modu tam olarak bunu yapar: elinizdeki hash’i yapıştırın, aday parolayı yapıştırın; araç eşleşmeyi onaylar veya reddeder.
Evet. Tüm modern varyantlar birlikte çalışır — digest sürümler arasında uyumludur; yalnızca etiket farklıdır. 2000 dönemi sistemlerinden gelen bazı eski $2$ hash’leri açık legacy desteği olan bir kütüphane gerektirebilir.
İlgili Araçlar
A1Z26 Şifre Kodlayıcı
A1Z26 şifresiyle (A=1, B=2, ... Z=26) metni kodlayın veya sayı dizisini özel ayraçla tekrar harflere çözün.
AES Şifrele / Şifre Çöz
Düşük riskli metni OpenSSL AES şifreleriyle şifreleyin ve çözün. Parola cümlesi SHA-256 ile özetlenir; Base64 çıktı IV artı şifreli metin içerir.
Atbash Şifre Kodlayıcı
Metni Atbash şifresiyle kodlayın veya çözün; A-Z harflerini Z-A ile eşleyen İbrani kökenli bir yerine koyma şifresidir. Aynı işlem hem şifreler hem çözer.
Base85 Kodlayıcı ve Çözücü
Adobe Ascii85 (PostScript/PDF) veya Z85 (ZeroMQ) varyantlarında Base85 kodlayın ve çözün. İkili veri için Base64'ten daha kompakttır.
Base32 Kodlayıcı ve Çözücü
RFC 4648 alfabesini kullanarak Base32 stringlerini kodlayın ve çözün. TOTP secret'ları, büyük/küçük harf duyarsız token'lar ve insanın yazdığı tanımlayıcılar için kullanışlıdır.
bcrypt Oluşturucu
Düz metin paroladan bcrypt hash üretin. 4 ile 14 arasında ayarlanabilir cost faktörü; Laravel, Django, Node ve PHP ile uyumludur.