Um resumo sobre o padrão de segurança HMAC

Jun 12, 2026 - 19:20
Updated: 2 days ago
0 0
Um resumo sobre o padrão de segurança HMAC

Definição

O HMAC (Hash-based Message Authentication Code) é um mecanismo de segurança que permite verificar a integridade e autenticidade de uma mensagem, garantindo que ela não foi alterada e que foi gerada por quem possui uma chave secreta. Ele é muito usado em autenticação de APIs, tokens e assinaturas digitais.

Analogia

Imagine que você envia uma carta dentro de um envelope lacrado com um selo exclusivo que só você e o destinatário conhecem a forma de produzir. Se alguém abrir a carta e alterar qualquer palavra, o selo não vai mais bater com o original. O HMAC funciona exatamente assim: ele “lacra” os dados com uma assinatura impossível de reproduzir sem a chave secreta.

Exemplo sem HMAC (inseguro)

$payload = [
  'user' => 'joao',
  'exp' => time() + 300
];

// token simples sem proteção
$token = base64_encode(json_encode($payload));

Problema

Qualquer pessoa pode:

  • decodificar o token
  • alterar exp
  • reencodar
  • e enganar o sistema

Exemplo com HMAC (seguro)

$payload = [
  'user' => 'joao',
  'exp' => time() + 300
];

$secret = 'chave_super_secreta';

$signature = hash_hmac(
  'sha256',
  json_encode($payload['user']) . '|' . $payload['exp'],
  $secret
);

$payload['sig'] = $signature;

$token = base64_encode(json_encode($payload));

Validação do lado do servidor

$payload = json_decode(base64_decode($_GET['token']), true);

$check = hash_hmac(
  'sha256',
  json_encode($payload['user']) . '|' . $payload['exp'],
  $secret
);

if (!hash_equals($check, $payload['sig'])) {
  die("Token inválido");
}

What's Your Reaction?

Like Like 0
Dislike Dislike 0
Love Love 0
Funny Funny 0
Wow Wow 0
Sad Sad 0
Angry Angry 0
Christopher Holloway

Christopher Holloway is the founder and director of Progressive Robot, a UK-based technology company. A full-stack engineer with more than two decades of experience, he works across PHP development, ecommerce, Linux infrastructure, technical SEO and AI automation, and writes here on technology, AI, hardware and software.

Comments (0)

User