Bcrypt Karma Oluşturucu ve Doğrulayıcı
bcrypt şifre karmalarını çevrimiçi oluşturun ve doğrulayın — ayarlanabilir maliyet, $2b$/$2a$/$2y$ önekleri. %100 tarayıcınızda; şifreniz asla yüklenmez.
Bcrypt Nedir?
Bcrypt, özellikle şifreleri güvenli biçimde saklamak için tasarlanmış bir şifre karma işlevidir. Bir sunucu, bir şifreyi düz metin olarak tutmak yerine tek yönlü bir bcrypt karması saklar; bir kullanıcı oturum açtığında, sunucu gönderilen şifreyi aynı şekilde karmalar ve iki karmanın eşleştiğini denetler. Bcrypt, Blowfish şifrelemesi üzerine kuruludur ve 1999'da Niels Provos ile David Mazières tarafından tasarlanmıştır; SHA-256 gibi genel amaçlı karmalardan onu ayıran kasıtlı bir özelliği vardır: kasıtlı olarak yavaştır ve donanım hızlandıkça ayarlanabilir bir maliyet faktörüyle zaman içinde daha da yavaşlatabilirsiniz.
Bir bcrypt karması, tek başına kendini tanımlayan 60 karakterlik bir dizedir — örneğin $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq. Dört parçayı bir arada tutar: sürüm ($2b$), maliyet (12, logaritmik bir iş faktörü), 22 karakterlik bir Base64 tuz ve 31 karakterlik bir Base64 özet. Tuz rastgele olduğu ve karmaya gömülü olduğu için, aynı şifre her seferinde farklı bir karma üretir — ki bu, gökkuşağı tablolarını yener ve iki kullanıcının aynı şifreyi seçtiği gerçeğini gizler. Doğrulama, tuzu ve maliyeti saklanan karmadan geri okur ve adayı yeniden karmalar, bu yüzden bcrypt'in şifreyi geri kazanmak için bir karmayı tersine çevirmesi asla gerekmez (ve çeviremez).
Bu araç, paketlenmiş bir bcrypt uygulaması kullanarak tamamen tarayıcınızda çalışır — hiçbir şifre veya karma asla yüklenmez. Seçilen bir maliyet ve önekle bir karma oluşturmak, bir şifreyi mevcut bir karmaya karşı doğrulamak ve bir karmanın yapısını okumak için kullanın. Diğer güvenlik araçlarıyla doğal biçimde eşleşir: htpasswd Oluşturucu aracımızla bir dizini HTTP Basic Auth ile koruyun (doğrudan bcrypt girdileri üretebilir), Rastgele Şifre Üretici aracımızla karmalanacak güçlü bir şifre üretin ve yavaş bir şifre karması yerine hızlı bir genel amaçlı sağlama toplamına ihtiyaç duyduğunuzda SHA-256 Üretici aracımıza başvurun. Şifreleri hangi algoritmayla saklayacağınıza karar veriyorsanız, seçenekleri bcrypt mi Argon2 mi scrypt mi yazısında karşılaştırın.
// Node.js — bcryptjs / bcrypt (emits $2b$)
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash('correct horse battery staple', 12);
// -> $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
const ok = await bcrypt.compare('correct horse battery staple', hash); // true
# Python — bcrypt
import bcrypt
hashed = bcrypt.hashpw(b'correct horse battery staple', bcrypt.gensalt(12))
bcrypt.checkpw(b'correct horse battery staple', hashed) # True
# PHP — password_hash (emits $2y$)
$hash = password_hash('correct horse battery staple', PASSWORD_BCRYPT, ['cost' => 12]);
password_verify('correct horse battery staple', $hash); // true
# Apache htpasswd CLI — bcrypt entry to stdout (-B bcrypt, -b inline, -n stdout)
htpasswd -Bbn admin 'correct horse battery staple'
# -> admin:$2y$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq Temel Özellikler
Bcrypt Karmaları Oluşturun
Herhangi bir şifreden, yeni bir rastgele tuzla standart 60 karakterlik bir bcrypt karması üretin. Her tıklama, tıpkı gerçek bir şifre deposunun yapacağı gibi farklı bir geçerli karma verir.
Ayarlanabilir Maliyet Faktörü
İş faktörünü 4 ile 15 arasında ayarlayın (12 modern varsayılan değerdir). Her adımın hesaplama süresini kabaca nasıl ikiye katladığını hissedin, böylece güçlü ama oturum açma için yeterince hızlı bir maliyet seçebilirsiniz.
Sürüm Önekini Seçin
$2b$ (güncel bcryptjs standardı), $2y$ (PHP / Apache htpasswd) veya $2a$ (orijinal) üretin. Hepsi kütüphaneler arasında doğrulama için birbirinin yerine geçebilir.
Bir Şifreyi Karmaya Karşı Doğrulayın
Eşleşip eşleşmediklerini anında doğrulamak için saklanan bir karmayı ve aday bir şifreyi yapıştırın — gömülü tuz ve maliyetle yeniden karmalayarak, asla şifre çözmeden. Başarısız bir oturum açmayı ayıklamak için idealdir.
Karma Yapısının Ayrıştırılması
Herhangi bir bcrypt karmasını sürüm, maliyet, tuz ve özet olarak ayrılmış görün, böylece $2b$12$... dizesinin yapısı bir bakışta belli olsun.
%100 İstemci Tarafı
Tüm karmalama ve doğrulama tarayıcınızda yerel olarak gerçekleşir. Hiçbir şifre veya karma asla bir sunucuya gönderilmez, böylece gerçek kimlik bilgileriyle gizlice çalışabilirsiniz.
Bcrypt Oluşturucu Örnekleri
bcrypt karması (maliyet 12, $2b$)
şifre: correct horse battery staple maliyet: 12 önek: $2b$
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
$2b$ önekiyle, maliyet 12'deki bir bcrypt karması. Tuz rastgeledir, bu nedenle aynı şifre her seferinde farklı bir karma üretir — yine de hepsi orijinal şifreye karşı doğrulanır.
Bir şifreyi karmaya karşı doğrulama
şifre: correct horse battery staple karma: $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
✓ Eşleşme — şifre bu karma için doğru
Doğrulama, karmanın şifresini çözmez. bcrypt, aday şifreyi saklanan karmaya gömülü tuz ve maliyeti kullanarak yeniden karmalar ve ardından sonucu karşılaştırır. Bir eşleşme, şifrenin doğru olduğu anlamına gelir.
Karma yapısının ayrıştırılması
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
sürüm: $2b$ · maliyet: 12 · tuz: dUSFKqT1FCMYZ6hcQfsxuO · özet: NizEqcX8IGK8snfVSowP5Uu.TDJoPUq
Her bcrypt karması kendini tanımlar: bir sürüm etiketi, iki haneli bir maliyet, 22 karakterlik bir Base64 tuz ve 31 karakterlik bir Base64 özet, hepsi tek bir 60 karakterlik dizede. Araç bunları ayırır, böylece bir bakışta okuyabilirsiniz.
Bcrypt Oluşturucu Nasıl Kullanılır
- 1
Bir Şifre Girin ve Maliyeti Seçin
Oluştur sekmesinde bir şifre yazın veya Rastgele şifre düğmesine tıklayın. Yığınınıza uyacak şekilde bir maliyet faktörü (4–15; 12 modern varsayılan değerdir) ve bir sürüm öneki — $2b$, $2a$ veya $2y$ — seçin.
- 2
Karmayı Oluşturun
bcrypt karması, yeni bir rastgele tuzla yerel olarak hesaplanır ve tek bir 60 karakterlik $2b$12$... dizesi olarak görünür. Almak için Kopyala'ya tıklayın veya yeni bir tuzlanmış karma için yeniden üretin.
- 3
Yapıyı Okuyun veya Doğrulayın
Yapı paneli, karmayı sürüm, maliyet, tuz ve özet olarak ayırır. Saklanan bir karmayı ve bir şifreyi yapıştırıp anında eşleşip eşleşmediklerini doğrulamak için Doğrula sekmesine geçin.
Common Errors
Bir Karmanın Şifresini Çözmeye Çalışmak
Bcrypt tek yönlüdür; şifre çözme yoktur. Bir şifreyi denetlemek için özeti tersine çevirmeye çalışmak yerine onu karmaya karşı doğrulayın.
bcrypt.decrypt(hash) // no such operation
bcrypt.compare(password, hash) // returns true / false
Maliyeti Çok Düşük Ayarlamak
4 veya 6 gibi düşük bir maliyet neredeyse anında karmalar, bu da saldırganların sızdırılmış karmaları hızlıca kaba kuvvetle çözmesine olanak tanır. Temel değer olarak 12 kullanın.
cost: 4 // far too fast, weak against brute force
cost: 12 // modern default, resists brute force
Aynı Karmayı İki Kez Beklemek
Tuz rastgele olduğundan, aynı şifreyi tekrar karmalamak farklı bir dize verir. İki karmayı bayt eşitliği açısından denetleyerek değil, daima doğrulama ile karşılaştırın.
hash(pw) === storedHash // fails — different salts
bcrypt.compare(pw, storedHash) // correct check
Yaygın Kullanım Senaryoları
- Bir Veritabanına Şifre Karması Ekleme
- Bir yönetici veya test hesabı için bir bcrypt karması oluşturup doğrudan kullanıcı tablonuza ekleyin, böylece önce tam bir kayıt akışı kurmadan oturum açabilirsiniz.
- Başarısız Bir Oturum Açmayı Ayıklama
- Karmanın kendisinin doğru olup olmadığını teyit etmek için bilinen iyi bir şifreyi saklanan karmaya karşı doğrulayın; böylece hatayı kimlik doğrulama kodunuzdan izole edin.
- Doğru Maliyet Faktörünü Seçme
- Her birinin ne kadar sürdüğünü hissetmek için kendi donanımınızda birkaç maliyet seviyesinde üretin, ardından gerçek oturum açmaları yavaşlatmadan kaba kuvvete dirençli bir iş faktörü seçin.
- htpasswd / Basic Auth Girdileri Oluşturma
- Bir Apache, Docker Registry veya Caddy kimlik bilgisi için bir $2y$ bcrypt karması üretin, ardından HTTP Basic Auth için bir kullanıcı:karma satırına ekleyin.
- Test Sabit Verileri Oluşturma
- Gerçek bir kimlik doğrulama sunucusu kurmadan bir oturum açma veya şifre sıfırlama akışının entegrasyon testlerini başlatmak için şifreye göre deterministik bcrypt karmaları üretin.
- Bulduğunuz Bir Karmayı Denetleme
- Maliyet faktörünü denetlemek için bir yapılandırmada veya dökümde bulunan bir bcrypt dizesinin yapısını okuyun ve bir eşleşmeyi teyit etmek için beklediğiniz şifreye karşı doğrulayın.
Teknik Ayrıntılar
- Blowfish Tabanlı, Uyarlanabilir Maliyet
- Bcrypt, karmasını Blowfish şifrelemesinin masraflı anahtar kurulumundan türetir ve bunu 2^maliyet kez tekrarlar. Maliyeti bir artırmak işi ikiye katlar, böylece donanım geliştikçe işlevi kaba kuvvete karşı yavaş tutar.
- 128 Bitlik Rastgele Tuz
- Her karma, maliyetten sonra 22 karakter olarak Base64 ile kodlanmış 16 baytlık (128 bit) bir rastgele tuz gömer. Tuz, her karmayı benzersiz kılar, böylece aynı şifreler asla bir özet paylaşmaz ve gökkuşağı tabloları geçersiz olur.
- Kendini Tanımlayan 60 Karakterlik Biçim
- Çıktı $sürüm$maliyet$tuz+özet biçimindedir — doğrulamak için gereken her şeyi taşıyan sabit 60 karakterlik bir dize. Ayrı bir tuz sütunu veya parametre deposu gerekmez.
- 72 Baytlık Şifre Sınırı
- Bcrypt, bir şifrenin yalnızca ilk 72 baytını karmalar; bunun ötesindeki her şey sessizce yok sayılır. Çok uzun parolalar için, bcrypt'ten önce (örneğin SHA-256 ile) ön karmalama yaygın bir önlemdir.
- Doğrulayın, Şifresini Çözmeyin
- Bcrypt tek yönlüdür. Doğrulama, karmayı saklanan karmadan ayrıştırılan tuz ve maliyeti kullanarak aday şifre üzerinde yeniden çalıştırır ve ardından özetleri sabit zamanda karşılaştırır. Düz metni geri kazanan hiçbir işlem yoktur.
- Dürüstlük Notları ve Uyarılar
- Karmalar yerel olarak hesaplanır ve canlı bir sisteme karşı asla denetlenmez. Kopyalanan karmalar ve yazdığınız herhangi bir şifre pano ve tarayıcı belleğinde kalır — bunları gizli bilgi olarak ele alın ve üretime yapıştırdıktan sonra panonuzu temizleyin.
En İyi Uygulamalar
- Maliyet 12 veya Daha Yüksek Kullanın
- Maliyet 12 modern temel değerdir; oturum açma gecikmesi kabul edilebilir kaldığı sürece hassas sistemler için 14'e doğru yükseltin. Düzenli olarak yeniden değerlendirin — beş yıl önce yeterince yavaş olan bugün saldırması ucuzdur.
- Düz Metni Asla Saklamayın veya Günlüğe Almayın
- Yalnızca bcrypt karmasını saklayın, orijinal şifreyi asla saklamayın ve şifreleri günlükler ile hata mesajlarından uzak tutun. Düz metin onunla birlikte sızarsa bcrypt'in tüm değeri kaybolur.
- Tuzu bcrypt Halletsin
- Bcrypt sizin için güvenli bir rastgele tuz üretir ve gömer. Kendi statik tuzunuzu sağlamayın veya birini yeniden kullanmayın — gökkuşağı tablolarını yenen şey, karma başına rastgele bir tuzdur.
- 72 Baytlık Sınıra Dikkat Edin
- Uzun parolalar kabul ediyorsanız, bcrypt'in 72 baytın ötesindeki baytları yok saydığını unutmayın. Çok uzun girdilerin tamamen kapsanması gerektiğinde SHA-256 ile ön karmalamayı düşünün veya Argon2id'yi değerlendirin.
Bcrypt Oluşturucu SSS
Çevrimiçi bir bcrypt oluşturucu kullanmak güvenli mi?
Çevrimiçi bir bcrypt karması nasıl oluştururum?
$2b$, PHP ve Apache için $2y$ ya da orijinal tanımlayıcı için $2a$. bcrypt karması, yeni bir rastgele tuzla tarayıcınızda anında hesaplanır ve tek tıklamayla kopyalayabileceğiniz tek bir 60 karakterlik $2b$12$... dizesi olarak görünür. Hiçbir şey yüklenmez: şifre ve karma asla cihazınızdan ayrılmaz. Aynı şifre için başka bir geçerli karma almak üzere istediğiniz zaman yeniden oluşturun, çünkü her biri farklı bir rastgele tuz taşır. Bir bcrypt karmasının şifresi çözülebilir veya geri döndürülebilir mi?
Hangi maliyet faktörünü (iş faktörü) kullanmalıyım?
$2a$, $2b$ ve $2y$ arasındaki fark nedir?
$2a$, orijinal yaygın olarak kullanılan tanımlayıcıdır; $2b$, bcryptjs kütüphanesinin ve çoğu modern uygulamanın ürettiği düzeltilmiş güncel sürümdür; $2y$ ise PHP ve Apache'nin htpasswd'sinin kullandığı tanımlayıcıdır. Doğrulama açısından birbirlerinin yerine geçebilirler — burada herhangi bir önekle oluşturduğunuz bir karma kütüphaneler arasında doğru biçimde doğrulanır, çünkü hepsi aynı çekirdek işlevi çalıştırır. Bayt düzeyinde uyumluluğa ihtiyacınız varsa yığınınızın beklediği öneki seçin. Bir şifreyi bir bcrypt karmasına karşı nasıl doğrularım?
$2b$12$... dizesi) ve aday şifreyi yapıştırın; araç eşleşip eşleşmediklerini size anında söyler. Karmaya gömülü tuz ve maliyeti çıkararak, aday şifreyi tam olarak bu parametrelerle yeniden karmalayarak ve yeni özeti saklanan özetle karşılaştırarak çalışır — herhangi bir şifre çözme işlemi yoktur. Bir oturum açma sistemi bir şifreyi tam olarak böyle denetler: düz metni asla geri kazanmaz, yalnızca gönderilen şifrenin yeniden karmalanmasının saklanan karmayı yeniden ürettiğini doğrular. bcrypt mi, Argon2 mi, scrypt mi — hangisini kullanmalıyım?
Bcrypt karması neden her seferinde farklı?
İlgili Araçlar
Tüm araçları görüntüleyin →JWT Çözücü
Güvenlik Araçları
Ücretsiz JWT çözücümüzle JWT token'larını online çözün. header, payload, signature, son kullanma, algoritma ve claim'leri anında inceleyin. %100 tarayıcıda çalışır — token'ınız cihazınızdan ayrılmaz. Kayıt yok, izleme yok.
JWT Oluşturucu ve Kodlayıcı
Güvenlik Araçları
Ücretsiz online JWT oluşturucu ve kodlayıcı. header ve payload'ı oluşturun, HS256, RS256 ya da ES256 ile anında imzalayın. %100 tarayıcıda çalışır — gizli anahtarınız ve özel anahtarınız cihazınızdan ayrılmaz.
MD5 Özet Üretici ve Dosya Sağlama Aracı
Güvenlik Araçları
MD5, SHA-256, SHA-1 ve SHA-512 özetlerini online ücretsiz üretin. Tarayıcınızda metin veya dosya özeti alın, sağlama değerlerini doğrulayın ve sonuçları kopyalayın. Kayıt gerekmez.
Rastgele Şifre Üretici — Özelleştirilebilir ve Güvenli
Güvenlik Araçları
Anında güçlü rastgele şifreler üretin — ücretsiz, %100 tarayıcınızda. Uzunluk ve karakterleri özelleştirin, entropi analiziyle 50'ye kadar toplu üretim.
SHA-1 Özet Üretici (160-bit Eski Algoritma)
Güvenlik Araçları
SHA-1 özetlerini tarayıcınızda üretin — 40 karakterlik hex çıktısı, yükleme yok. Git parmak izleri, eski sertifika kontrolleri ve taşıma denetimleri için eski araç. Veriler cihazınızdan ayrılmaz.
SHA-256 Özet Üretici ve Sağlama Aracı
Güvenlik Araçları
SHA-256 özetlerini ücretsiz üretin. Metin veya dosyaları tarayıcınızda özetleyin, sağlama toplamlarını doğrulayın, 64 karakterlik hex çıktısını kopyalayın. Kayıt gerekmez; veriler sayfadan ayrılmaz.