Password Generator

Güçlü Parola Oluşturucu: Güvenli Rastgele Parolalar

Kriptografik olarak güvenli rastgele parolalar oluşturun. Uzunluk, karakter setleri ve miktarı özelleştirin. Web Crypto API kullanır.

Verileriniz tarayıcınızdan çıkmaz.

Entropi: 129 bitVery Strong

Bir Parolayı Güçlü Yapan Nedir

Güçlü bir makine tarafından oluşturulmuş parolanın iki özelliği vardır: yüksek entropi (tahmin edilemezlik) ve desen yok (sözlük kelimeleri, klavye yürüyüşleri, ikameler yok).

Entropi bit cinsinden ölçülür. Her bit, bir saldırganın denemesi gereken olası parola sayısını ikiye katlar. N olası karakterden oluşan bir setten tekdüze rastgele seçilen bir parola, karakter başına log2(N) bit entropiye sahiptir.

Karakter setiKullanılabilir karakterlerKarakter başına entropi
Yalnızca küçük harf264,7 bit
Küçük harf + rakam365,2 bit
Karışık harf + rakam625,9 bit
Tam yazdırılabilir ASCII956,6 bit

Tam yazdırılabilir ASCII setinden 20 karakterlik bir parola yaklaşık 130 bit entropiye sahiptir. Yalnızca küçük harflerle sınırlı 20 karakterlik bir parola 94 bit’e sahiptir. Karakter seti önemlidir, ancak uzunluk daha da önemlidir: 95 karakterlik bir setten bir karakter eklemek 6,6 bit entropi ekler. Karakter setini 26’dan 95’e ikiye katlamak, karakter başına yalnızca yaklaşık 1,9 bit ekler.

NIST SP 800-63B Parolalar Hakkında

NIST yönergeleri (2024’te güncellenmiştir), parola politikaları hakkındaki eski geleneksel bilgelikle çeliştikleri için bilinmeye değerdir:

Bir yöneticide saklanan makine tarafından oluşturulmuş parolalar için bu politika kısıtlamalarının hiçbiri önemli değildir. Tam entropi ve maksimum uzunluk kullanın.

Parola ve Passphrase Entropisi

20 karakterlik rastgele bir parola ve bir passphrase, farklı durumlar için farklı araçlardır.

4 kelimelik bir Diceware passphrase (7776 kelimeden rastgele seçilmiş):

correct horse battery staple

Entropi: log2(7776^4) ≈ 51,7 bit/kelime × 4 = yaklaşık 207 bit. 20 karakterlik rastgele bir paroladan daha fazla entropi.

6 kelimelik bir Diceware passphrase yaklaşık 310 bit’e sahiptir. Bu kırılamaz. Ayrıca yazılabilir ve ezberlenebilir, bu da onu şunlar için doğru seçim yapar:

Yöneticinizde saklanan her şey için rastgele karakter parolaları kullanın. Hatırlamanız veya düzenli olarak yazmanız gereken bir avuç kimlik bilgisi için passphrase’ler kullanın.

Web Crypto API vs Math.random()

Uygulama farkı ince değildir:

// YANLIŞ: Math.random() kriptografik olarak güvenli değil
function insecurePassword(length) {
  const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  return Array.from({ length }, () => chars[Math.floor(Math.random() * chars.length)]).join("");
}

// DOĞRU: crypto.getRandomValues() bir CSPRNG'dir
function securePassword(length) {
  const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";
  const array = new Uint32Array(length);
  crypto.getRandomValues(array);
  return Array.from(array, (n) => chars[n % chars.length]).join("");
}

% chars.length işlemi, karakter seti boyutu 2^32’ye eşit olarak bölünmediğinde küçük bir modülo yanlılığı ekler. 95 karakterlik bir set ve 32-bit rastgele değer için, yanlılık pratikte ihmal edilebilir düzeydedir (en yaygın karakterler, en az yaygın olanlardan yaklaşık %0,002 daha sık görünür). Güvenlik açısından kritik bir uygulama için, bu küçük yanlılığı bile ortadan kaldırmak için reddetme örneklemesi kullanın.

Bu Araç Parolaları Nasıl Oluşturur

Oluşturucu tamamen tarayıcınızda çalışır. Hiçbir parola herhangi bir sunucuya gönderilmez. Rastgelelik kaynağı, tüm modern tarayıcıların sunduğu ve işletim sistemi CSPRNG’sinden çekim yapan Web Crypto API’den crypto.getRandomValues() yöntemidir.

Oluşturduktan sonra, parolayı doğrudan parola yöneticinize kopyalayın. Değerin kaydedilebileceği veya senkronize edilebileceği ara konumlara (e-posta taslakları, not uygulamaları, sohbet pencereleri) yapıştırmaktan kaçının.