Bir mesajı gizli anahtarla imzalayın: SHA-1, SHA-256, SHA-384 veya SHA-512. Hex ve Base64 çıktı.
Anahtar ve mesaj bu sekmede kalır. Hiçbir şey yüklenmez, hiçbir şey kaydedilmez.
Bir anahtar ve mesaj girin
Bir anahtar ve mesaj girin
SHA-256 standart tercihtir; Stripe, GitHub ve webhook sağlayıcılarının çoğu bunu kullanır. SHA-1 ise hâlâ onu zorunlu kılan eski entegrasyonlar için burada.
Anahtar iki tarafın da elindeki paylaşılan gizli değerdir. Mesaj ise karşı tarafın imzaladığı baytların aynısı olmalı, yani genellikle JSON'a çevrilmeden önceki ham istek gövdesi.
Hex veya Base64 özetini kopyalayın ve gelen imza başlığıyla karşılaştırın. Tutuyorsa veri hem gerçekten o kaynaktan gelmiş hem de yolda değişmemiş demektir.
Normal özet kimin ürettiği konusunda hiçbir şey kanıtlamaz, çünkü aynı metni herkes özetleyebilir. HMAC özete gizli bir anahtar karıştırır, dolayısıyla tutan bir özet gönderenin anahtarı bildiğini kanıtlar. Webhook'ların çıplak SHA-256 ile değil HMAC ile imzalanmasının sebebi budur.
Neredeyse her zaman mesaj bayt bayt aynı olmadığı için. En sık sebep, ham istek gövdesi yerine yeniden serileştirilmiş bir JSON nesnesini imzalamaktır. Boşluk, anahtar sırası ve sondaki satır sonu özeti değiştirir. Bazı sağlayıcılar ayrıca zaman damgasını ve gövdeyi bir ayraçla birleştirip imzalar, o yüzden dokümantasyondaki tam metni kontrol edin.
Karşı taraf hangisini kullanıyorsa onu. Stripe ve GitHub hex gönderir, AWS ve eski SOAP tarzı API'lerin çoğu Base64 kullanır. İkisi de aynı baytların iki farklı yazımıdır, çevirdikten sonra hex tutuyorsa imza geçerlidir.
HMAC-SHA1, düz SHA-1 çakışmalarındaki gibi kırılmadı ve TOTP hâlâ onu kullanıyor. Yine de yeni bir işte onu seçmek için sebep yok. Sadece SHA-1 konuşan bir sistemle çalışmıyorsanız SHA-256 kullanın.
Hayır. Özet, bu sekmenin içinde Web Crypto API ile hesaplanır. Yazdıklarınız için yükleme, kayıt ya da analitik yok.
En az özet çıktısı kadar, yani SHA-256 için 32 bayt. Daha kısa anahtarlar içeride doldurulur ve güvenlik katmaz. Akılda kalıcı bir cümle seçmek yerine API anahtarı oluşturucumuzla üretin.
Evet. Doğrulama, HMAC'i kendiniz üretip gelenle karşılaştırmaktan ibarettir. Kendi kodunuzda ise düz eşitlik yerine crypto.timingSafeEqual gibi zaman sızdırmayan bir karşılaştırma kullanın.
Evet. Hem anahtar hem mesaj özetlenmeden önce UTF-8 olarak kodlanır, yani ş, ğ, ı ve diğerleri doğru bir uygulamada üreteceği özetin aynısını üretir.
Herhangi bir metinden MD5, SHA-1, SHA-256 ve SHA-512 hash üretin. Dördü de yazdıkça güncellenir, hiçbir veri tarayıcınızdan çıkmaz.
Aracı AçHS256, HS384 veya HS512 ile JSON Web Token üretip imzalayın. iat, exp ve nbf tek tıkla eklenir.
Aracı AçKriptografik rastgele API anahtarları üretin: hex, Base64URL, Base62 veya UUID v4, istediğiniz ön ekle.
Aracı Aç