-
Calculado localmente via SubtleCrypto — sua mensagem e seu segredo nunca saem do seu dispositivo. Requer um contexto seguro (https ou localhost).
Escreva um verificador Python com `hmac.compare_digest` para HMAC-SHA-256. Leia o segredo de uma variável de ambiente — nunca o embuta no código. Vetor de teste — mensagem: ``, MAC esperado (hex): ``.
O que faz
O gerador de
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
calcula um código de autenticação de mensagem com chave (HMAC) para uma mensagem e um segredo, usando SHA-1, SHA-256, SHA-384 ou SHA-512. O HMAC é o mecanismo com que serviços como o Stripe e o GitHub assinam webhooks, para que possa verificar que um payload veio genuinamente deles. Todo ohashinghashingA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
usa a Web Crypto API do navegador — a sua mensagem e o seu segredo nunca saem do seu dispositivo.Como usar
- Introduza a Message (o payload que quer assinar).
- Introduza o Secret (a chave de assinatura partilhada).
- Escolha o Algorithm (SHA-256 é o padrão moderno).
- Copie o digest hex resultante.
Exemplos
- Verificar um webhook: calcule o
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
-SHA-256 do corpo bruto do pedido com o seu segredo de webhook e compare (em tempo constante) com o cabeçalhoX-Signature. - Vetor de teste (RFC 4231): chave = 20 bytes de
0x0b, mensagem ="Hi There", SHA-256 →b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7.
Bom saber
- Use SHA-256 ou superior em sistemas novos; o
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
de SHA-1 está incluído apenas por compatibilidade com sistemas antigos. - Compare os digests em tempo constante no servidor para evitar ataques de temporização.
- Privado: o cálculo é 100% no cliente via
crypto.subtle— seguro para segredos reais. - Ferramentas relacionadas:
HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
(SHA),JWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
Decoder,Base64Base64An encoding representing binary data as 64 safe ASCII characters, so it survives transport through text-only channels. It encodes — it does not encrypt.
.