PBKDF2 çevrimiçi - anahtar türetme

PBKDF2-HMAC ile paroladan kriptografik anahtarı doğrudan tarayıcıda türetin. Hash fonksiyonunu (SHA-1, SHA-256, SHA-384 veya SHA-512), iterasyon sayısını, çıktı uzunluğunu ve salt değerini ayarlayın. Verify modu, aday parolayı mevcut bir PBKDF2 hex değeriyle karşılaştırır.

Salt (boş — rastgele)
Parola
0 kar. · 0 bayt
Doğrulanacak hash
Dene:
Sonuç
✓ İşleme tarayıcıda yerel olarak yapılır ✓ Girdi sunucuya gönderilmez
Örnekler
Yaygın parola
Hash fonksiyonu: SHA-256 Yineleme: 600000 Anahtar uzunluğu (bayt): 32
Girdi parola123

Tipik bir kullanıcı parolası. Geçerli ayarlarla anahtar türetmek için Compute düğmesine basın.

Parola cümlesi
Hash fonksiyonu: SHA-256 Yineleme: 600000 Anahtar uzunluğu (bayt): 32
Girdi dogru at pil zimba

Uzun bir parola cümlesi kolay hatırlanır ve genellikle kısa paroladan daha yüksek entropi sağlar.

PBKDF2-HMAC-SHA512
Hash fonksiyonu: SHA-512 Yineleme: 210000 Anahtar uzunluğu (bayt): 64 Salt (boş — rastgele): docs-example-salt
Girdi surum-notlari-sirri

Tekrarlanabilir dokümantasyon veya birlikte çalışabilirlik testi için SHA-512, 64 bayt çıktı ve sabit örnek salt kullanır.

Yüksek maliyet kontrolü
Hash fonksiyonu: SHA-256 Yineleme: 1000000 Anahtar uzunluğu (bayt): 32 Salt (boş — rastgele): login-user-42-unique-salt
Girdi admin panel parola cumlesi

Gecikmeyi karşılaştırmak ve aynı parametrelerin aynı anahtarı ürettiğini doğrulamak için bir milyon iterasyonlu PBKDF2-HMAC-SHA256 çalıştırması.

PBKDF2 nedir?

PBKDF2 (Password-Based Key Derivation Function 2), paroladan anahtar türetmek için kullanılan, RFC 2898'de tanımlanmış ve NIST SP 800-132'de standartlaştırılmış bir algoritmadır. Parola, salt, iterasyon sayısı, HMAC-SHA256 gibi sözde rastgele fonksiyon ve çıktı uzunluğu alır; bunlardan deterministik bir kriptografik anahtar üretir.

Algoritma bilinçli olarak maliyetlidir: Her iterasyon HMAC işini tekrarlar, böylece her parola denemesi daha fazla zaman alır. Bu PBKDF2 çevrimiçi aracı, tarayıcının Web Crypto API'sini kullanarak hex anahtarı yerel olarak türetir; parola veya salt sunucuya gönderilmez.

PBKDF2 parola saklama, şifreli dosya formatları, wallet yedekleri, API test fixture'ları ve mevcut protokolün PBKDF2-HMAC-SHA256 veya PBKDF2-HMAC-SHA512 gerektirdiği uyumluluk odaklı sistemlerde kullanılır.

PBKDF2 vs bcrypt vs Argon2

PBKDF2 en taşınabilir anahtar türetme seçeneklerinden biridir: tarayıcılarda, OpenSSL'de, Java, .NET, Python, Node.js, işletim sistemi API'leri ve uyumluluk odaklı birçok ortamda bulunur. Bu yüzden birlikte çalışabilir parola hashing'i, legacy geçişleri ve PBKDF2_HMAC ya da pbkdf2_sha256 uyumluluğu gereken sistemler için kullanışlıdır.

Zayıf tarafı, neredeyse tamamen CPU'ya bağlı olması ve anlamlı bir bellek maliyeti taşımamasıdır. GPU ve ASIC kullanan saldırganlar PBKDF2 denemelerini sıradan uygulama sunucularına göre çok daha verimli paralelleştirebilir.

bcrypt küçük dahili bellek durumu sayesinde GPU saldırılarına PBKDF2'den daha iyi direnç gösterir. Argon2id, memory-hard ve ayarlanabilir olduğu için yeni parola saklama sistemlerinde modern varsayılan tercihtir. Stack sizin kontrolünüzdeyse Argon2id seçin; uyumluluk, Web Crypto desteği, FIPS odaklı ortamlar veya mevcut protokol gereksinimleri daha önemliyse PBKDF2 seçin.

PBKDF2 parametreleri: hash, salt, iterasyon, anahtar uzunluğu

Bu PBKDF2 üretici, geliştiricilerin genellikle ihtiyaç duyduğu parametreleri gösterir. Hash ayarı sözde rastgele fonksiyon olarak kullanılan HMAC digest'i seçer: SHA-256 pratik varsayılandır, SHA-512 SHA-2 tabanlı sistemlerde yaygındır, SHA-384 uyumluluk için vardır, SHA-1 ise yalnızca legacy formatlar gerektiriyorsa kullanılmalıdır.

Salt her parola veya türetilen anahtar için benzersiz olmalıdır. Gizli olması gerekmez; türetilmiş hash veya şifreli veriyle birlikte saklanır. Production sistemlerde salt kriptografik olarak güvenli rastgele kaynaktan üretilmelidir. Sabit salt yalnızca tekrarlanabilir örnekler ve test vektörleri için uygundur.

