İçeriğe geç
Araç

Secret Key Oluşturucu: JWT ve API İçin Rastgele Gizli Anahtar

Güncellendi: Son kontrol: Ekim 2026

Anahtarlar

    Anahtarlar tarayıcınızın kriptografik rastgele sayı kaynağıyla (crypto.getRandomValues) cihazınızda üretilir; sunucuya gönderilmez ve kaydedilmez. Üretilen anahtarı kaynak koduna veya herkese açık depolara yazmayın; ortam değişkeni ya da gizli anahtar kasasında saklayın.

    Kısaca cevap

    Secret key oluşturucu, JWT imzalama, oturum çerezleri, API anahtarları ve uygulama yapılandırmaları için kriptografik olarak güvenli rastgele anahtarlar üretir. Uzunluğu (128–512 bit) ve biçimi (Base64, Base64URL, hex veya harf-rakam) seçin; anahtarlar anında oluşur. HS256 ile imzalanan JWT'ler için en az 256 bit (32 bayt) önerilir. Anahtarlar tarayıcınızda üretilir, sunucuya gönderilmez.

    Bu sayfada

    Nasıl kullanılır?

    1. Uzunluğu seçin: Varsayılan 32 bayt (256 bit) çoğu kullanım için uygundur.
    2. Biçimi seçin: Kullanacağınız kütüphanenin beklediği biçimi seçin. Emin değilseniz Base64URL, hem ortam değişkenlerinde hem URL'lerde sorunsuz çalışır.
    3. Adedi belirleyin ve “Yeniden üret” ile yeni anahtarlar oluşturun. Her satırdaki kopyala düğmesiyle anahtarı panoya alın.

    Hangi uzunluk, hangi biçim?

    KullanımÖnerilen uzunlukNot
    JWT HS25632 bayt (256 bit)Anahtar, özet uzunluğundan kısa olmamalı
    JWT HS384 / HS51248 / 64 baytAlgoritmanın özet uzunluğu kadar
    Oturum ve çerez imzalama32–64 baytÇerçevenin belgesindeki biçime bakın
    AES-256 anahtarı32 baytGenellikle Base64 veya hex olarak saklanır
    API anahtarı32 baytHarf-rakam biçimi kopyalaması kolaydır

    Biçim yalnızca aynı rastgele baytların nasıl yazıldığını değiştirir: 32 baytlık bir anahtar Base64'te 44, Base64URL'de 43, hex'te 64 karakterdir. Harf-rakam biçiminde aynı güvenlik için 43 karakter üretilir. Önemli olan uzunluk ve rastgeleliktir.

    Neden şifre değil, rastgele anahtar?

    “benimgizlianahtarim2024” gibi insan yapımı bir değer, JWT imza anahtarı olarak kullanıldığında sözlük saldırısıyla bulunabilir. Saldırgan elindeki tek bir token ile anahtar tahminlerini çevrimdışı ve çok hızlı deneyebilir; anahtarı bulduğunda istediği kullanıcı adına geçerli token üretebilir. 256 bitlik rastgele bir anahtarı bu şekilde bulmak ise mümkün değildir. Ayrıntılar için JWT secret key oluşturma yazımıza bakabilirsiniz.

    Komut satırında aynı işlem

    openssl rand -base64 32
    openssl rand -hex 32

    Programlama dillerinde de güvenli kaynaklar vardır: Python'da secrets.token_urlsafe(32), Node.js'de crypto.randomBytes(32), .NET'te RandomNumberGenerator.GetBytes(32). Ayrıntılar Python secrets modülü ve CSPRNG nedir yazılarında.

    Anahtarı güvenle saklamak

    • Anahtarı kaynak koduna yazmayın ve Git deposuna eklemeyin; .env dosyalarını .gitignore içine alın.
    • Sunucuda ortam değişkeni, kullandığınız bulut sağlayıcısının gizli anahtar kasası veya çerçevenin gizli yapılandırma özelliğini kullanın.
    • Geliştirme, test ve canlı ortam için ayrı anahtarlar üretin.
    • Anahtarın sızdığından şüpheleniyorsanız hemen yenisiyle değiştirin; JWT kullanıyorsanız eski anahtarla imzalanmış token'lar geçersiz olur ve kullanıcıların yeniden giriş yapması gerekir.

    Kullanıcı şifresi gerekiyorsa şifre üretici, benzersiz kimlik değeri gerekiyorsa GUID oluşturucu daha uygun araçlardır; GUID'ler gizli anahtar olarak kullanılmamalıdır.

    Çerçevelere göre kullanım

    OrtamAnahtarın konduğu yerÖnerilen biçim
    Node.js (jsonwebtoken)Ortam değişkeni, ör. JWT_SECRETBase64URL veya hex
    ASP.NET CoreUser Secrets (geliştirme), ortam değişkeni veya anahtar kasası (canlı)Base64
    Laravel.env içindeki APP_KEY (base64: önekiyle)Base64, 32 bayt
    DjangoSECRET_KEY ayarı, ortam değişkeninden okunarakHarf-rakam, 50+ karakter

    Laravel ve Django gibi çerçevelerin kendi anahtar üretme komutları da vardır; bu araç, komut satırına erişiminiz olmadığında veya anahtarı farklı bir biçimde istediğinizde pratik bir alternatiftir. Hangi yolu seçerseniz seçin, anahtarın uzunluğu ve rastgele üretilmiş olması belirleyicidir.

    Sık sorulan sorular

    JWT secret key kaç karakter olmalı?

    HS256 için en az 256 bit (32 bayt) rastgelelik önerilir. Bu, Base64'te 44, hex'te 64 karakterlik bir anahtara karşılık gelir.

    Üretilen anahtarlar bir yere kaydediliyor mu?

    Hayır. Anahtarlar tarayıcınızın kriptografik rastgele sayı kaynağıyla cihazınızda üretilir; sunucuya gönderilmez ve kaydedilmez.

    Base64 mü hex mi kullanmalıyım?

    İkisi de aynı güvenliği sağlar. Kullandığınız kütüphane veya çerçeve hangisini bekliyorsa onu seçin; emin değilseniz Base64URL ortam değişkenlerinde sorunsuz çalışır.

    GUID'i secret key olarak kullanabilir miyim?

    Önerilmez. GUID'ler benzersiz kimlik için tasarlanmıştır; bazı sürümleri tahmin edilebilir bölümler içerir ve 122 bitten az rastgelelik taşır.