HMAC Oluşturucu ve Doğrulayıcı
Tamamen tarayıcınızda, gizli bir anahtar kullanarak SHA-256, SHA-384, SHA-512 veya SHA-1 ile HMAC mesajı kimlik doğrulama kodları oluşturun ve doğrulayın.
Sonuç
HMAC (Karma Tabanlı Mesaj Kimlik Doğrulama Kodu), SHA-256 gibi bir karma işlevi aracılığıyla gizli bir anahtarı bir mesajla birleştiren anahtarlı bir şifreleme yapısıdır. Herkesin yalnızca mesajdan yeniden hesaplayabileceği düz karmanın aksine, HMAC yalnızca aynı gizli anahtarı elinde bulunduran biri tarafından çoğaltılabilir; onu yalnızca bir sağlama toplamı olmaktan ziyade bir kimlik doğrulama kodu yapan da budur.
Bu, basit bir özetten temel farktır: Kendi Hash Generator aracımız, MD5 veya SHA-256 gibi anahtarsız karmaları hesaplar; bunlar kazara bozulmaları tespit etmek için harikadır, ancak verileri kimin ürettiği hakkında hiçbir şey kanıtlamaz, çünkü herkes aynı karmayı oluşturabilir. Bir HMAC hem bütünlüğü (mesaj değiştirilmedi) hem de orijinalliği (imzalayan paylaşılan sırrı biliyordu) kanıtlar; bu nedenle HMAC, API istek imzalamanın, JWT'nin HS256/HS384/HS512 algoritmalarının ve TLS kayıt kimlik doğrulamasının arkasındaki standart yapı taşıdır.
Gerçek dünyadaki en yaygın kullanım durumu, webhook imzalarının doğrulanmasıdır. Stripe, GitHub ve Shopify gibi hizmetler, yapılandırdığınız bir gizli diziyi kullanarak her web kancası yükünü HMAC-SHA256 ile imzalar ve ortaya çıkan imzayı bir istek başlığında gönderir. Sunucunuzun HMAC'yi ham yük üzerinden aynı sır ile yeniden hesaplaması ve bunu başlık değeriyle karşılaştırması beklenir; eşleşirlerse isteğin gerçekten o hizmetten geldiğini ve aktarım sırasında değiştirilmediğini bilirsiniz. Bu aracın doğrulama modu tam olarak bu kontrolü yeniden üretir: veriyi, paylaşılan sırrı ve alınan imzayı yapıştırın ve anında eşleşme veya uyumsuzluk elde edin.
Her şey tarayıcının yerel Web Kripto API'si (crypto.subtle.importKey ve crypto.subtle.sign) aracılığıyla yerel olarak çalışır, dolayısıyla gizli anahtar, mesaj gövdesi ve sonuçta ortaya çıkan imza asla makinenizden ayrılmaz; hiçbir sunucuya hiçbir şey yüklenmez; bu da önemlidir, çünkü HMAC sırları tam olarak onu günlüğe kaydedebilecek rastgele bir çevrimiçi araca asla yapıştırmamanız gereken türden bir değerdir.