Parola Oluşturucu

Özelleştirilebilir uzunluk ve karakter kümeleri ile güçlü rastgele parolalar oluşturun

Uzunluk20
Miktar5

Parola Oluşturucu Nedir?

Parola oluşturucu, kullanıcı hesapları, API anahtarları, veritabanı kimlik bilgileri ve şifreleme sırları olarak kullanılmak üzere rastgele karakter dizileri oluşturur. İnsan tarafından seçilen parolardan farklı olarak, oluşturulan parolalar olası karakter kombinasyonlarının tüm uzayından çeker; bu da onları sözlük saldırılarına ve örüntü tabanlı tahminlere karşı dirençli kılar. Bu araç, tarayıcınızın yerleşik kriptografik rastgele sayı üreticisini kullanarak çevrimiçi olarak güçlü rastgele parolalar oluşturur.

Parola gücü iki faktöre bağlıdır: uzunluk ve karakter çeşitliliği. Büyük harf, küçük harf, rakam ve sembol kullanan 20 karakterli bir parola yaklaşık 131 bit entropi sağlar. Bu düzeyde, saniyede bir trilyon deneme yapan bir kaba kuvvet saldırısının her kombinasyonu denemesi evrenin yaşından daha uzun sürer. Matematik basittir: entropi = uzunluk x log2(karakter kümesi boyutu).

NIST SP 800-63B gibi standartlar, doğrulayıcı tarafından zorunlu tutulan üst sınır olmaksızın en az 8 karakterlik parolalar önerir ve kesinlikle bir sembol gerektirmek gibi zorunlu kompozisyon kurallarını caydırarak daha uzun parola öbeklerini tercih eder. Makineden makineye kimlik bilgileri ve hizmet hesapları için, çoğu güvenlik çerçevesinde ve uyumluluk rejiminde kabul gören temel, tam bir karakter kümesinden çekilen 20 veya daha fazla rastgele karakterdir.

Neden Parola Oluşturucu Kullanmalısınız?

İnsanlar yetersiz rastgele sayı üreticileridir. Parolaları yeniden kullanır, sözlük kelimeleri seçer, harfleri öngörülebilir kalıplarla değiştirir (a için @, e için 3) ve kısa dizilere başvururuz. Parola oluşturucu, süreçten insan önyargısını kaldırır.

🔐
Gizlilik öncelikli oluşturma
Parolalar, Web Crypto API kullanılarak tamamen tarayıcınızda oluşturulur. Hiçbir karakter cihazınızdan ayrılmaz, hiçbir şey günlüğe kaydedilmez ve oluşturma sırasında ağ isteği yapılmaz.
Anlık toplu çıktı
Tek tıklamayla aynı anda 20 adede kadar parola oluşturun. Parola sağlama komut dosyaları veya kimlik bilgisi kasaları için tek tek ya da tümünü birden kopyalayın.
🛡️
Hesap gerektirmez
Kayıt yok, e-posta yok, oluşturulan parolalarınızı izleyen çerez yok. Sayfayı açın, seçeneklerinizi yapılandırın ve oluşturun.
🎛️
Tam karakter kümesi denetimi
Büyük harf, küçük harf, rakam ve sembolleri bağımsız olarak açıp kapatın. Herhangi bir sistem veya ilkenin gereksinimlerine uyacak şekilde uzunluğu 4 ile 128 karakter arasında ayarlayın.

Parola Oluşturucu Kullanım Senaryoları

Frontend Geliştirme
Form doğrulama, giriş uzunluğu testi ve kimlik doğrulama akışı geliştirmesi için test parolaları oluşturun. Giriş formlarınızın 128 karakterlik parolaları ve özel karakterleri doğru şekilde işlediğini doğrulayın.
Backend & DevOps
Altyapı kurulumu sırasında veritabanı kimlik bilgileri, API token'ları ve hizmet hesabı parolaları oluşturun. Tek bir oturumda birden fazla hizmeti sağlamak için toplu oluşturmayı kullanın.
Güvenlik Mühendisliği
Şifreleme anahtarları, HMAC imzalama ve JWT sır rotasyonu için yüksek entropili sırlar oluşturun. 256 bit entropiyi aşması gereken sırlar için uzunluğu 64 veya daha fazla karaktere ayarlayın.
QA & Sızma Testi
Belirli karakter kümelerini dahil eden veya dışlayan diziler oluşturarak parola ilkesi uygulamasını test edin. Sistemlerin minimum uzunluk veya karmaşıklığın altındaki parolaları doğru şekilde reddettiğini doğrulayın.
Veri Mühendisliği
Test ortamları, hazırlık veritabanları ve CI/CD pipeline sırları için rastgele kimlik bilgileri oluşturun. Her ortam için yeni kimlik bilgileri oluşturarak test verilerinde üretim parolalarının yeniden kullanımını önleyin.
Kişisel Hesap Güvenliği
Her çevrimiçi hesap için benzersiz parolalar oluşturun. Ezberlemenize gerek olmayan kimlik bilgilerini saklamak için bu oluşturucuyu bir parola yöneticisiyle birleştirin.

