HMAC Oluşturucu

Metin ve anahtardan anahtarlı özet mesaj doğrulama kodu oluşturun.

Nasıl hesaplanır?

HMAC, gizli bir anahtarı hash içine katar; böylece değeri yalnızca anahtarı bilen biri üretebilir veya doğrulayabilir: HMAC(K, m) = H((K ⊕ opad) ‖ H((K ⊕ ipad) ‖ m)). Burada H seçilen hash, m mesaj metni, K anahtardır. Araç SHA-256 (varsayılan), SHA-1, MD5 ve SHA-512 algoritmalarını destekler; başka bir değer SHA-256'ya döner. Metin ve anahtar alanlarının ikisi de dolu olmalıdır. Çıktı küçük harfli onaltılık sistemdedir: SHA-256 için 64, SHA-512 için 128, SHA-1 için 40, MD5 için 32 karakter. Aynı metin, anahtar ve algoritma her zaman aynı değeri verir; tek karakter değişirse sonuç tamamen farklı olur.

Örnek hesaplama

Mesaj order=1042&amount=59.90, anahtar s3cret-key, algoritma SHA-1. Araç HMAC yapısını metnin baytlarına uygular ve 40 onaltılık karakter döndürür: 7b77ae021175ae405bff9d1e83b136dde61744ff. Aynı anahtara sahip bir sunucu, aldığı mesajdan bu değeri yeniden hesaplar ve gönderilenle karşılaştırır; mesajda tek karakter değişirse değerler tutmaz.

Bu örneği dene →

Sık yapılan hatalar

  • Metne veya anahtara sondaki boşluk ya da satır sonu eklemek. Bu girdinin parçasıdır ve sonuç tamamen değişir.
  • Farklı algoritmalarla üretilen HMAC'leri karşılaştırmak. Aynı girdi için SHA-1 ve SHA-256 çıktıları asla eşleşmez.
  • HMAC'i şifreleme sanmak. Mesaj gizlenmez ve değerden geri elde edilemez; yalnızca bütünlüğü ve anahtarın bilindiğini kanıtlar.
  • Kısa veya tahmin edilebilir anahtar kullanmak. Güvenlik anahtara dayanır; zayıf anahtar tahminle bulunabilir.
  • Gerçek bir canlı ortam sırrını herhangi bir çevrimiçi araca yapıştırmak; test anahtarı kullanın.

Bu hesaplama hakkında

Bu araç, bir mesajın hem bütünlüğünü hem de kimliğini doğrulamak için bir gizli anahtarı bir özet (hash) fonksiyonuyla (SHA256, SHA1, MD5 veya SHA512) birleştiren kriptografik bir yapı olan HMAC'i (Anahtar Tabanlı Mesaj Doğrulama Kodu) üretir. Sıradan bir özetten farklı olarak HMAC, gizli anahtar bilinmeden yeniden üretilemez; bu yüzden mesajın değiştirilmediğini ve o anahtara sahip biri tarafından gönderildiğini kanıtlar.

Geliştiriciler HMAC'i API isteklerini imzalamak (birçok REST API, çağrıları bu şekilde doğrular), webhook yüklerini doğrulamak, JWT'leri korumak ve oturum jetonlarını güvence altına almak için kullanır. MD5 ve SHA1 kriptografik olarak zayıf kabul edildiğinden, güvenlik açısından hassas çoğu kullanımda SHA256 günümüzün standardıdır.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Çıktı onaltılık bir etikettir; aynı metin ve anahtar her zaman aynı etiketi verir, bu da webhook imzasını ya da API isteğini doğrulamak için kullanışlıdır. İki tarafın da boşluklar ve satır sonları dahil birebir aynı baytları kullanması gerekir, yoksa etiketler farklı çıkar. Gerçek bir üretim anahtarını herhangi bir web sayfasına yapıştırmayın; yeni işlerde MD5 ya da SHA-1 yerine SHA-256 veya SHA-512 tercih edin. Etiketiniz sunucununkiyle uyuşmuyorsa o hangi algoritmayı kullanıyor?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar