logo
GeekFormat

HMAC Oluşturucu ve Doğrulayıcı

Hashi algoritması

Önerilen anahtar uzunluğu, Hash çıkışının uzunluğuna karşılık gelir: SHA-1=20 bytes, SHA-256=32 bytes, SHA-384=48 bytes, SHA-512=64 bytes, SHA-512=64 bytes

Mesaj İçerikleri0 karakter
HMAC Signature (Hex)
Giriş bekleniyor…

Notlar

  • HMAC Genrates imzaları, kaynak ve bütünlük doğrulama algoritmalarına dayanan anahtar ve Hashi algoritmalarına dayanıyor
  • SHA-1 / SHA-256 / SHA-384 / SHA-512
  • Genrate ve hem yerel olarak tarayıcılarda, veri yükleme olmadan
  • Geçerlilik zaman serisi farklılıkları azaltmak için sabit uzunluk kullanır

HMAC imzalarını ücretsiz çevrimiçi oluşturma ve doğrulama, yaygın SHA serisi algoritmalarını destekler. API imzalama, Webhook doğrulama ve güvenlik entegrasyonu için idealdir.

İlgili Öneriler

Kullanım senaryoları

  • Stripe webhook geliştirme: Stripe ödeme geri çağrılarını hata ayıklayın, `Stripe-Signature` başlığının doğruluğunu doğrulayın
  • GitHub webhook entegrasyonu: GitHub Push ve Pull Request olayları için `X-Hub-Signature-256` imzasını doğrulayın
  • Shopify sipariş senkronizasyonu: Shopify sipariş güncelleme webhook'ları için `X-Shopify-Hmac-Sha256` imzasını doğrulayın
  • Slack bot imzaları: Slack olay geri çağrıları için `X-Slack-Signature`'ı doğrulayın
  • JWT geliştirme hata ayıklama: HS256 ile JWT imzalayın, token geçerliliğini doğrulayın
  • API istek imzalama: AWS Signature V4 veya özel API imzalama şemalarını uygulayın

Özellikler

  • Çoklu algoritma desteği: HMAC-SHA256/384/512, SHA1, MD5 — modern API'leri ve eski sistemleri kapsar
  • Webhook imza doğrulama: Otomatik ayrıştırma ile Stripe/GitHub/Shopify/Slack imza formatları için yerleşik destek
  • Üç çıktı formatı: Hex / Base64 / Base64URL — herhangi bir API veya platform gereksinimini karşılar
  • Gerçek zamanlı oluşturma: 300ms gecikme ile giriş değişikliğinde otomatik hesaplama, düğme tıklamaya gerek yok
  • İmza doğrulama modu: Beklenen imzayı yapıştırın ve karşılaştırın, gerçek zamanlı eşleşme sonucu gösterimi
  • Anahtar uzunluğu algılama: Kısa anahtarlar için uyarılar ile gerçek zamanlı anahtar gücü izleme
  • Tarayıcı tabanlı işleme: Yerel hesaplama için Web Crypto API, anahtarlar hiçbir zaman sunucuya yüklenmez
  • JWT desteği: HMAC-SHA256 çıktısı doğrudan HS256 imzalama için kullanılabilir

Nasıl Kullanılır

  1. Algoritma seçin: Varsayılan HMAC-SHA256, modern API'ler için önerilir
  2. Mesaj girin: Ham mesaj gövdesini veya API istek içeriğini yapıştırın
  3. Anahtar girin: Webhook Secret veya API Secret girin
  4. Format seçin: Çıktı formatını seçin (Stripe için hex, JWT için Base64URL)
  5. İmzayı doğrulayın: Doğrulama moduna geçin, beklenen imzayı yapıştırın ve karşılaştırın

Sık Sorulan Sorular

HMAC ile normal hash arasındaki fark nedir?

Normal hash fonksiyonları (SHA256 gibi) sadece mesajın özetini hesaplar — herkes hesaplayabilir. HMAC, hash sürecine gizli bir anahtar ekler, böylece sadece anahtara sahip olan taraflar geçerli bir imza oluşturabilir veya doğrulayabilir. HMAC hem mesaj bütünlüğünü hem de kimlik doğrulamayı garanti ederken, normal hash sadece bütünlüğü doğrular.

Stripe/GitHub/Shopify webhook imzaları nasıl doğrulanır?

Farklı platformlar imzalarını farklı biçimlendirir: Stripe, `Stripe-Signature` başlığını `t=timestamp,v1=hex_signature` biçimiyle kullanır ve `timestamp.payload` dizesini imzalar; GitHub, `X-Hub-Signature-256`'yı `sha256=hex_signature` biçimiyle kullanır; Shopify, `X-Shopify-Hmac-Sha256`'yı Base64 kodlu değerle kullanır. Bu araç, bu yaygın biçimlerin doğrudan doğrulanmasını destekler.

Hex, Base64 ve Base64URL çıktısı arasındaki fark nedir?

Hex onaltılık biçimdir (0-9, A-F), insan tarafından okunabilir, hata ayıklama için harika. Base64 daha kompakt olan 64 karakterlik bir kodlamadır, JSON'a gömmek için idealdir. Base64URL, URL için güvenli versiyondur (+/ yerine -_ kullanır), JWT başlıklarında ve URL parametrelerinde kullanılır.

