Tool

Password Generator

Kriptografik olarak güvenli, ayarlanabilir uzunluk ve karakter sınıflarıyla şifre üretici. Tarayıcıda çalışır.

Bu araç tarayıcınızda çalışır. Veriler dışarı çıkmaz.

Karakter sınıfları

Nasıl Çalışır

crypto.getRandomValues ile üretilen, kriptografik olarak güvenli rastgele şifreler. Uzunluk, karakter sınıfları ve filtreler ayarlanabilir. Hiçbir şey sunucuya gönderilmez.

Math.random() neden yeterli değil?

JavaScript’in Math.random() fonksiyonu kriptografik olarak güvenli değildir. V8 ve diğer motorlar genellikle xorshift128+ gibi hızlı ama tahmin edilebilir bir algoritma kullanır. Yeterli çıktıyı gözlemleyen biri, sonraki “rastgele” değerleri öngörebilir.

Şifre üretiminde crypto.getRandomValues zorunludur — bu, işletim sisteminin entropi havuzunu (Linux’ta /dev/urandom, macOS’ta Security.framework, Windows’ta CNG) kullanır.

Entropi neden önemli?

Şifre gücünün ölçüsü entropi (bit cinsinden):

entropi = uzunluk × log₂(alfabe_boyutu)

Örnekler:

UzunlukAlfabeEntropi
826 (sadece küçük harf)~38 bit — zayıf
1262 (a-z A-Z 0-9)~71 bit — güçlü
1694 (tüm yazdırılabilir ASCII)~105 bit — çok güçlü
2094~131 bit

Pratik eşikler:

  • < 40 bit: zayıf — modern GPU’larla saatler içinde brute force.
  • 60–80 bit: güçlü — özel donanım ve yıllar gerektirir.
  • > 80 bit: çok güçlü — gelecek 10 yılın brute-force kapasitesi karşısında bile dayanıklı.

Uzunluk vs karmaşıklık

Bir şifrenin gücünü artırmanın en verimli yolu karakter çeşitliliğini değil, uzunluğu artırmaktır. 20 karakter küçük harf (~94 bit), 8 karakter sembolden (~52 bit) çok daha güçlü.

Tek bir karakter eklemek alfabe sayısı kadar olasılığı çarpan; bir sembol sınıfı eklemek sadece sabit bir çarpan ekler.

Modulo bias

Bir saf “rastgele 8-bit sayı → karakter” eşlemesi byte % charset.length ile yapılırsa, bazı karakterler diğerlerinden daha sık gelir. Örnek: charset.length = 62 ise, 0-255 arası 256 sayı 62’ye tam bölünmez (256 % 62 = 8). İlk 8 karakter %1.6 daha sık seçilir.

Bu araç rejection sampling kullanır: maxValid = 256 - (256 % setSize)’dan büyük byte’lar atılır. Sonuç: tam düzgün (uniform) dağılım, herkes eşit olasılıkla seçilir.

”Karışan karakterleri hariç tut”

Şifre kâğıda yazılacak veya yüksek sesle okunacaksa 0/O, 1/l/I, | ayrımı zor. Bu seçenek o karakterleri çıkarır. Entropi düşer — pratiklik için bilinçli ödün.

”Shell-safe”

Üretilen şifre bash, SQL connection string, URL veya .env dosyasına yazılacaksa, escape gereken karakterler ($, `, ", ', \, ;, |, &, <, >, (, )) sorun çıkarır. Bu filtre onları çıkarır — sonraki escape ihtiyacını ortadan kaldırır.

Bu araç ne için değildir

  • Production secret yönetimi. Üretilen şifreyi sırayla bir password manager’a (1Password, Bitwarden, KeePassXC) veya secret store’a (Vault, AWS Secrets Manager) kaydet — burada bırakma.
  • Master password seçimi. Master password için diceware-style passphrase daha iyi: hatırlanabilir + yüksek entropi. (Bu araç V1.2 yol haritasında.)
  • Paylaşılan secret üretimi. İki tarafın aynı şifreyi bilmesi gereken senaryolarda, key exchange protokolleri (HKDF, Diffie-Hellman) daha uygun.

Gizlilik

Bu araç tamamen tarayıcıda çalışır. Üretilen şifreler sunucuya gönderilmez. Yine de:

  • Üretilen şifreyi clipboard’a kopyalarsanız, diğer uygulamaların erişimine açık olur.
  • Tarayıcı eklentilerinden bazıları DOM içeriğini okuyabilir.
  • Ekran paylaşımı sırasında şifre görünürse, kayıt edilebilir.

Hassas hesaplar için: üret, kopyala, password manager’a yapıştır, clipboard’u temizle.