HMAC Oluşturucu

Metin ve gizli anahtardan HMAC (hash tabanlı ileti kimlik doğrulama kodu) oluşturun. Çevrimiçi hesaplayıcı HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384 ve HMAC-SHA-512 algoritmalarını ve metin, onaltılık veya Base64 anahtarları destekler; sonucu küçük harfli onaltılık etiket olarak verir. Hesaplama tarayıcıda yerel olarak yapılır.

Gizli anahtar
Girdi
0 kar. · 0 bayt
Dene:
Hash
✓ İşleme tarayıcıda yerel olarak yapılır ✓ Girdi sunucuya gönderilmez
Örnekler
Boş ileti
Anahtar: gizli Algoritma: hmac-sha-256 Anahtar formatı: text
Girdi (boş)
Çıktı 1784bed7129398aa23e8d6a619f0cfac71d932d20ab7814ba794818c4452a442

Boş ileti geçerli girdidir. HMAC-SHA256, “gizli” anahtarıyla 64 karakterlik bir hex etiket üretir.

Metin anahtarı
Anahtar: gizli Algoritma: hmac-sha-256 Anahtar formatı: text
Girdi Merhaba dünya!
Çıktı 6bebb7987fcd0e1c0323d86a907deadf066b1bd7d8a80e50ae59f69c53bd4c89

UTF-8 metin anahtarı “gizli” ile “Merhaba dünya!” için HMAC-SHA256.

Farklı ileti ve anahtar
Anahtar: anahtar Algoritma: hmac-sha-256 Anahtar formatı: text
Girdi doğrulama
Çıktı fc16a76d234f569513466fdf13df8c31c0a0b28ddfd5d03930ed3d2fbca6d0a9

İleti veya gizli anahtar değiştiğinde tamamen farklı HMAC-SHA256 etiketi oluşur.

RFC 4231 HMAC-SHA256 test vektörü
Anahtar: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b Algoritma: hmac-sha-256 Anahtar formatı: hex
Girdi Hi There
Çıktı b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7

RFC 4231 test durumu 1, hex biçiminde 20 baytlık anahtar kullanır ve HMAC-SHA256 uygulamalarını denetlemeyi sağlar.

HMAC nedir?

HMAC (Hash-based Message Authentication Code), kriptografik bir hash işlevini gizli anahtarla birleştirir. RFC 2104 ile tanımlanan algoritma, her uzunluktaki iletiyi sabit uzunlukta kimlik doğrulama etiketine dönüştürür. HMAC-SHA256 en yaygın güncel türdür; HMAC-SHA384 ve HMAC-SHA512 daha uzun etiketler üretirken HMAC-SHA1 eski protokollerde bulunabilir.

Aynı anahtara sahip alıcı HMAC değerini yeniden hesaplayıp etiketleri karşılaştırabilir. Eşleşme, iletinin değişmediğini ve paylaşılan sırrı bilen biri tarafından oluşturulduğunu gösterir. HMAC simetrik bir ileti kimlik doğrulama kodudur; şifreleme veya açık anahtarlı dijital imza değildir.

HMAC nasıl çalışır?

Basitleştirilmiş gösterimde HMAC, H((K′ ⊕ opad) || H((K′ ⊕ ipad) || ileti)) hesaplar. Anahtar hash işlevinin blok boyutuna uyarlanır ve iç/dış işlemlerde iki sabitle birleştirilir. Böylece hash(anahtar || ileti) gibi naif yapılardaki uzunluk genişletme sorunu önlenir.

HMAC-SHA1 20 bayt (40 hex karakter), HMAC-SHA256 32 bayt (64), HMAC-SHA384 48 bayt (96), HMAC-SHA512 ise 64 bayt (128) üretir. Oluşturucu tam etiketi kısaltmadan küçük harfli onaltılık biçimde gösterir.

HMAC oluşturucu nasıl kullanılır?
  1. İletiyi tam olarak girin.
  2. HMAC-SHA256, HMAC-SHA1, HMAC-SHA384 veya HMAC-SHA512 seçin.
  3. Anahtar biçimini seçin: metin, hex veya Base64.
  4. Gizli anahtarı girip onaltılık sonucu kopyalayın.

