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

Published: (June 12, 2026 at 02:20 PM EDT)
2 min read
Source: Dev.to

Source: Dev.to

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. 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. $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 $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));

$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”); }

0 views
Back to Blog

Related posts

Read more »

Introduction to Git

Welcome to Git Mastery, a series where we'll learn Git from the ground up, starting with the absolute basics and gradually moving toward advanced workflows, Git...