İçeriğe atla
TextArray
%100 yerel

HMAC jeneratörü

HMAC-SHA256, SHA-1, SHA-384 veya SHA-512 imzalarını gizli bir anahtarla hesaplayın.

Giriş
Çıkış

HMAC jeneratörü

HMAC anahtarlı bir karmadır: mesaj ve gizli anahtar birlikte girer ve yalnızca aynı anahtarı elinde bulunduran kişi sonucu yeniden üretebilir veya doğrulayabilir. API sağlayıcılarının istekleri imzalamak için kullandıkları ve ödeme platformları ile kod barındırma hizmetleri gibi webhook göndericilerinin her teslimata eklediği şey budur; böylece alıcı, yükün gerçekten kendilerinden geldiğini ve aktarım sırasında değiştirilmediğini kanıtlayabilir.

Gizli anahtarı girin, diğer tarafın kullandığı algoritmayı seçin (SHA-256 en yaygın varsayılandır) ve mesajı yapıştırın. Özet, imzaların değiştirildiği iki formatla eşleşen küçük harfli hex veya Base64 olarak görünür. Her giriş satırını ayrı ayrı imzalamak için satır başına HMAC'yi açın; bu, bir belirteç veya kimlik sütununa uygundur. Geliştiriciler, imzaları reddeden bir web kancası işleyicisinin hatalarını ayıklarken, bir belge örneğini yeniden üretirken veya bir birim testi için bir test vektörü oluştururken buna ulaşırlar.

Hem anahtar hem de mesaj, çoğu sunucu SDK'sının yaptığı gibi UTF-8 bayt olarak alınır. Sonucunuz diğer tarafla eşleşmediğinde, bunun nedeni matematik değil, neredeyse her zaman baytlardır: yükteki sondaki yeni satır, CRLF satır sonları, Base64 ile karşılaştırıldığında onaltılık çıktı veya hizmetin Base64 veya onaltılık kodlanmış olarak sağladığı ve kullanımdan önce kodunun çözülmesini beklediği bir anahtar.

Anahtar alanı maskelenmiştir ve kasıtlı olarak hiçbir zaman tarayıcınızın belleğine yazılmaz. Her şey tarayıcının yerleşik WebCrypto'su aracılığıyla yerel olarak çalışır; bir imzalama sırrını çevrimiçi bir HMAC aracına yapıştırdığınızda normalde bu sır o sunucuya aktarılır ve burada cihazınızdan asla ayrılmaz.

FAQ

HMAC ne için kullanılır?
Bir mesajın, paylaşılan sırrı elinde bulunduran ve bu sırada değiştirilmeyen birinden geldiğinin kanıtlanması. Tipik kullanımlar: API isteklerini imzalama, ödeme ve barındırma platformlarından webhook teslimatlarını doğrulama ve belirteçleri imzalama. Alıcı, HMAC'yi aynı anahtarla yeniden hesaplar ve karşılaştırır.
HMAC'in düz karmadan farkı nedir?
Bir mesajın sade SHA-256'sı herkes tarafından hesaplanabilir, dolayısıyla gönderen hakkında hiçbir şey kanıtlamaz. Bir HMAC, tahrifata karşı dayanıklı olacak şekilde gizli bir anahtarı hesaplamaya katar; anahtar olmadan ne geçerli bir imzayı taklit edebilir ne de doğrulayabilirsiniz. Yeni tasarımların yine de SHA-256'yı seçmesi gerekse de, düz SHA-1'in çarpışmalar nedeniyle kırılmasına rağmen HMAC-SHA1'in pratikte kabul edilebilir kalmasının nedeni de budur.
HMAC'im neden sunucunun gönderdiğiyle eşleşmiyor?
Neredeyse her zaman baytlar farklıdır. Yükte sondaki yeni satırı, CRLF ve LF satır sonlarını, Base64 ile karşılaştırıldığında hex'i ve anahtar formatını kontrol edin; birçok hizmet size gizli Base64 veya hex kodlu olanı verir ve kodu çözülmüş baytların anahtar olarak olmasını bekler. Bu araç, anahtarı tam olarak yazıldığı gibi UTF-8 olarak kullanır.
Birisi anahtarımı HMAC'den kurtarabilir mi?
Hiçbir pratik saldırı özetlerdeki anahtarı kurtaramaz. Ancak anahtarı elinde bulunduran herkes rastgele mesajları imzalayabilir; bu nedenle imzalama sırlarına şifre gibi davranın: sızdırılmış olması durumunda bir web kancası sırrını döndürün ve onu asla bir depoya kaydetmeyin.
Anahtarım ve metnim herhangi bir yere yüklendi mi?
Hayır. HMAC, tarayıcınızın yerleşik WebCrypto'su tarafından hesaplanır, anahtar alanı hiçbir zaman depoya yazılmaz ve ne anahtar ne de metin cihazınızdan asla ayrılmaz.