ESC

HMAC Üretici

HMAC çıktısı burada görünecek...

HMAC Karşılaştır

Tüm işlemler Web Crypto API kullanılarak tarayıcınızda gerçekleşir. Hiçbir veri sunucuya gönderilmez.

Kullanım Örnekleri

API Kimlik Doğrulama

REST API'lerde yaygın olarak kullanılan API istek doğrulaması için HMAC imzaları oluştürün.

Webhook Doğrulama

Stripe veya GitHub gibi servislerden gelen HMAC imzalarını karşılaştırarak webhook yüklerini doğrulayın.

JWT İmzalama

JSON Web Token (JWT) yük imzalaması için HMAC-SHA256 imzaları oluştürün.

Özellikler

Çoklu Algoritmalar

HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 ve HMAC-SHA1 algoritma desteği

HMAC Karşılaştırma

Mesaj bütünlüğünü doğrulamak için oluştürülan HMAC'ı beklenen değerle karşılaştırın

Çoklu Çıktı Formatları

Farklı entegrasyon ihtiyaçları için onaltılık veya Base64 kodlama çıktısı

Web Crypto API

Güvenli, tarayıcı tabanlı HMAC oluşturma için yerel Web Crypto API kullanır

Nasıl Kullanılır?

1

Mesaj ve Anahtar Girin

Mesajınızı yazın veya yapıştırın ve ilgili alanlara gizli anahtarınızı girin.

2

Algoritma Seçin

HMAC algoritmanızı (SHA-256, SHA-384, SHA-512 veya SHA-1) ve çıktı formatını seçin.

3

Oluşturun ve Kopyalayın

HMAC Oluştur'a tıklayın ve sonuçu kopyalayın. İsteğe bağlı olarak beklenen HMAC değeriyle karşılaştırın.

Sık Sorulan Sorular

HMAC (Hash-based Message Authentication Code), bir kriptografik hash fonksiyonunu gizli anahtarla birleştirerek imza üretir. Hem bütünlüğü (mesaj değiştirilmedi) hem de özgünlüğü (göndericinin gizli anahtarı bildiğini) kanıtlar. Anahtar olmadan kimse geçerli bir HMAC üretemez; bu yüzden düz hash'e kıyasla kimlik doğrulama amacıyla çok daha güçlüdür.

"hello" kelimesinin SHA-256 hash'i her zaman aynıdır: herkes hesaplayabilir. "hello" kelimesinin HMAC-SHA256'sı ise her gizli anahtar için farklı sonuç üretir. Düz hash yalnızca bütünlük sağlar (kurcalamayı tespit eder). HMAC ise bütünlük artı kimlik doğrulama sağlar (kimin imzaladığını kanıtlar). Bu yüzden API'lar istek imzalama için düz SHA-256 değil HMAC kullanır.

HMAC-SHA256, endüstri standardıdır ve çoğu servisin kullandığı algoritmadır: AWS Signature Version 4, Stripe webhook'ları, GitHub webhook'ları, Shopify webhook'ları. HMAC-SHA512 ekstra güvenlik marjı sağlar ve 64-bit donanımda SHA-256'dan daha hızlıdır. Yeni projeler için HMAC-SHA1'den kaçının; yalnızca gerektiren eski sistemlerle entegrasyonda kullanın.

Her ikisi de aynı HMAC değerini farklı kodlamalarla temsil eder. Hex (onaltılık), HMAC-SHA256 için 64 karakter üretir; elle okumak ve karşılaştırmak daha kolaydır. Base64 44 karakter üretir; daha kompakttır ve HTTP Authorization başlıklarında, JWT imzalarında ve API istek başlıklarında yaygın olarak kullanılır. Oluşturmadan önce hedef servisin hangi formatı beklediğini kontrol edin.

Stripe'dan bir webhook aldığınızda, payload; endpoint'inizin gizli anahtarıyla imzalanmış ham gövdenin HMAC-SHA256'sını içeren bir X-Stripe-Signature başlığıyla birlikte gelir. Doğrulamak için: gizli anahtarınızı kullanarak ham istek gövdesinin HMAC-SHA256'sını hesaplayın, ardından başlık değeriyle karşılaştırın. Eşleşirlerse webhook gerçektir. GitHub da aynı şekilde X-Hub-Signature-256 kullanır. Bu araç, kod yazmadan bu imzaları hesaplamanızı ve doğrulamanızı sağlar.