Hangi HMAC algoritmasını kullanmalıyım?

**HMAC-SHA256 önerilir**: modern API'ler ve webhook'lar için standarttır (Stripe, GitHub, Shopify, Slack tarafından kullanılır), 32 bayt çıktı ve evrensel destek sunar. SHA-512 daha yüksek güvenlik sağlar ancak daha uzun çıktı (64 bayt). SHA1 sadece eski sistemler içindir. MD5 kullanımdan kaldırılmıştır ve sadece çok eski API'ler için kullanılmalıdır.

Anahtar uzunluğu için gereksinimler nelerdir?

Daha uzun anahtarlar daha güvenlidir. Minimum 16 karakter (128 bit) önerilir, üretim için 32+ karakter. Araç anahtar uzunluğunu izler ve çok kısaysa uyarır. Anahtarlar için kriptografik olarak güvenli rastgele sayı üreteçleri kullanın, basit parolalar veya tahmin edilebilir dizeler kullanmayın.

Neden imza doğrulama uyuşmazlık gösterir?

Yaygın nedenler: 1) Mesaj fazla boşluk veya satır sonu içeriyor; 2) Platform bileşik bir dize imzalıyor (örn. Stripe `timestamp.payload` imzalar); 3) İmza kaldırmanız gereken bir önek içeriyor (GitHub'ın `sha256=` gibi); 4) Farklı algoritma kullanılmış. Her iki tarafın da aynı parametreleri kullandığını kontrol edin.

HMAC JWT imzalama için kullanılabilir mi?

Evet. JWT'nin HS256 algoritması HMAC-SHA256'dır, HS512 ise HMAC-SHA512'dir. Bu aracın HMAC-SHA256 çıktısı doğrudan HS256 için imza içeriği olarak kullanılabilir. JWT Başlığı ve Payload'u Base64URL ile kodlanır, ardından HS256 ile imzalanır.

Bu çevrimiçi HMAC aracı güvenli mi?

Bu araç tüm hesaplamalar için tarayıcınızda yerel olarak Web Crypto API kullanır. Anahtarlar ve mesajlar hiçbir sunucuya gönderilmez. Bunu tarayıcı Geliştirici Araçları Network panelini açarak doğrulayabilirsiniz — hiçbir harici istek yapılmaz. Test ve geliştirme için uygundur; son derece hassas üretim anahtarları için yerel çevrimdışı araçlar kullanın.

HMAC imzaları taklit edilebilir mi?

Hayır. HMAC güvenliği anahtar gizliliğine ve hash algoritmasının çarpışma direncine bağlıdır. Yeterince uzun ve rastgele anahtarlarla, geçerli HMAC imzalarını taklit edebilen bilinen bir saldırı yoktur. Düzenli anahtar rotasyonu iyi bir güvenlik uygulamasıdır.

HMAC Oluşturucu ve Doğrulayıcı nedir?

HMAC (Hash-based Message Authentication Code), RFC 2104'te tanımlanan yaygın olarak kullanılan bir mesaj kimlik doğrulama teknolojisidir. HMAC, bir anahtarı bir mesajla birlikte hash fonksiyonundan geçirerek sabit uzunlukta bir imza üretir. Normal hash'lerden farklı olarak, HMAC bir imza oluşturmak veya doğrulamak için anahtarı bilmeyi gerektirir, böylece hem mesaj bütünlüğünü hem de kimlik doğrulamayı garanti eder.

**HMAC modern API güvenliğinin temelidir**. Stripe, GitHub, Shopify, Slack ve Twilio, isteklerin gerçekten platformdan geldiğinden emin olmak için webhook olaylarını HMAC-SHA256 ile imzalar. AWS, Signature V4 istek imzalama için HMAC-SHA256 kullanır. JWT'nin HS256 algoritması esasen HMAC-SHA256'dır. HMAC'i anlamak, API güvenliğini ustalaşmanın ilk adımıdır.

**Farklı platformların farklı imza formatları vardır**: Stripe'ın formatı `t=timestamp,v1=hex_signature`'dır ve `timestamp.payload`'ı imzalar; GitHub `X-Hub-Signature-256`'yı `sha256=hex_signature` formatıyla kullanır; Shopify `X-Shopify-Hmac-Sha256`'yı Base64 kodlu değerle kullanır. Bu araç, bu yaygın formatların otomatik ayrıştırmasını ve doğrulanmasını destekler.

**İmza doğrulama neden başarısız olur?** En yaygın neden mesaj formatı uyuşmazlığıdır: platform ham mesaj gövdesi yerine `timestamp.payload`'ı imzalıyor olabilir; veya mesaj fazla satır sonu içeriyor; veya imza kaldırılması gereken bir önek (`sha256=` gibi) içeriyor. Platform belgelerini dikkatlice kontrol edin ve ham onaltılık değeri kullanarak karşılaştırın.

Bu araç HMAC hesaplamaları için tarayıcının yerel **Web Crypto API**'sini (SubtleCrypto) kullanır — HTTPS ve TLS'yi çalıştıran aynı kriptografi kütüphanesi. Tüm hesaplamalar yerel olarak yapılır; anahtarlar ve mesajlar hiçbir sunucuya gönderilmez. Harici istek yapılmadığını doğrulamak için tarayıcı Geliştirici Araçları Network panelini açın.