HMAC генератор и верификатор
Генерирайте и потвърдете HMAC кодове за удостоверяване на съобщения с SHA-256, SHA-384, SHA-512 или SHA-1, като използвате таен ключ, изцяло във вашия браузър.
Резултат
HMAC (код за удостоверяване на съобщение, базиран на хеширане) е ключова криптографска конструкция, която комбинира таен ключ със съобщение чрез хеш функция като SHA-256. За разлика от обикновения хеш, който всеки може да преизчисли само от съобщението, HMAC може да бъде възпроизведен само от някой, който притежава същия таен ключ - това го прави код за удостоверяване, а не просто контролна сума.
Това е фундаменталната разлика от обикновения дайджест: нашият собствен инструмент за генериране на хешове изчислява неключови хешове като MD5 или SHA-256, които са чудесни за откриване на случайна повреда, но не доказват нищо за това кой е произвел данните, тъй като всеки може да генерира същия хеш. HMAC доказва както целостта (съобщението не е променено), така и автентичността (подписващият е знаел споделената тайна), поради което HMAC е стандартният градивен елемент зад подписването на заявка за API, алгоритмите HS256/HS384/HS512 на JWT и удостоверяването на TLS запис.
Най-често срещаният случай на използване в реалния свят е проверка на подписите на уеб кукичката. Услуги като Stripe, GitHub и Shopify подписват всеки полезен товар на webhook с HMAC-SHA256, като използват тайна, която конфигурирате, и изпращат получения подпис в заглавката на заявката. Очаква се вашият сървър да преизчисли HMAC върху необработения полезен товар със същата тайна и да го сравни със стойността на заглавката — ако те съвпадат, знаете, че заявката наистина е дошла от тази услуга и не е била манипулирана по време на транзит. Режимът за проверка на този инструмент възпроизвежда точно тази проверка: поставете полезния товар, споделената тайна и получения подпис и получете незабавно съвпадение или несъответствие.
Всичко се изпълнява локално чрез собствения Web Crypto API на браузъра (crypto.subtle.importKey и crypto.subtle.sign), така че тайният ключ, тялото на съобщението и полученият подпис никога не напускат вашата машина — нищо не се качва на който и да е сървър, което има значение, тъй като HMAC тайните са точно вида стойност, която никога не трябва да поставяте в случаен онлайн инструмент, който може да го регистрира.