HMAC-SHA256 için önerilen anahtar uzunluğu en az 32 bayt (256 bit)'tir; hash çıktı boyutuyla eşleşir. Daha kısa anahtarlar güvenliği azaltır; daha uzun anahtarlar sorun yaratmaz. İnsan tarafından hatırlanabilecek dizileri asla anahtar olarak kullanmayın; bunlar çok tahmin edilebilirdir. Anahtarları kriptografik güvenli bir RNG ile oluşturun ve ortam değişkenlerinde ya da gizli yöneticisinde saklayın; asla kaynak kodunda değil.

Bir HMAC oluşturun, ardından beklenen HMAC değerini Karşılaştır alanına yapıştırın. Araç iki değeri karşılaştırarak eşleşip eşleşmediğini bildirir. Webhook imzalarını doğrulamak için kullanışlıdır: alınan payload ve anahtarınızdan beklenen HMAC'ı hesaplayın, ardından istek başlığındaki imzayla karşılaştırın. Eşleşme, webhook'un gerçek olduğunu doğrular.

Asla. Tüm HMAC oluşturma işlemleri, tamamen tarayıcınızda çalışan Web Crypto API (window.crypto.subtle.sign) kullanır. Anahtarınız, mesajınız ve HMAC çıktınız hiçbir sunucuya iletilmez. İnternetten bağlantınızı kesebilirsiniz; araç aynı şekilde çalışmaya devam eder.

HMAC Nedir?

HMAC, Hash Tabanlı Mesaj Doğrulama Kodu demek. SHA-256 gibi bir kriptografik hash fonksiyonunu gizli anahtarla birleştirerek, mesajın hem bütünlüğünü hem de doğruluğunu kanıtlayan bir imza üretir. Düz hashten farklı olarak HMAC, kodu sadece gizli anahtarı bilen birinin oluşturabileceğini garanti eder - bu yüzden API doğrulama, webhook doğrulama ve JWT imzalamanın bel kemiğidir.

HMAC'ı Gerçek Hayatta Nerede Görürsün?

Stripe, GitHub veya AWS ile entegrasyon yaptıysan HMAC kullanmışsındır. Stripe webhook yüklerini HMAC-SHA256 ile imzalar, böylece gerçekten Stripe'dan geldiğini doğrulayabilirsin. AWS, API istek imzalama için Signature Version 4'te HMAC-SHA256 kullanır. HS256 algoritmalı JWT'ler aslında HMAC-SHA256'dır. Bu araç kod yazmadan bu imzaları üretip doğrulamanı sağlar.

HMAC vs Düz Hash

"hello" kelimesinin SHA-256 hashi, kim hesaplarsa hesaplasın hep aynıdır. Ama "hello" kelimesinin HMAC-SHA256'sı her gizli anahtar için farklıdır - yani mesajın değiştirilmediğini VE anahtarı bilen biri tarafından oluşturulduğunu kanıtlar. Kritik fark bu: hash bütünlük verir, HMAC bütünlük artı doğrulama verir.

Doğru Algoritmayı Seçmek

HMAC-SHA256 endüstri standardı ve özel bir nedenin yoksa kullanman gereken algoritma. HMAC-SHA384 ve HMAC-SHA512 daha yüksek güvenlik marjları için daha uzun çıktılar üretir. HMAC-SHA1 eski sistemlerle geriye dönük uyumluluk için destekleniyor ama yeni uygulamalarda kullanılmamalı.

Güvenlik ve Gizlilik

Bu araç tamamen tarayıcında Web Crypto API ile çalışıyor - TLS'i yöneten aynı kriptografik implementasyon. Gizli anahtarın hiçbir zaman sunucuya dokunmuyor. Offline çalıştırarak bunu doğrulayabilirsin. Üretimde HMAC anahtarlarını her zaman ortam değişkenlerinde veya gizli yönetim sistemlerinde tut, asla istemci tarafı kodda değil.

Güvenlik ve Gizlilik

Verilerinizin güvenliği bizim önceliğimiz

Yerel İşleme

Tüm işlemler tarayıcınızda gerçekleşir

Veri Transferi Yok

Verileriniz sunucularımıza gönderilmez

Veri Depolama Yok

Hiçbir veri depolanmaz veya paylaşılmaz

SSL Şifreleme

Güvenli bağlantı için SSL şifreleme

Sonraki Adım

MoreOnlineTools'ta Daha Fazlası