Argon2 Hash Üreteci
Ücretsiz çevrimiçi Argon2 Hash Üreteci aracı. %100 yerel işlem — verileriniz asla cihazınızı terk etmez.
Verify: input format is "password|hash"
Sonuç burada görüntülenecek...
Giriş → Karma Hesapla
Usage Guide
Argon2 Hakkında
Argon2, Lüksemburg Üniversitesi tarafından tasarlanan 2015 Password Hashing Competition'ın kazananıdır. Şu anda en güvenli parola karma algoritmasıdır ve OWASP ve NIST gibi yetkili kuruluşlar tarafından parola depolama için önerilmektedir. Argon2'nin üç varyantı vardır: Argon2d (GPU'ya dayanıklı), Argon2i (yan kanal saldırılarına dayanıklı) ve Argon2id (hibrit mod, önerilen). Geleneksel karma algoritmalarının aksine, Argon2'nin ayarlanabilir hesaplama maliyeti ve bellek tüketimi vardır ve kaba kuvvet, GPU ve ASIC saldırılarına etkili biçimde direnir.
Kullanım Adımları
Argon2 iki işlemi destekler: parola karma ve doğrulama:
Algoritma Özellikleri
Argon2, parola depolama için özel olarak tasarlanmış olup aşağıdaki benzersiz avantajlara sahiptir:
Üç Varyantın Karşılaştırması
Argon2'nin farklı senaryolara uygun üç varyantı vardır:
FAQ
Q: Argon2 ile bcrypt/PBKDF2 arasındaki fark nedir?
A: Argon2: Modern algoritma (2015), bellek yoğun, GPU/ASIC direnci, OWASP tarafından tercih edilir. bcrypt: Klasik algoritma (1999), hesaplama yoğun, orta düzey GPU direnci, yaygın kullanılır ancak yavaş yavaş Argon2 ile değiştiriliyor. PBKDF2: Standart algoritma (2000), hesaplama yoğun, GPU saldırılarına karşı savunmasız, güvenlik için son derece yüksek yineleme (≥ 600k) gerektirir. Performans karşılaştırması: Aynı güvenlik seviyesinde, Argon2 bcrypt'ten 2-3 kat daha hızlı ve PBKDF2'den 10+ kat daha hızlıdır. Öneri: Yeni projeler için Argon2id kullanın, mevcut projeleri yavaş yavaş Argon2'ye geçirin.
Q: Argon2 parametreleri nasıl yapılandırılmalıdır?
A: OWASP önerilen yapılandırma: Bellek maliyeti (m): 47104 KB (yaklaşık 47MB), sunucu performansı iyiyse 64MB veya daha yükseğe artırılabilir. Zaman maliyeti (t): 1-3 yineleme, genellikle 1 yeterlidir. Paralellik (p): 1 (tek iş parçacıklı), paralel saldırılardan kaçının. Karma uzunluğu: 32 bayt (256 bit). Ayarlama yöntemi: Geliştirme ortamında test edin, tek bir karmanın 0,5-1 saniye sürdüğünden emin olun, ardından sunucu performansına göre ayarlayın. Not: Daha yüksek parametreler daha fazla güvenlik anlamına gelir, ancak sunucu yükünü ve yanıt süresini artırır.
Q: Neden Argon2, SHA-256'dan parola depolama için daha uygundur?
A: SHA-256 hızlı hesaplama için tasarlanmış genel amaçlı bir karma fonksiyonudur; bu, parola depolama senaryolarında ölümcül bir zayıflıktır. GPU'lar saniyede milyarlarca SHA-256 karması hesaplayabilir, bu da tuzlu parolaları bile kaba kuvvet saldırılarına karşı savunmasız kılar. Argon2'nin avantajları: 1) Yavaş tasarım: Tek karma 0,5-1 saniye sürer, kaba kuvvet hızını dramatik biçimde azaltır. 2) Bellek yoğun: Büyük bellek (64MB) gerektirir, GPU'lar ve ASIC'ler saldırıları paralel hale getiremez. 3) Ayarlanabilir maliyet: Donanım geliştikçe güvenliği korumak için parametreler artırılabilir. Sonuç: Parola depolama, genel amaçlı karma fonksiyonları (SHA-256, MD5) değil, özel parola karma algoritmaları (Argon2, bcrypt, PBKDF2) kullanmalıdır.
Q: Argon2 karma dizesi formatı nedir?
A: Argon2, PHC (Password Hashing Competition) dize formatını kullanır: $argon2id$v=19$m=65536,t=3,p=1$saltbase64$hashbase64.
Bileşen anlamları: $argon2id: Algoritma varyantı (id/i/d). v=19: Algoritma sürümü (şu anda 19). m=65536,t=3,p=1: Bellek maliyeti (KB), zaman maliyeti (yineleme), paralellik. saltbase64: Base64 kodlu tuz (16 bayt). hashbase64: Base64 kodlu karma (32 bayt).
Avantaj: Tüm parametrelerle kendi kendine yeterli, doğrulama için ek depolama gerekmez, gelecekteki yükseltmeleri kolaylaştırır.
Q: bcrypt'ten Argon2'ye nasıl geçiş yapılır?
A: Aşamalı geçiş yaklaşımı: 1) Çift doğrulama: bcrypt doğrulama mantığını koruyun, yeni kullanıcılar ve parola değişiklikleri için Argon2 kullanın. 2) Şeffaf yükseltme: Kullanıcılar giriş yaptığında önce bcrypt ile doğrulayın, ardından başarı durumunda hemen Argon2 ile yeniden karma yapın ve veritabanını güncelleyin. 3) Tanımlayıcı alan: Karma algoritma türünü (bcrypt/argon2) tanımlamak için veritabanı alanı ekleyin. 4) Tam geçiş: Bir süre sonra (örneğin 6 ay), aktif kullanıcıların çoğu geçiş yapmış olacak, kalan kullanıcıları parola sıfırlamaya zorlayabilirsiniz. Not: bcrypt ve Argon2 farklı karma formatlarına sahiptir, önek ile otomatik olarak tanımlanabilir ($2a$ vs $argon2id$).
Q: Argon2 tarayıcılarda çok yavaş olmaz mı?
A: Argon2'nin tasarım hedefi yavaş hesaplamadır; bu bir güvenlik garantisidir, kusur değil. WebAssembly kullanarak tarayıcılarda Argon2 hesaplamak, tek karma 0,5-1 saniye sürer; bu kullanıcı deneyimi üzerinde minimum etki yapar (parola girdikten sonra 1 saniye beklemek kabul edilebilir). Optimizasyon önerileri: 1) Asenkron hesaplama: Arka planda hesaplamak için Web Workers kullanın, UI'yi bloke etmekten kaçının. 2) İlerleme göstergesi: Kullanıcı deneyimini iyileştirmek için “Şifreleniyor...” mesajı görüntüleyin. 3) Parametre ayarı: Tarayıcı ortamı bellek maliyetini orta düzeyde azaltabilir (örneğin 32MB), ancak OWASP minimum önerisinin (47MB) altına düşmeyin. Not: Sunucu tarafı doğrulama da aynı hesaplama süresini gerektirir; bu Argon2'nin temel güvenlik mekanizmasıdır.
Use Cases
Önerilen: Kullanıcı Parola Depolama
Bu, Argon2'nin birincil kullanım durumudur. Kullanıcılar kayıt olduğunda veya parola değiştirdiğinde, Argon2id kullanarak parolaları karma yapın ve veritabanında saklayın. Giriş sırasında saklanan karma dizesini çıkarın, aynı parametrelerle kullanıcının girdiği parolayı karma yapın, ardından sonuçları karşılaştırın. Argon2'nin bellek yoğun özellikleri, kaba kuvvet saldırılarını son derece maliyetli kılar ve veritabanı ele geçirilse bile kullanıcı parolalarını korur.
Önerilen: API Anahtarı Karma
API anahtarları (API Tokenları, Erişim Anahtarları gibi) genellikle veritabanında saklanması gerekir ancak düz metin olarak saklanmamalıdır. API anahtarlarını karma yapmak için Argon2 kullanın; veritabanı ele geçirilse bile saldırganlar orijinal anahtarları elde edemez. Doğrulama için kullanıcı tarafından sağlanan anahtarı karma yapın ve karşılaştırın. Not: API anahtarları genellikle rastgele oluşturulmuş yüksek entropili dizelerdir, performansı artırmak için Argon2 parametrelerini orta düzeyde azaltabilirsiniz (örneğin t=1, m=32MB).
Önerilen: Kripto Para Cüzdanları
Kripto para cüzdanları özel anahtarları korumak için parolalara ihtiyaç duyar. Kullanıcı parolasından şifreleme anahtarı türetmek için Argon2d (veriye bağımlı) kullanın, ardından bu anahtarı özel anahtarı şifrelemek için kullanın. Argon2d'nin GPU direnci, cüzdan parolalarını kaba kuvvetle kırmayı son derece maliyetli kılar. Not: Cüzdan senaryoları genellikle Argon2id yerine Argon2d kullanır çünkü yan kanal saldırı riski daha düşüktür ve GPU direnci daha önemlidir.
- ✅ Argon2d (GPU direnci, cüzdan için önerilen)
- ✅ Argon2id (daha kapsamlı güvenlik)
- scrypt (klasik seçim, Bitcoin Core tarafından kullanılır)
- 💡 Daha yüksek güvenlik için donanım cüzdanlarıyla birleştirin
Önerilen: Dosya Şifreleme Anahtarı Türetme
Kullanıcı parolasından dosya şifreleme anahtarı türetmek için Argon2 kullanın. Kullanıcı parolayı sağladıktan sonra, Argon2 sabit uzunluklu bir anahtar (örneğin 256 bit) oluşturur, ardından bu anahtarı dosyayı şifrelemek için kullanın (örneğin AES-256-GCM kullanarak). Tuz ve Argon2 parametreleri dosya başlığında saklanır; şifre çözme sırasında parametreleri çıkarın ve anahtarı yeniden türetin. Bu yaklaşım şifreli arşivlerde (7-Zip, WinRAR gibi) ve disk şifrelemede (VeraCrypt gibi) yaygın olarak kullanılır.
- ✅ Argon2id (önerilen)
- ✅ Argon2i (yan kanal direnci)
- scrypt (klasik seçim)
- 💡 Tuz ve parametreleri dosya başlığında saklayın
Önerilen: İki Faktörlü Kimlik Doğrulama Yedek Kodları
İki faktörlü kimlik doğrulama (2FA) yedek kodlarının, veritabanı ele geçirilirse kötüye kullanımı önlemek için depolamadan önce karma yapılması gerekir. Yedek kodlar rastgele oluşturulmuş yüksek entropili dizeler (genellikle 8-16 karakter) olduğundan, performansı artırmak için daha düşük Argon2 parametreleri (örneğin t=1, m=32MB) kullanılabilir. Doğrulama sırasında kullanıcının girdiği yedek kodu karma yapın ve karşılaştırın; başarılı doğrulamanın ardından yedek kodu hemen geçersiz kılın.
Önerilmez: Gerçek Zamanlı Performansa Duyarlı Senaryolar
Argon2'nin yavaş özellikleri, yüksek frekanslı API kimlik doğrulama, gerçek zamanlı oyun girişi, IoT cihaz kimlik doğrulama gibi son derece yüksek performans gerektiren senaryolar için uygun değildir. Bu senaryolar, her istek için parola karma yerine token tabanlı kimlik doğrulama (JWT, OAuth gibi) veya oturum yönetimi kullanmalıdır. Argon2 yalnızca kullanıcı girişi sırasında bir kez kullanılır; başarılı doğrulamanın ardından token yayınlayın, sonraki istekler token kimlik doğrulaması kullanır.
- ✅ JWT + HMAC-SHA256 (yüksek performans)
- ✅ Session + Cookie (geleneksel yaklaşım)
- ✅ OAuth 2.0 (standart protokol)
- ❌ Yüksek frekanslı senaryolarda Argon2 kullanmayın
En İyi Uygulama Önerileri
- Argon2id, parola depolama için en iyi seçimdir ve tüm yeni projeler için önerilir. Mevcut projeler bcrypt/PBKDF2'den Argon2'ye yavaş yavaş geçiş yapmalıdır.
- Parametre yapılandırması OWASP önerilerini takip eder: m ≥ 47MB, t ≥ 1, p = 1. Sunucu performansı iyiyse, bellek maliyetini 64MB veya daha yükseğe artırabilirsiniz.
- Yüksek frekanslı senaryolarda Argon2 kullanmayın; yüksek performans için token kimlik doğrulaması (JWT, Session) ile birleştirilmelidir.
- bcrypt'ten geçiş yaparken aşamalı yaklaşım kullanın: bcrypt doğrulamasını koruyun, yeni kullanıcılar ve parola değişiklikleri için Argon2 kullanın, giriş sırasında şeffaf biçimde yükseltin.
- Tarayıcı ortamı Argon2'yi hesaplamak için WebAssembly kullanır, kullanıcı deneyimini iyileştirmek için Web Workers ve ilerleme göstergeleriyle birleştirin.