HMAC imzaları
HMAC tarayıcınızda Web Crypto ile hesaplanır; anahtar ve mesaj gönderilmez. Webhook doğrularken imzayı, gelen isteğin ham gövdesi üzerinden hesaplayın: boşluk veya alan sırası değişirse sonuç da değişir. Gerçek üretim anahtarlarınızı web sayfalarına yazmamaya özen gösterin.
Kısaca cevap
Mesajı ve gizli anahtarı yazın; araç aynı anda HMAC-SHA256, SHA-512, SHA-384 ve SHA-1 imzalarını hesaplar. Anahtarı metin, hex veya Base64 olarak, sonucu hex veya Base64 olarak seçebilirsiniz. Webhook doğrulamasında, sağlayıcının gönderdiği imzayı bu sonuçla karşılaştırırsınız; eşleşiyorsa mesaj değiştirilmemiş ve anahtarı bilen taraftan gelmiştir. Hesaplama tarayıcınızda yapılır.
Bu sayfada
Nasıl kullanılır?
- Mesajı yazın: İmzalanan veriyi (çoğunlukla isteğin ham gövdesi) olduğu gibi yapıştırın.
- Gizli anahtarı girin ve biçimini seçin. Sağlayıcı anahtarı hex veya Base64 olarak verdiyse ilgili biçimi seçmeyi unutmayın; metin olarak girilirse sonuç farklı çıkar.
- Sonuç biçimini seçin. İmzalar sağda anında güncellenir; her birini kopyalayabilirsiniz.
Örneğin anahtar gizli-anahtar, mesaj merhaba olduğunda HMAC-SHA256 sonucu 0aa2ac0fc13599bb2a993f0a26f83365bdf6b2c0004412bb8b0593664e03501b’dir. Aracı kendi kodunuzun çıktısıyla karşılaştırmak için bu örneği kullanabilirsiniz.
HMAC nedir?
HMAC (Hash-based Message Authentication Code, RFC 2104), bir mesajı gizli bir anahtarla birlikte özet fonksiyonundan geçirerek bir doğrulama kodu üretir. Düz bir SHA-256 özetini herkes hesaplayabilir; HMAC’i ise yalnızca anahtarı bilen hesaplayabilir. Bu sayede alıcı iki şeyden emin olur: mesaj yolda değiştirilmemiştir ve anahtarı bilen biri tarafından gönderilmiştir. Konuyu ayrıntılı olarak HMAC nedir yazısında anlattık; düz özetler için MD5 ve SHA-256 hesaplama aracına bakabilirsiniz.
Nerelerde kullanılır?
- Webhook imzaları: GitHub, ödeme sağlayıcıları ve birçok servis, gönderdikleri isteğin gövdesini paylaşılan bir anahtarla HMAC-SHA256 ile imzalayıp bir başlıkta iletir.
- API kimlik doğrulama: İstek parametreleri ve zaman damgası HMAC ile imzalanır; sunucu aynı hesabı yaparak isteği doğrular.
- JWT: HS256 algoritmalı JSON Web Token’ların imzası HMAC-SHA256’dır. Güçlü bir anahtar için secret key oluşturucu aracını kullanabilirsiniz.
- TOTP: İki adımlı doğrulama kodları, zaman sayacının HMAC’inden üretilir; 2FA kod oluşturucu aracında deneyebilirsiniz.
İmza tutmuyorsa
- Gövde birebir aynı olmalı: JSON’u biçimlendirmek, boşluk eklemek veya alan sırasını değiştirmek imzayı değiştirir. Kodunuzda imzayı, ayrıştırılmış nesneden değil ham gövdeden hesaplayın.
- Anahtar biçimi: Hex veya Base64 verilen bir anahtarı metin olarak kullanmak en sık hatadır.
- Önek ve biçim: Bazı servisler imzanın başına
sha256=ekler veya sonucu Base64 olarak gönderir; karşılaştırmadan önce aynı biçime getirin. - Karşılaştırma: Sunucu kodunda imzaları sabit süreli karşılaştırma fonksiyonuyla (ör.
hash_equals,hmac.compare_digest) kontrol edin.
Sık sorulan sorular
HMAC-SHA256 nasıl hesaplanır?
Mesajı ve gizli anahtarı araca yazın; HMAC-SHA256 sonucu sağda hex veya Base64 olarak anında görünür. Kodda ise dilin kripto kütüphanesindeki HMAC fonksiyonu, anahtar ve mesajla çağrılır.
HMAC ile SHA-256 arasındaki fark nedir?
SHA-256 bir özet fonksiyonudur ve herkes aynı veriden aynı özeti hesaplayabilir. HMAC-SHA256 ise gizli bir anahtar da kullanır; sonucu yalnızca anahtarı bilen taraflar üretebilir ve doğrulayabilir.
Webhook imzam neden tutmuyor?
En sık sebepler, gövdenin biçimlendirilmiş veya yeniden sıralanmış olması, anahtarın yanlış biçimde (metin yerine hex veya Base64) girilmesi ve imzanın önündeki sha256= gibi öneklerdir.
Gizli anahtarım bir yere gönderiliyor mu?
Hayır. HMAC tarayıcınızda Web Crypto ile hesaplanır; anahtar ve mesaj gönderilmez. Yine de üretim ortamı anahtarlarını web sayfalarına yazmamaya özen gösterin.



