PBKDF2 ve HKDF Anahtar Türetme

PBKDF2 veya HKDF ile bir paroladan ya da sırdan anahtar türetin; salt, yineleme sayısı veya info etiketini, hash'i ve çıktı uzunluğunu seçin ve sonucu hex ya da base64 olarak okuyun; tümü tarayıcınızda gerçekleşir.

Araç yükleniyor…

PBKDF2 ve HKDF Anahtar TüretmeBir parolayı PBKDF2 ile bir anahtara uzatın ya da yüksek entropili bir sırrı HKDF ile adlandırılmış alt anahtarlara genişletin; hiçbir şey cihazınızdan çıkmaz. Hash'i seçin, salt ve yineleme sayısını (PBKDF2) veya info etiketini (HKDF) belirleyin, kaç bit çıktı gerektiğini seçin ve türetilen anahtarı hex ya da base64 olarak kopyalayın. Her bayt yerel olarak yerleşik Web Crypto API (crypto.subtle.deriveBits) ile hesaplanır, böylece parolanız ve sırrınız asla bir sunucuya değmez.

PBKDF2 ve HKDF Anahtar Türetme nedir?

PBKDF2 ve HKDF Anahtar Türetme, geliştiricilerin en sık başvurduğu iki anahtar türetme fonksiyonunu çalıştıran ücretsiz bir tarayıcı içi araçtır. PBKDF2 (Parola Tabanlı Anahtar Türetme Fonksiyonu 2), bir HMAC'i binlerce kez tekrarlayarak kaba kuvvet saldırısını bilerek yavaşlatır ve insana ait bir parola ile bir salt'ı sabit uzunlukta bir anahtara dönüştürür. HKDF (HMAC Tabanlı Anahtar Türetme Fonksiyonu), zaten yeterli entropiye sahip bir sırrı alır ve bir info etiketi kullanarak onu bağlama bağlı bir ya da daha fazla alt anahtara genişletir; bu, tek bir ana sırdan ayrı şifreleme ve kimlik doğrulama anahtarları türetmek için idealdir. Backend mühendisleri, güvenlik gözden geçirenler ve oturum açma ya da şifreleme kodu yazan herkes bunu test vektörlerini denemek, bir sunucunun türetme işlemini yeniden üretmek veya tek seferlik bir görev için anahtar üretmek amacıyla kullanır. Algoritmayı değiştirmek için üstteki PBKDF2/HKDF düğmesini kullanın, SHA-256, SHA-384, SHA-512 veya SHA-1 seçin, çıktı uzunluğunu bit olarak ayarlayın ve sonucu hex ya da base64 olarak okuyun.

PBKDF2 ve HKDF Anahtar Türetme nasıl kullanılır

  1. Üstteki düğmeyle, kodunuzun ya da test vektörünüzün kullandığı fonksiyona uyacak şekilde PBKDF2 veya HKDF'yi seçin.
  2. Parolanızı (PBKDF2) ya da yüksek entropili sırrınızı (HKDF) Sır alanına yazın veya yapıştırın, ardından bir salt girin.
  3. PBKDF2 için yineleme sayısını ayarlayın; HKDF için anahtarı bir bağlama bağlayan isteğe bağlı info etiketini ayarlayın.
  4. Hash'i (SHA-256, SHA-384, SHA-512 veya SHA-1) ve çıktı uzunluğunu bit olarak seçin.
  5. Hex / base64 düğmesini ihtiyacınız olan kodlamaya getirin ve kopyalama düğmesiyle türetilen anahtarı kopyalayın.

Örnekler

PBKDF2 — bir paroladan 256 bitlik anahtar

Girdi

Sır: correct horse battery staple
Salt: a1b2c3d4
Hash: SHA-256, Yineleme: 100000, Bit: 256

Çıktı

aynı parola, salt, hash ve yineleme sayısıyla yeniden üretilebilen 64 karakterlik bir hex dizesi (32 bayt)

HKDF — bir ana sırdan bağlama bağlı alt anahtar

Girdi

Sır: 9f8e7d6c…(ana anahtar)
Salt: session-2024
Info: aes-gcm-encryption
Hash: SHA-256, Bit: 256

Çıktı

aynı sırrın Info: hmac-authentication ile verdiğinden farklı bir 256 bitlik anahtar; böylece tek bir ana sır bağımsız alt anahtarlar üretir

Daha kısa çıktı base64 olarak

Girdi

Bit: 128, kodlama base64'e geçirildi

Çıktı

türetilen ilk 16 baytı kodlayan 24 karakterlik bir base64 dizesi

Sıkça sorulan sorular

Parolam veya sırrım herhangi bir yere gönderiliyor mu?
Hayır. Sır, salt ve info tarayıcınızda kalır. Anahtar, Web Crypto API (crypto.subtle.deriveBits) ile yerel olarak türetilir ve hiçbir şey herhangi bir sunucuya yüklenmez veya orada saklanmaz; bu yüzden araç çevrimdışı çalışır ve girdileriniz asla sayfadan çıkmaz.
PBKDF2'yi mi yoksa HKDF'yi mi ne zaman kullanmalıyım?
Düşük entropili, insana ait bir paroladan anahtar türetmek için PBKDF2 kullanın; yineleme sayısı kaba kuvveti yavaşlatır. Zaten yüksek entropili bir sırra (bir ana anahtar veya paylaşılan sır) sahipseniz ve onu info etiketiyle bir ya da daha fazla ayrı alt anahtara genişletmek istiyorsanız HKDF kullanın. HKDF hızlıdır ve PBKDF2'nin parola uzatmasının yerini tutmaz.
Çıktı uzunluğum neden yuvarlanıyor?
Web Crypto'nun deriveBits'i tam bayt birimleriyle çalışır, bu yüzden bit cinsinden çıktı uzunluğu en yakın 8'in katına yuvarlanır. Sonucun altındaki istatistik, gerçekte üretilen bit ve bayt sayısını gösterir.
Hangi hash'ler ve algoritmalar destekleniyor?
Her iki algoritma da tarayıcının Web Crypto'sunun PBKDF2 ve HKDF için sunduğu hash'ler olan SHA-256, SHA-384, SHA-512 veya SHA-1 üzerinde çalışır. scrypt, Argon2 ve bcrypt sağlanmaz çünkü tarayıcılar bunları yerel olarak uygulamaz.
Aynı girdiler her zaman aynı anahtarı verir mi?
Evet. Anahtar türetme deterministiktir: aynı algoritma, sır, salt, hash, çıktı uzunluğu ve yineleme sayısı (PBKDF2) veya info (HKDF) her zaman aynı baytları üretir; bu yüzden bunu sunucunuzun türettiği bir anahtarı yeniden üretmek ya da doğrulamak için kullanabilirsiniz.

İlgili araçlar