İleti her zaman UTF-8 olarak kodlanır. Metin modunda anahtar da UTF-8 kullanır; hex ve Base64 önce baytlara çözümlenir. Boşluklar, satır sonları, harf büyüklüğü, Unicode, algoritma ve anahtar biçimi sonucu değiştirir.

API, webhook ve JWT için HMAC

HMAC; API istekleri, webhook yükleri, oturum verileri ve protokol iletilerini doğrulamakta sık kullanılır. Doğrulamada etiket aynı baytlar ve paylaşılan sırla yeniden hesaplanıp sabit sürede karşılaştırılır. Zaman damgası veya nonce tekrar saldırılarını önleyebilir.

Her zaman ilgili belirtime uyun: API kanonik istek isteyebilir, webhook ham HTTP gövdesini imzalayabilir ve JWT HS256 hex yerine Base64URL kullanır. Bu araç girilen metnin HMAC değerini hesaplar; sağlayıcıya özel dize oluşturmaz, Base64URL’ye dönüştürmez ve mevcut etiketi otomatik doğrulamaz.

SSS

İki taraf bir sır paylaşıyor ve kasıtlı değişiklikleri ya da sırrı bilen göndericiyi doğrulamak istiyorsa HMAC kullanın. İletiyi değiştiren herkes normal SHA-256 değerini yeniden hesaplayabilir. Paylaşılan sır olmadan herkese açık doğrulama için dijital imza kullanın.

HMAC-SHA256 için rastgele 32 baytlık anahtar iyi bir varsayımdır. Kriptografik olarak güvenli biçimde üretip sır yöneticisinde koruyun. Parola, tahmin edilebilir ifade, yeniden kullanılan sır ve istemci koduna gömülü anahtar kullanmayın.

HMAC anahtarı baytlardan oluşur ancak ayarlarda çoğunlukla hex veya Base64 metni olarak saklanır. Metin modu UTF-8 kodlar; hex ve Base64 özgün baytları çözer. “616263”, “YWJj” ve “abc” yalnızca karşılık gelen biçimlerde aynı baytları temsil eder.

Hesaplama Web Crypto API ile yerel olarak yapılır; ileti ve anahtar hesaplama için sunucuya gönderilmez. Tercih depolamaya izin verilirse anahtar alanı tarayıcının yerel deposunda kalabilir. Paylaşılan cihazda alanı ve site verilerini temizleyin.

Protokolün istediği algoritmayı kullanın. HMAC-SHA256 yeni entegrasyonlarda yaygın bir seçimdir; belirtim gerektiriyorsa SHA384 veya SHA512 kullanın. SHA1 yalnızca uyumluluk için tutulmalıdır.

Hayır. HMAC tek yönlüdür. Doğrulamak için özgün ileti ve aynı anahtar gerekir: etiketi yeniden hesaplayıp beklenen değerle karşılaştırın.

Aynı algoritma ve anahtar biçimini seçip iletiyle anahtarı tam olarak girin ve etiketleri karşılaştırın. Uygulama kodunda sabit süreli bayt karşılaştırması kullanın. Hesaplayıcıda ayrı otomatik doğrulama alanı yoktur.

Algoritmayı, anahtar biçimi ve baytlarını, kodlamayı, harf büyüklüğünü, boşlukları, satır sonlarını, JSON serileştirmeyi ve Unicode normalleştirmeyi kontrol edin. API ve webhook için tam ham gövde veya kanonik dizeyi ve hex, Base64 ya da Base64URL biçimini de doğrulayın.

HS256, HMAC-SHA256 kullanır ancak Base64URL kodlu başlık ve yükü imzalar ve imzayı dolgusuz Base64URL olarak kodlar. Bu araç hex döndürür ve tam JWT oluşturmaz.
İlgili araçlar

MD5 Hash Üretici

Metnin MD5 hash değerini tarayıcınızda yerel olarak hesaplayın.