O que é realmente o SHA-256 Cuadernos Lacre · Conceito · 19 de maio de 2026 https://solo2.net/pt/cadernos/articulos/o-que-o-sha-256-realmente-e.html Uma impressão digital matemática que cabe em sessenta e quatro caracteres e que muda completamente se uma única vírgula do texto original for movida. Por que lhe chamamos selo de lacre digital. --- A ideia simples por trás do nome técnico Imagine que existe uma máquina com uma única ranhura e um único ecrã. Pela ranhura introduz um texto: uma palavra, uma frase, um romance inteiro. No ecrã aparece, instantes depois, uma sequência de exatamente sessenta e quatro caracteres. A essa sequência, para o leitor profissional, chamamos hash ou resumo criptográfico; para o leitor geral, podemos chamá-la por agora uma impressão digital matemática do texto, tal como a impressão digital o é de uma pessoa. Se introduzir o mesmo texto duas vezes, a máquina mostra a mesma impressão digital as duas vezes. Se introduzir um texto ligeiramente diferente — uma única vírgula movida, uma maiúscula que passa a minúscula — a máquina mostra uma impressão digital completamente diferente da primeira. Não parecida: diferente. Essas duas propriedades juntas — o determinismo e a sensibilidade — são a ideia simples. Todo o resto do SHA-256 é a maquinaria que as faz cumprir bem. Convém dizer desde o início o que a máquina não faz. Não cifra o texto. Não o oculta. Não o guarda. A máquina olha para o texto, calcula a impressão digital, e esquece o texto. A impressão digital não permite reconstruir o texto que a produziu; apenas permite, dado um texto candidato, verificar se coincide ou não com o original. Por isso dizemos que é um resumo de uma única direção: vai-se, não se volta. Um hash não é o mesmo que cifrar A confusão é frequente e convém dissipá-la: cifrar e hashear são operações diferentes. Cifrar consiste em transformar um texto de forma que apenas o detentor da chave possa devolvê-lo à sua forma original. Hashear consiste em produzir uma impressão digital do texto da qual o texto original não se pode recuperar nunca, nem com chave nem sem ela. A primeira é reversível por design; a segunda, irreversível por design. A consequência prática importa. Quando uma aplicação diz «guardamos a tua palavra-passe cifrada», há alguém que tem a chave para a decifrar — a própria aplicação, em qualquer caso. Quando uma aplicação diz «guardamos a tua palavra-passe hasheada», a própria aplicação não pode ler a palavra-passe original mesmo que quisesse; apenas pode verificar se a que tu escreves volta a produzir a mesma impressão digital. O segundo modelo, bem feito, é muito preferível ao primeiro para armazenar palavras-passe. Mais adiante veremos por que «bem feito» exige algo mais que SHA-256 simples. As quatro propriedades que tornam um hash criptográfico útil Uma função hash que mereça o adjetivo criptográfico cumpre quatro propriedades: 1. Determinismo. A mesma entrada produz sempre a mesma impressão digital. 2. Efeito avalanche. Uma pequena mudança na entrada produz uma impressão digital completamente diferente, sem semelhança visível com a anterior. 3. Resistência à inversão. Dada uma impressão digital, não é viável computacionalmente encontrar o texto que a produziu. 4. Resistência a colisões. Não é viável computacionalmente encontrar dois textos diferentes que produzam a mesma impressão digital. «Não é viável computacionalmente» não significa «é matematicamente impossível». Significa que o custo em tempo, energia e dinheiro de o conseguir excede em ordens de magnitude a soma de toda a capacidade de computação razoavelmente disponível. Para o SHA-256, essa cota mede-se em milhares de biliões de anos mesmo para as abordagens mais otimistas com hardware especializado. O que, para efeitos práticos do leitor, é o mesmo que «não se pode». SHA-256, em concreto O nome diz tudo. SHA são as siglas de Secure Hash Algorithm: algoritmo de hash seguro. O número 256 indica o tamanho da impressão digital em bits: duzentos e cinquenta e seis bits, ou seja trinta e dois bytes, que mostrados em hexadecimal são os sessenta e quatro caracteres que o leitor já reconhece. O padrão foi publicado pelo NIST norte-americano, o organismo que normaliza este tipo de funções, em 2001 como parte da família SHA-2; a versão vigente do padrão, FIPS 180-4, é de 2015. As dimensões merecem um instante. Duzentos e cinquenta e seis bits permitem dois elevado a duzentos e cinquenta e seis valores diferentes: um número com setenta e oito dígitos decimais, várias ordens de magnitude maior que o número estimado de átomos no universo observável. Cada texto do mundo — cada livro, cada e-mail, cada mensagem — cai sobre um desses valores. A probabilidade de dois textos diferentes coincidirem por azar é, para efeitos práticos, indistinguível de zero. Como se vê em código Por que lhe chamamos selo de lacre Na correspondência europeia dos séculos quinze ao dezanove, o lacre fechava a carta. Uma gota de cera derretida, um selo pressionado em cima, e a carta ficava marcada de forma irrepetível. Não protegia o conteúdo do curioso determinado — o papel podia ser lido contra a luz, o lacre podia ser quebrado — mas evidenciava-o. Qualquer alteração do fecho era visível para o destinatário antes mesmo de abrir o papel. O lacre não impedia o dano; declarava-o. O SHA-256 do corpo de cada Cuaderno cumpre a mesma função na sua versão digital. Se uma única palavra do artigo mudasse entre o momento em que foi publicado e o momento em que tu o lês, o selo hexadecimal no rodapé do texto já não coincidiria com o SHA-256 do texto que tens à frente. Qualquer leitor com cinco linhas de código poderia verificá-lo. A publicação não pode reescrever a sua história sem que o selo a denuncie. Não protege contra o dano; torna-o verificável. O que um hash não é Quatro usos são pedidos às vezes ao SHA-256 que não lhe correspondem: 1. Cifrar. Um hash resume; não oculta. Se queres que o texto não se possa ler, precisas de o cifrar, não de o hashear. 2. Autenticar o autor. Um hash não diz quem escreveu o texto, apenas qual texto foi hasheado. Para associar autoria faz falta uma assinatura criptográfica sobre o hash, não o hash simples. 3. Armazenar palavras-passe. Aqui há uma armadilha que convém entender. O SHA-256 está desenhado para ser muito rápido — o que é bom para muitas coisas, mas mau para esta. Um atacante com hardware especializado pode testar milhares de milhões de palavras-passe por segundo contra um hash SHA-256 até dar com a tua. Para guardar palavras-passe devem usar-se funções de derivação de chave deliberadamente lentas como Argon2, scrypt ou bcrypt, combinadas com uma sal (um dado aleatório único por utilizador, que evita que duas pessoas com a mesma palavra-passe tenham o mesmo hash). 4. Ler o hash como identificador do autor. Não o é. Um hash identifica o conteúdo. Se duas pessoas hasheiam a palavra olá com SHA-256, as duas obtêm o mesmo resumo — e isso é a propriedade central, não um defeito: se fossem resumos diferentes, não poderíamos verificar a coincidência entre o publicado e o recebido. Onde aparece o SHA-256 no seu dia a dia Embora não o veja, o SHA-256 sustenta boa parte do que usa diariamente na internet. A cadeia de blocos da Bitcoin constrói-se encadeando o SHA-256 de cada bloco ao seguinte; alterar um bloco passado obriga a recalcular toda a cadeia posterior. O Git, o sistema com que se versiona o código de meio mundo, identifica cada confirmação pelo SHA-256 (em versões recentes) ou pelo seu predecessor SHA-1 (em versões mais antigas) do seu conteúdo completo. Os certificados HTTPS que verificam a identidade de um sítio web quando entra levam uma impressão digital SHA-256 associada. Os downloads de software são acompanhados frequentemente de um SHA-256 publicado pelo programador para que verifiques que o ficheiro não foi alterado pelo caminho. E, como dissemos, no rodapé de cada Cuadernos Lacre. Para o leitor profissional Quatro lembretes operativos para quem decide ou audita sistemas: 1. Hash não é cifragem. Se um fornecedor confunde os dois termos na sua documentação técnica, convém perguntar o que quer dizer exatamente. 2. Para armazenar palavras-passe nunca se deve usar o SHA-256 simples. O SHA-256 é demasiado rápido para esta tarefa (ver ponto 3 de O que um hash não é). O padrão atual é o Argon2id: lento por design, configurável segundo a capacidade do servidor, combinado com uma sal aleatória diferente por utilizador. 3. Para a integridade de documentos — contratos, expedientes, ficheiros — o SHA-256 continua a ser o padrão de referência. É o que usam os seladores temporais qualificados na UE. 4. Para conservação a longo prazo (décadas) convém calcular e arquivar também um SHA-3 ou um SHA-512 junto ao SHA-256; a prudência criptográfica recomenda não se apoiar numa única função durante arquivos centenários. Imagina que montaste o circuito de dominó mais elaborado do mundo: milhares de peças, dezenas de bifurcações, pontes mecânicas e rampas que cruzam todo o quarto, cuidadosamente colocadas peça por peça. Se deres um toque na primeira peça, a cadeia cai numa sequência precisa e repetível. Mesma montagem, mesmo toque inicial → idêntico padrão final de peças caídas, uma e outra vez. Aqui está o interessante: move uma única peça meio centímetro para o lado antes de começar e volta a tocar. Uma rampa que deveria ativar-se fica inerte, uma ponte não cai, uma bifurcação diferente dispara. O padrão final de peças no chão é completamente irreconhecível comparado com o primeiro. SHA-256 é matematicamente este circuito. O texto que escreves é a posição inicial das peças. O algoritmo é o toque que liberta a cascata. E o resultado final — o que chamamos hash — é a foto fixa do chão quando tudo parou. Muda uma única vírgula do texto original e a foto será radicalmente diferente. Tão simples quanto isso, e tão drástico. --- Se voltares ao rodapé deste artigo, verás um selo hexadecimal de sessenta e quatro caracteres. É o SHA-256 do texto que acabaste de ler, neste idioma. Se traduzíssemos o artigo, o selo seria outro; se mudasse uma palavra da versão espanhola, o selo espanhol mudaria. O selo não protege o conteúdo — para isso existem outras ferramentas — mas identifica-o univocamente. E isso, por modesto que soe, basta para que nenhum passo da cadeia editorial possa alterar o que foi dito sem que se note. O resto — cifrar, assinar, identificar — constrói-se sobre esta ideia simples. Fontes e leitura adicional - NIST — FIPS PUB 180-4: Secure Hash Standard (SHS), agosto de 2015. Especificação oficial da família SHA-2, incluindo SHA-256. - RFC 6234 — US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF), IETF, maio de 2011. Versão normativa para implementadores. - Ferguson, N.; Schneier, B.; Kohno, T. — Cryptography Engineering: Design Principles and Practical Applications (Wiley, 2010). Capítulos 5 e 6 cobrem funções hash e os seus usos legítimos e ilegítimos. - Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Exemplo prático do uso de SHA-256 para encadear blocos numa estrutura imutável por construção. - Regulamento (UE) 910/2014 (eIDAS) — quadro dos seladores temporais qualificados. O SHA-256 é a função de referência para as assinaturas e selos eletrónicos qualificados emitidos na UE. - Implementação de referência em Zig: std.crypto.hash.sha2.Sha256 no repositório oficial da linguagem (github.com/ziglang/zig → lib/std/crypto/sha2.zig). É a versão optimizada e auditada que de facto o Solo2 usa. Útil para contrastar com a implementação didática do apêndice. --- Cuadernos Lacre · Uma publicação da Menzuri Gestión S.L. · escrita por R.Eugenio · editada pela equipa do Solo2. https://solo2.net/pt/cadernos/