Bcrypt Hash Oluşturucu ve Karşılaştırıcı

Parolalar için ayarlanabilir round (cost) sayısıyla bcrypt hash üretin, ya da bir metni mevcut bir bcrypt hash'iyle karşılaştırıp eşleşip eşleşmediğini görün.

%100 tarayıcıda çalışır — girdiğiniz metin ve hash sunucuya gönderilmez.

Bcrypt Hash Oluştur

Önerilen: 10-12. Her ek round, hesaplama süresini iki katına çıkarır — yüksek round daha güvenli ama daha yavaştır.

Hash Karşılaştır

Bcrypt Nedir, Neden Parola Saklamak İçin Kullanılır?

Bcrypt, özellikle parola saklamak için tasarlanmış bir hash (özet) fonksiyonudur. MD5 veya SHA-256 gibi genel amaçlı hash fonksiyonlarının aksine bcrypt kasıtlı olarak yavaştır ve bu yavaşlık bir "round" (tekrar/cost factor) parametresiyle ayarlanabilir — round sayısı arttıkça hesaplama süresi katlanarak (2^round oranında) uzar. Bu tasarım, bir saldırganın milyonlarca olası parolayı saniyeler içinde deneyebildiği kaba kuvvet (brute-force) saldırılarını pratikte imkânsız hâle getirmeyi hedefler.

Salt otomatik olarak dahildir: Bcrypt her hash'e kendiliğinden rastgele bir "salt" (tuz) ekler ve bu salt'ı üretilen hash dizesinin içine gömer ($2a$10$saltHashDeğeri… biçiminde). Bu sayede aynı parola her seferinde farklı bir hash üretir ve önceden hesaplanmış "rainbow table" saldırıları işe yaramaz hâle gelir — karşılaştırma yaparken de salt'ı ayrıca saklamanıza gerek kalmaz, compare fonksiyonu hash'in içinden kendisi çıkarır.

Bu araç, girdiğiniz metni bcryptjs kütüphanesiyle tamamen tarayıcınızda hash'ler veya karşılaştırır — hiçbir veri sunucuya gönderilmez. Gerçek bir uygulamada parola hash'leme işlemi sunucu tarafında yapılmalıdır; bu araç yalnızca test, öğrenme ve hızlı doğrulama amaçlıdır.

Bunu da Dene

İşin bitti mi? Sırada bunlar olabilir.

Sık Sorulan Sorular

Bcrypt, 1999'da tanıtılmış, özellikle parola saklamak için tasarlanmış bir hash fonksiyonudur. Blowfish şifreleme algoritmasının bir varyantına dayanır ve kasıtlı olarak yavaş çalışacak şekilde tasarlanmıştır — bu yavaşlık, kaba kuvvet (brute-force) saldırılarını pahalı ve pratik olarak imkânsız hâle getirir. Ürettiği hash $2a$10$… gibi bir dize biçimindedir: algoritma sürümü, round sayısı, salt ve asıl özet değerini tek bir dizede birleştirir.

Round sayısı, bcrypt'in dahili karıştırma işlemini kaç kez (2round kez) tekrarlayacağını belirler. Round'u 1 artırmak hesaplama süresini yaklaşık iki katına çıkarır — round 10 ile round 12 arasındaki fark dört kattır. Bu araçtaki varsayılan değer olan 10, günümüz donanımında güvenlik ile performans arasında iyi bir denge sağlar; daha hassas sistemlerde 12-14 de tercih edilebilir, ama her artış hem hash üretimini hem de karşılaştırmayı yavaşlatır.

MD5 ve SHA-256 gibi genel amaçlı hash fonksiyonları saniyede milyarlarca kez hesaplanacak kadar hızlıdır — bu, dosya bütünlüğü kontrolü için bir avantajdır ama parola saklamada tam tersine bir zayıflıktır, çünkü bir saldırgan çalınan bir hash veritabanına karşı devasa sayıda olası parolayı çok kısa sürede deneyebilir. Bcrypt ise kasıtlı olarak yavaştır ve ayarlanabilir bir maliyet (round) parametresi taşır, bu yüzden aynı saldırı bcrypt'e karşı çok daha pahalı ve yavaştır. Ayrıca bcrypt her hash'e otomatik olarak benzersiz bir salt ekler, bu da önceden hesaplanmış "rainbow table" saldırılarını işe yaramaz kılar.

Hayır. Bcrypt tek yönlü bir fonksiyondur — şifreleme değildir, bu yüzden hash'ten orijinal metne dönmenin matematiksel bir yolu yoktur. Bir parolanın doğru olup olmadığını kontrol etmek için hash "çözülmez"; bunun yerine girilen metin aynı salt ve round sayısıyla yeniden hash'lenir ve sonuç, saklanan hash'le karşılaştırılır (bu aracın "Karşılaştır" bölümünün yaptığı da tam olarak budur). Bir hash'ten parolayı bulmanın tek pratik yolu, tüm olası parolaları tek tek deneyip hash'lerini karşılaştırmaktır — bcrypt'in kasıtlı yavaşlığı bu yöntemi de yeterince maliyetli hâle getirir.

Hayır. Hem hash oluşturma hem karşılaştırma, sayfaya yüklenen bcryptjs kütüphanesiyle tamamen tarayıcınızda, cihazınızın belleğinde yapılır. Girdiğiniz metin ve hash hiçbir ağ isteğine dahil edilmez, localStorage'a yazılmaz; sayfayı yenilediğinizde her şey kaybolur.

Son güncelleme: