Araç hakkında
Parolalar neden SHA-256 ile değil, yavaş bir fonksiyonla saklanır?
SHA-256 gibi genel hash fonksiyonları hızlı olacak şekilde tasarlanmıştır; tek bir ekran kartı saniyede milyarlarca SHA-256 hesaplayabilir. Veritabanı sızdığında saldırgan her aday parolayı bu hızla deneyebilir. Parola hashleme fonksiyonları ise ayarlanabilir bir maliyetle bilinçli olarak yavaştır ve her parolaya ayrı rastgele salt ekler; böylece aynı parolalar farklı hash üretir ve önceden hesaplanmış tablolar işe yaramaz.
scrypt parametreleri
scrypt, Colin Percival tarafından 2009’da bellek-zor olacak şekilde tasarlandı. Bellek kullanımı yaklaşık 128 × N × r bayttır; araçtaki N = 2¹⁷, r = 8, p = 1 değerleri hesaplama başına yaklaşık 128 MiB bellek demektir ve OWASP önerisine karşılık gelir.
$scrypt$ln=17,r=8,p=1$<salt>$<hash>ln, N’nin log₂ değeridir. Bu biçim bu sitenin encoded biçimidir; evrensel bir standart değildir.scrypt mi Argon2id mi?
İkisi de bellek-zordur. Argon2id daha yeni, RFC olarak standartlaştırılmış ve parametreleri bağımsız ayarlanabilir olduğu için yeni projelerde önerilir. scrypt; Node.js crypto.scrypt, Python hashlib.scrypt ve birçok kripto para cüzdanında yerleşik olduğu için ek bağımlılık istemeyen durumlarda iyi bir seçimdir.
Sık sorulan sorular
Node.js ile aynı sonucu nasıl alırım?
crypto.scryptSync(parola, salt, 32, { N: 131072, r: 8, p: 1, maxmem: 256 * 1024 * 1024 }) aynı parametrelerle aynı 32 baytı üretir. Bu sitenin testleri bu eşleşmeyi Node.js ile karşılaştırarak doğrular.