İterasyonlar maliyeti belirler. Daha yüksek değerler hem meşru doğrulamayı hem çevrimdışı tahmini yavaşlatır. Varsayılan değer PBKDF2-HMAC-SHA256 için 600.000 iterasyondur ve OWASP 2024 temel önerisiyle uyumludur. Anahtar uzunluğu bayt cinsinden çıktı boyutudur: 32 bayt 256 bit anahtar ve 64 karakterlik hex sonuç verir; 64 bayt 512 bit çıktı verir.

PBKDF2 üretme, doğrulama ve saklama

Hash modunu seçilen parametrelerle paroladan PBKDF2 hex değeri üretmek için kullanın. Elinizde saklanmış bir PBKDF2 hex değeri varsa Verify modunu kullanın: araç aynı salt, hash, iterasyon sayısı ve anahtar uzunluğu ile anahtarı tekrar türetir ve değerlerin eşleşip eşleşmediğini bildirir.

PBKDF2'nin şifresi çözülemez. Bu tek yönlü bir anahtar türetme fonksiyonudur; doğrulama yalnızca aday parolayı orijinal parametrelerle tekrar deneyip sonucu karşılaştırarak yapılır. Salt, hash fonksiyonu, iterasyon veya anahtar uzunluğu değişirse türetilen değer de değişir.

Gerçek kullanıcı hesapları için parola hashing işlemini uygulama sunucusunda, bakımı yapılan bir kütüphane, rate limiting, izleme ve parametre yükseltme planıyla yapın. Bu çevrimiçi PBKDF2 hesaplayıcı öğrenme, birlikte çalışabilirlik hata ayıklama, parametre belgeleme, tekrarlanabilir test vektörleri oluşturma ve geliştirme sırasında hash kontrolü için uygundur.

SSS

OWASP 2024, PBKDF2-HMAC-SHA-256 için 600.000 ve PBKDF2-HMAC-SHA-512 için 210.000 iterasyon önerir. NIST SP 800-132 en az 1.000 önerir, ancak modern sistemler için bu çok düşük bir tabandır. Doğru değer tehdit modelinize ve donanıma bağlıdır: sunucunuzda yaklaşık 100-500 ms hedefleyin. Daha fazla iterasyon saldırganı orantılı yavaşlatır; daha az iterasyon kullanıcı gecikmesini azaltır.

Salt, anahtar türetmeden önce her parolaya eklenen benzersiz rastgele değerdir. Salt olmadan aynı parolalar aynı hash değerlerini üretir ve rainbow table saldırıları pratik hale gelir. Her kullanıcı için benzersiz salt olduğunda saldırgan her hash'e ayrı saldırmak zorundadır. Salt gizli olmak zorunda değildir, benzersiz olmalıdır; 16 rastgele bayt genellikle yeterlidir. Salt değerini hash ile birlikte saklayın.

Geniş platform desteği, FIPS doğrulaması veya legacy sistemlerle birlikte çalışabilirlik gerekiyorsa PBKDF2 seçin. Yeni sistemlerde mevcutsa Argon2id genellikle daha iyidir. PBKDF2'nin bellek maliyeti yoktur, bu yüzden saldırganlar GPU üzerinde ucuz biçimde paralelleştirebilir. Yüksek güvenlik gerektiren uygulamalar için önerilen seçim Argon2id'dir.

Hayır. PBKDF2 tamamen tarayıcınızda Web Crypto API (window.crypto.subtle.deriveBits) ile hesaplanır. Parolanız ve salt cihazınızdan çıkmaz: ağ isteği, loglama veya sunucu tarafı işleme yoktur.

Hayır. PBKDF2 şifreleme değildir ve decrypt işlemi yoktur. Tek yönlü bir anahtar türetme fonksiyonudur. Bir parolayı kontrol etmek için PBKDF2'yi aynı salt, hash fonksiyonu, iterasyon ve anahtar uzunluğu ile tekrar türetip yeni hex çıktıyı saklanan değerle karşılaştırırsınız.

Protokolünüz veya mevcut veritabanınız başka bir seçenek gerektirmiyorsa PBKDF2-HMAC-SHA256 kullanın. PBKDF2-HMAC-SHA512 de özellikle SHA-512 üzerinde standartlaşmış sistemlerde yaygındır. SHA-384 uyumluluk için vardır. Yeni tasarımlarda SHA-1'den kaçının; yalnızca açıkça PBKDF2-HMAC-SHA1 isteyen legacy formatlar için bırakın.

Türetilmiş hash, salt, iterasyon sayısı, hash fonksiyonu ve anahtar uzunluğunu saklayın. PBKDF2 çıktısı tek başına daha sonra parola doğrulamak için yeterli değildir, çünkü doğrulayıcı aynı parametreleri tekrar kullanmalıdır. Birçok sistem bu alanları tek bir string içinde kodlar; bazıları ayrı kolonlarda tutar.

Hayır. Salt benzersiz ve tercihen rastgele olmalıdır, ancak gizli anahtar değildir. Görevi aynı parolaların farklı PBKDF2 çıktıları üretmesini sağlamak ve saldırganın önceden hesaplanmış tabloları yeniden kullanmasını engellemektir. Salt değerini hash'in yanında saklayın.

Öğrenme, parametre karşılaştırma, birlikte çalışabilirlik kontrolleri ve test vektörleri için kullanın. Production hesaplarda PBKDF2'yi sunucuda güvenli rastgele salt, rate limiting, izleme ve kontrollü parametre güncellemeleriyle hesaplayıp doğrulayın. Tarayıcı tarafı hashing tek başına sunucu tarafı parola saklama kontrollerinin yerine geçmez.
İlgili araçlar

HMAC Oluşturucu

Metin ve gizli anahtardan doğrudan tarayıcınızda HMAC oluşturun.

MD5 Hash Üretici

Metnin MD5 hash değerini tarayıcınızda yerel olarak hesaplayın.