Parola Entropisi Başvurusu

Entropi, bir parolanın ne kadar tahmin edilemez olduğunu ölçer. log2(karakter_kümesi_boyutu ^ uzunluk) olarak hesaplanır. Daha yüksek entropi, saldırganın arama yapabileceği daha fazla olası kombinasyon anlamına gelir. NIST ve OWASP, yüksek güvenlikli uygulamalar için en az 80 bit entropi önerir.

UzunlukKarakter KümesiEntropiKaba Kuvvet Süresi
8lower + digits~41 bitsMinutes to hours
12lower + upper + digits~71 bitsCenturies (offline)
16all character sets~105 bitsBeyond brute-force
20all character sets~131 bitsBeyond brute-force
32all character sets~210 bitsBeyond brute-force
64all character sets~419 bitsBeyond brute-force

Kırma süreleri saniyede 1 trilyon deneme varsayar (modern GPU'larla çevrimdışı saldırı). Hız sınırlamalı çevrimiçi saldırılar çok daha yavaştır.

Parola Oluşturmada CSPRNG ile Math.random()

Rastgelelik kaynağı, parola uzunluğu kadar önemlidir. Tahmin edilebilir bir rastgele sayı üreticisiyle oluşturulan bir parola, algoritmayı ve tohum durumunu bilen bir saldırgan tarafından yeniden oluşturulabilir. Bu araç, her modern tarayıcıya yerleşik bir kriptografik olarak güvenli sözde rastgele sayı üreticisi (CSPRNG) olan crypto.getRandomValues() kullanır.

crypto.getRandomValues()
İşletim sistemi entropi kaynaklarını (donanım RNG, kesme zamanlaması vb.) kullanır. Saldırgan önceki tüm çıktıları bilse bile çıktı tahmin edilemez. Güvenlik açısından hassas işlemler için W3C Web Crypto spesifikasyonu tarafından zorunlu kılınmıştır.
Math.random()
Sınırlı bir entropi havuzundan tohumlanan deterministik bir algoritma kullanır. Tohum durumu biliniyorsa çıktı tahmin edilebilir. ECMAScript spesifikasyonu, Math.random() işlevinin kriptografik olarak güvenli rastgele sayılar sağlamadığını açıkça belirtmektedir. Parola oluşturmada asla kullanmayın.

Kod Örnekleri

Farklı dillerde programatik olarak parola oluşturun. Aşağıdaki tüm örnekler, Math.random() veya eşdeğer zayıf PRNG'ler yerine kriptografik olarak güvenli bir rastgele kaynak kullanır.

JavaScript (Web Crypto API)
// Generate a random password in the browser or Node.js 19+
function generatePassword(length = 20) {
  const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*'
  const values = new Uint32Array(length)
  crypto.getRandomValues(values)
  return Array.from(values, v => charset[v % charset.length]).join('')
}

console.log(generatePassword())    // → "kR7!mZp$Xw2&nLq9@Yf3"
console.log(generatePassword(32))  // → "Hd4%tNx!Qw8#mKp2Rv6&Zj0*Ls3Yb7@"
Python
import secrets
import string

def generate_password(length: int = 20) -> str:
    """Generate a cryptographically secure random password."""
    alphabet = string.ascii_letters + string.digits + string.punctuation
    return ''.join(secrets.choice(alphabet) for _ in range(length))

# Single password
print(generate_password())      # → "kR7!mZp$Xw2&nLq9@Yf3"

# Batch of 5 passwords
for _ in range(5):
    print(generate_password(24))

# Ensure at least one char from each category
def generate_strong(length: int = 20) -> str:
    required = [
        secrets.choice(string.ascii_uppercase),
        secrets.choice(string.ascii_lowercase),
        secrets.choice(string.digits),
        secrets.choice(string.punctuation),
    ]
    remaining = length - len(required)
    alphabet = string.ascii_letters + string.digits + string.punctuation
    all_chars = required + [secrets.choice(alphabet) for _ in range(remaining)]
    secrets.SystemRandom().shuffle(all_chars)
    return ''.join(all_chars)
CLI (OpenSSL / /dev/urandom)
# OpenSSL — generate 32 random bytes, base64-encode
openssl rand -base64 32
# → "x7Kp2mNqR4wZ8vLs1Yb0Hd6tFj3Xc9Ga5eUi+Wo="

# /dev/urandom with tr — alphanumeric + symbols, 20 chars
tr -dc 'A-Za-z0-9!@#$%^&*' < /dev/urandom | head -c 20; echo
# → "kR7!mZp$Xw2&nLq9@Yf3"

# pwgen (install: apt install pwgen / brew install pwgen)
pwgen -sy 20 5
# Generates 5 passwords, 20 chars each, with symbols
Go
package main

import (
    "crypto/rand"
    "fmt"
    "math/big"
)

func generatePassword(length int) (string, error) {
    charset := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()"
    result := make([]byte, length)
    for i := range result {
        idx, err := rand.Int(rand.Reader, big.NewInt(int64(len(charset))))
        if err != nil {
            return "", err
        }
        result[i] = charset[idx.Int64()]
    }
    return string(result), nil
}

func main() {
    pwd, _ := generatePassword(20)
    fmt.Println(pwd) // → "kR7!mZp$Xw2&nLq9@Yf3"
}

Sık Sorulan Sorular

Parola ne kadar uzun olmalıdır?
Kullanıcı hesapları için, karma karakter kümesinden 16 karakter 100 bitin üzerinde entropi sağlar; bu, mevcut tüm tehdit modelleri için yeterlidir. Makine sırları (API anahtarları, şifreleme anahtarları) için 32 veya daha fazla karakter kullanın. NIST SP 800-63B minimum 8 karakter belirler, ancak sistemlerin parolaları kesmeksizin çok daha uzun parolalara izin vermesini önerir.
Bu parola oluşturucu kullanımı güvenli midir?
Evet. Parolalar, Web Crypto API (crypto.getRandomValues) kullanılarak tarayıcınızda oluşturulur. Hiçbir sunucuya veri gönderilmez. Bunu, tarayıcınızın ağ sekmesini açıp Oluştur'a tıkladığınızda hiçbir istek yapılmadığını gözlemleyerek doğrulayabilirsiniz. Kaynak kodu, tarayıcınızın geliştirici araçlarında görünür istemci taraflı JavaScript'tir.
Parola entropisi nedir?
Entropi, bit cinsinden ifade edilen rastgelelik ölçüsüdür. N bit entropiye sahip bir parolanın 2^N olası değeri vardır. Örneğin, 95 adet yazdırılabilir ASCII karakterinden çekilen 20 karakterli bir parolanın log2(95^20) = 131,1 bit entropisi vardır. Her ek bit, saldırganın yapması gereken tahmin sayısını iki katına çıkarır.
Parolama sembol eklemeli miyim?
Sembol eklemek, karakter kümesini 62'den (harfler + rakamlar) 95'e (yazdırılabilir ASCII) çıkarır; bu da karakter başına yaklaşık 6,1 bit entropi ekler. Bazı sistemler hangi sembollere izin verileceğini kısıtlar. Bir sistem belirli sembolleri reddederse, semboller seçeneğini devre dışı bırakın ve daha uzun bir parolayla telafi edin. 24 karakterlik alfasayısal bir parolanın, sembol içeren 16 karakterlik paroladan daha fazla entropisi vardır.
Parola oluşturmak için neden Math.random() kullanılmamalıdır?
Math.random() kriptografik olarak güvenli değildir. Çoğu JavaScript motoru bunu, güvenlik için değil simülasyon ve oyunlar için tasarlanmış xorshift128+ veya benzeri hızlı bir PRNG ile uygular. Birkaç çıktıyı gözlemleyen bir saldırgan, iç durumu kurtarabilir ve gelecekteki tüm çıktıları tahmin edebilir. Web Crypto API, tahmin edilemeyen işletim sistemi entropi kaynaklarını kullanır.
Oluşturulan parolaları API anahtarları ve token'lar için kullanabilir miyim?
Evet, ancak hedef sisteminizin biçim gereksinimlerini göz önünde bulundurun. Bazı API'ler, rastgele karakterler yerine base64 kodlanmış anahtarlar veya hex dizileri bekler. Ham sır oluşturma için, 32 veya daha fazla karakterde tam karakter kümesini kullanın. Base64 anahtarlar için, base64'ü bir parola karakter kümesi olarak ele almak yerine rastgele baytlar oluşturun ve bunları ayrı ayrı kodlayın.
Parolalar ne sıklıkla değiştirilmelidir?
NIST SP 800-63B (2017, 2024'te güncellenmiştir), kullanıcı parolaları için zorunlu periyodik rotasyona karşı çıkar; çünkü bu durum daha zayıf parola tercihlerine yol açar. Yalnızca ele geçirildiğine dair kanıt olduğunda değiştirin. Makine sırları ve hizmet hesapları için, genellikle yüksek ayrıcalıklı kimlik bilgileri için her 90 günde bir olmak üzere kuruluşunuzun risk modeline göre rotasyon uygulayın.