İçeriğe geç

PBKDF2-SHA512 Anahtar Türetme

64-bit işlemciler için yüksek verimli 512-bit PBKDF2 anahtar türetici.

RFC 8018

Parametreler: 220 000 iterasyon, 16 bayt rastgele salt, 32 bayt çıktı.

Her çalıştırmada yeni bir salt kullanılır; aynı parola farklı hash üretir. Doğrulama için çıktının tamamını saklayın.

Araç hakkında

PBKDF2-HMAC-SHA-512 nasıl çalışır?

PBKDF2, parolayı anahtar olarak kullanan HMAC-SHA-512 fonksiyonunu salt ile başlayarak art arda çalıştırır ve sonuçları XOR’lar. Maliyet yalnız iterasyon sayısıyla ayarlanır; bellek gerektirmediği için GPU üzerinde Argon2 ve scrypt’e göre çok daha ucuz paralelleştirilir.

Araç 220 000 iterasyon, 16 bayt rastgele salt ve 32 bayt çıktı kullanır. Bu değer OWASP’ın PBKDF2-HMAC-SHA-512 için önerdiği alt sınırın üzerindedir.

$pbkdf2-sha512$i=220000$<salt>$<hash>
Bu sitenin encoded biçimi. passlib gibi kütüphanelerin PBKDF2 biçimleri farklı ayırıcı ve Base64 alfabesi kullanır; doğrudan taşınabilir değildir.

Ne zaman PBKDF2 seçilmeli?

  • FIPS 140 doğrulaması gereken ortamlarda (PBKDF2 NIST SP 800-132’de tanımlıdır, Argon2 değildir).
  • Platformun yalnız PBKDF2 sunduğu durumlarda (ör. Web Crypto API, birçok donanım güvenlik modülü).
  • Bu kısıtlar yoksa yeni sistemlerde Argon2id tercih edin.

Neden SHA-256’dan daha az iterasyon?

HMAC-SHA512’nin her turu 64 bitlik işlemler gerektirir ve ekran kartlarında SHA-256’dan belirgin şekilde daha pahalıdır. Bu nedenle OWASP, aynı saldırı maliyeti için PBKDF2-HMAC-SHA512’de 210 000, SHA-256’da 600 000 iterasyon önerir. Araç SHA-512 için 220 000 kullanır.

import hashlib, base64
hashlib.pbkdf2_hmac('sha512', parola.encode(), base64.b64decode(salt + '=='), 220000, 32).hex()
Python ile aynı 32 baytlık çıktıyı üretir (dolgusuz salt’a == eklenir; fazla dolgu yok sayılır).

Kaynaklar