# HMAC-SHA256 Oluşturucu

Bir mesaj ve gizli anahtardan HMAC-SHA256 imzası oluşturun. Araç ikisini de UTF-8 olarak kodlar, SHA-256 kullanarak RFC 2104'de tanımlanan HMAC yapısını uygular ve 256 bitlik etiketi hex veya Base64 biçiminde döndürür. Geliştiriciler bu aracı Stripe, GitHub veya Slack gibi hizmetlerden gelen webhook imzalarını hata ayıklamak, API isteklerini imzalamak ve sonuçları kendi kodlarıyla karşılaştırmak için kullanır. Anahtar döndürülmez veya günlüğe kaydedilmez.

## Sık sorulan sorular

### HMAC-SHA256 nedir?

HMAC-SHA256, RFC 2104'de tanımlandığı üzere SHA-256 ve gizli anahtarla oluşturulan bir mesaj doğrulama kodudur. Mesaj için doğru etiketi yalnızca anahtara sahip biri hesaplayabilir. Sonuç 32 bayt, yani 64 hex karakterdir.

### Webhook imzasını nasıl doğrularım?

Tam ham istek gövdesini mesaj, imzalama gizli anahtarınızı da anahtar olarak yapıştırın; ardından sonucu imza başlığıyla karşılaştırın. Birçok hizmet, Stripe'ın zaman damgası, nokta ve gövde gibi bileşenlerin birleşimini imzalar; bu nedenle mesajı ilgili belgelerde anlatıldığı şekilde oluşturun. Tek bir baytın değişmesi farklı bir etiket üretir.

### Bilinen bir test vektörü var mı?

RFC 4231 test durumu 2'de anahtar olarak Jefe, mesaj olarak what do ya want for nothing? kullanılır ve beklenen sonuç 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843'tür. Bu araç tam olarak bu değeri döndürür.

### Anahtar ve mesaj nasıl kodlanır?

Her ikisi de UTF-8 metni olarak kodlanır. Bazı hizmetlerde olduğu gibi gizli anahtarınız hex veya Base64 biçiminde verilmişse baytlar gördüğünüz metinden farklıdır; önce kendi kodunuzda anahtarın kodunu çözmeniz gerekir. Her iki alandaki boşluklar ve satır sonları da hesaba katılır.

### Gizli anahtarım saklanıyor mu?

Hayır. Anahtar yalnızca istek sırasında etiketi hesaplamak için kullanılır. Yanıta eklenmez, günlüğe kaydedilmez ve saklanmaz.

### Anahtar boş veya çok uzun olabilir mi?

HMAC, boş anahtar dahil her uzunluktaki anahtarı kabul eder. RFC'de belirtildiği gibi 64 bayttan uzun anahtarların önce SHA-256 ile özeti alınır. Gerçek kullanımda en az 32 baytlık rastgele bir anahtar seçin.

### Hex mi yoksa Base64 mi seçmeliyim?

Karşı tarafın gönderdiği biçimi kullanın. GitHub ve Stripe hex kullanırken Slack, hex değerinin önüne v0= ekler; birçok AWS ve JWT tabanlı sistem ise Base64 kullanır. Her iki biçim de aynı 32 baytı kodlar.

### HMAC-SHA256, anahtar ile mesajı birleştirip SHA-256 almaya eşdeğer mi?

Hayır. HMAC, uzunluk genişletme saldırılarına karşı koruma sağlayan iç ve dış dolgulu anahtarlarla mesajın özetini iki kez alır. Anahtar ile mesajı birleştirip tek seferde özetlemek farklı ve daha zayıf bir sonuç verir.

### Kodumda imzaları nasıl karşılaştırmalıyım?

Node.js içindeki crypto.timingSafeEqual veya Python'daki hmac.compare_digest gibi sabit sürede çalışan bir karşılaştırma işlevi kullanın. Normal bir dizge karşılaştırması, beklenen etiketle ilgili zamanlama bilgilerini açığa çıkarabilir.

### Mesaj ne kadar büyük olabilir?

Mesaj ve anahtarın toplamı en fazla 5 MiB metin olabilir. Bu boyut, tipik webhook yüklerini ve API isteklerini kapsar.

Reklamınız burada mı olsun?

[Bize e-posta gönderin](mailto:hi@dennn.is?subject=OneClick%20Pro%20%C3%BCzerinde%20reklam)

[Reklam WordPress için yapay zekâ ajanlarına hazır eklenti paketi.](https://sleekwp.com/?ref=oneclickpro)
