Como funciona o SHA-256: pode ser decifrado?

Quando uma base de dados sofre uma violação, a primeira pergunta é sempre a mesma: os hashes das palavras-passe estão seguros? A resposta depende inteiramente da forma como esses hashes foram gerados. O próprio SHA-256 não pode ser decifrado: é uma função de hash criptográfica unidirecional, não um algoritmo de cifragem. Mas «não pode ser decifrado» não é o mesmo que «não pode ser quebrado».


O que é o SHA-256

SHA-256 (Secure Hash Algorithm 256-bit) é uma função de hash criptográfica da família SHA-2, desenvolvida pela NSA e publicada pelo NIST em 2001 no âmbito da FIPS 180-4. Recebe uma entrada de qualquer comprimento e produz uma saída de tamanho fixo de 256 bits (32 bytes): o hash, ou digest. A saída tem sempre um aspeto aleatório e a mesma entrada produz sempre a mesma saída.

O SHA-256 não é um algoritmo de cifragem. Não tem chave e a sua saída não pode ser revertida. A sua função é produzir uma impressão digital única de um conjunto de dados, não proteger esses dados para uma recuperação posterior.

Três propriedades definem a sua segurança:

  • Resistência à pré-imagem. Dado um hash, não é possível encontrar a entrada original.
  • Resistência a colisões. Não é possível encontrar duas entradas diferentes que produzam o mesmo hash.
  • Efeito avalanche. A alteração de um único bit na entrada inverte cerca de metade dos bits da saída, tornando o resultado completamente imprevisível.

O SHA-256 é utilizado em certificados TLS, na assinatura de código, na integridade de commits do Git, no mecanismo de proof-of-work do Bitcoin e (combinado com uma derivação de chaves adequada) no armazenamento de palavras-passe. É uma das primitivas criptográficas mais amplamente implementadas em sistemas de produção atualmente.


Hashing vs. cifragem: Porque é que o SHA-256 não pode ser decifrado

O SHA-256 é uma função de hash criptográfica: uma transformação unidirecional. A cifragem é uma operação bidirecional: os dados são cifrados com uma chave e decifrados com uma chave. O hashing não tem chave nem caminho inverso. Dado um digest SHA-256, não existe nenhuma operação matemática que recupere a entrada original.

A propriedade que torna isto possível chama-se resistência à pré-imagem: deve ser computacionalmente inviável encontrar qualquer entrada m tal que SHA256(m) = h para um dado hash h. Uma propriedade relacionada, o efeito avalanche, significa que alterar um único bit na entrada inverte cerca de metade dos bits da saída, o que impossibilita «trabalhar no sentido inverso» através de pequenos ajustes.

Propriedade Hashing (SHA-256) Cifragem (AES / RSA)
Sentido Unidirecional Bidirecional
Requer chave Não Sim
Reversível Não Sim (com chave)
Tamanho da saída Fixo (256 bits) Variável
Utilização principal Verificação de integridade, armazenamento de palavras-passe Confidencialidade

A distinção é relevante na prática. Se um programador armazenar palavras-passe com cifragem AES em vez de hashing, uma violação da chave de cifragem expõe todas as palavras-passe da base de dados. Um hash não tem chave que possa ser roubada.


Como funciona o algoritmo SHA-256 (passo a passo)

O SHA-256 está definido na norma NIST FIPS 180-4 e pertence à família SHA-2. Processa entradas de qualquer comprimento e produz uma saída determinística de 256 bits. A estrutura central é a construção de Merkle-Damgård: a mensagem é dividida em blocos de tamanho fixo, cada bloco é processado por uma função de compressão e as saídas são encadeadas.

Passo 1. Pré-processamento e preenchimento

A mensagem de entrada é preenchida (padding) para que o seu comprimento total seja um múltiplo de 512 bits. O preenchimento começa sempre com um bit 1, seguido de um número suficiente de bits 0, seguido de uma representação de 64 bits do comprimento original da mensagem. Este passo é obrigatório mesmo que a mensagem já tenha um tamanho adequado: o algoritmo tem de saber sempre onde a mensagem termina.

Passo 2. Escalonamento da mensagem

A mensagem preenchida é dividida em blocos de 512 bits. Cada bloco é dividido em dezasseis palavras de 32 bits. Essas dezasseis palavras são depois expandidas num escalonamento de mensagem de 64 palavras, através de uma combinação de rotações bit a bit e operações XOR. Esta expansão garante que cada bit da entrada original influencia a etapa de compressão.

Passo 3. A função de compressão

É aqui que o trabalho acontece. O SHA-256 mantém oito variáveis de trabalho de 32 bits (a a h), inicializadas com constantes derivadas das partes fracionárias das raízes quadradas dos primeiros oito números primos. Ao longo de 64 rondas, estas variáveis são atualizadas através das operações bit a bit AND, OR, XOR e NOT, além de adição modular. Duas funções não lineares, Ch(e, f, g) e Maj(a, b, c), introduzem uma complexidade que torna opaca a relação entre a entrada e a saída. Depois das 64 rondas, as variáveis de trabalho são somadas aos valores iniciais desse bloco.

Passo 4. Saída final

Depois de todos os blocos serem processados, as oito variáveis de trabalho são concatenadas para produzir o digest final de 256 bits. A mesma entrada produz sempre a mesma saída. Qualquer alteração na entrada, mesmo de um único caráter, produz um hash completamente diferente.


Se o SHA-256 não pode ser decifrado, como o quebram os hackers?

O SHA-256 é matematicamente sólido. O próprio algoritmo não tem pontos fracos práticos conhecidos após mais de duas décadas de criptoanálise. O que falha não é o algoritmo, mas a forma como as palavras-passe são armazenadas com ele.

Ataques de força bruta

Um ataque de força bruta não inverte o hash. Limita-se a adivinhar. O atacante calcula o hash de palavras-passe candidatas (palavras de dicionário, padrões comuns, combinações de carateres) e compara o resultado com o hash roubado. Se os hashes coincidirem, a palavra-passe é encontrada. A velocidade do SHA-256 é aqui o problema: uma única GPU Nvidia RTX 4090 consegue calcular aproximadamente 164 mil milhões de hashes SHA-256 por segundo (Specops Software, 2025). A essa velocidade, uma palavra-passe de oito carateres em minúsculas é quebrada em segundos.

Ataques com tabelas rainbow

Uma tabela rainbow é uma base de dados pré-calculada de correspondências entre hash e texto em claro. Em vez de calcular hashes em tempo real, o atacante procura o hash roubado na tabela e lê a palavra-passe original. As tabelas para formatos de palavras-passe comuns podem ser geradas antecipadamente e reutilizadas em várias violações de dados. A resistência a colisões, a propriedade segundo a qual duas entradas não devem produzir o mesmo hash, não é o que as tabelas rainbow exploram. Exploram o facto de as palavras-passe comuns produzirem hashes previsíveis e repetíveis.

Ambos os ataques partilham um único pré-requisito: o hash tem de ser gerado sem salt. Com a adição de um salt, ambos os ataques tornam-se muito mais dispendiosos.


Porque o SHA-256 simples é inadequado para armazenar palavras-passe

O SHA-256 foi concebido para ser rápido. Para as utilizações previstas (verificar a integridade de ficheiros, assinar certificados, proteger transações de blockchain), a velocidade é uma vantagem. No armazenamento de palavras-passe, a velocidade é um risco.

O problema: O SHA-256 é demasiado rápido

A 164 mil milhões de hashes por segundo em hardware de consumo, um atacante consegue esgotar todo o espaço de palavras-passe de oito carateres com maiúsculas, minúsculas, dígitos e símbolos em menos de uma hora. A Password Storage Cheat Sheet da OWASP é explícita: «Os algoritmos de hash rápidos, como o SHA-256, não são adequados para o armazenamento de palavras-passe, porque permitem aos atacantes realizar um grande número de tentativas rapidamente.»

Solução 1: Salting

Um salt é uma cadeia de carateres única, gerada aleatoriamente, acrescentada a cada palavra-passe antes do cálculo do hash. SHA256("password") produz sempre o mesmo hash. SHA256("password" + "x7kQ2mNp") produz um hash completamente diferente, e cada utilizador recebe um salt diferente. Isto neutraliza por completo as tabelas rainbow: o atacante não consegue pré-calcular hashes de entradas com salt sem conhecer o salt de cada utilizador. Significa também que dois utilizadores com a mesma palavra-passe acabam com hashes diferentes na base de dados.

Solução 2: Alongamento de chaves com PBKDF2

O salting neutraliza as consultas pré-calculadas, mas não abranda os ataques de força bruta. Para isso é necessário o alongamento de chaves (key stretching). PBKDF2 (Password-Based Key Derivation Function 2) aplica uma função pseudoaleatória, normalmente HMAC-SHA-256, milhares de vezes em sequência. Cada iteração demora tempo. Os 164 mil milhões de hashes por segundo do atacante reduzem-se a uma fração disso quando cada «tentativa» exige 600 000 iterações.

A OWASP recomenda o PBKDF2 com HMAC-SHA-256 e, no mínimo, 600 000 iterações para conformidade com a FIPS-140. O Argon2id é a opção preferida quando a conformidade com a FIPS não é exigida, uma vez que acrescenta também resistência por consumo de memória (memory hardness).

SHA-256 simples vs. PBKDF2-HMAC-SHA256: Segurança no armazenamento de palavras-passe

Propriedade SHA-256 simples PBKDF2-HMAC-SHA256 (600 000 iterações)
Hashes por segundo (RTX 4090) ~164 000 000 000 ~273
Tempo para quebrar uma palavra-passe de 8 carateres (todo o ASCII imprimível) < 1 hora > 200 anos
Neutraliza tabelas rainbow Não (sem salt) Sim (salt único por utilizador)
Neutraliza a força bruta Não Sim (computacionalmente inviável)
Conforme com a FIPS-140 para armazenamento de palavras-passe Não Sim
Recomendado pela OWASP Não Sim
Adequado para integridade de ficheiros / somas de verificação Sim Não (demasiado lento por conceção)

O SHA-256 é vulnerável aos computadores quânticos?

O algoritmo de Grover confere a um computador quântico uma aceleração quadrática em problemas de pesquisa não estruturada. Aplicado ao SHA-256, reduz a segurança efetiva de 2²⁵⁶ operações para 2¹²⁸ operações. Isto parece alarmante até se considerar a escala: 2¹²⁸ é aproximadamente 3,4×10³⁸. Um computador quântico a funcionar a 10 mil milhões de operações por segundo precisaria de cerca de 3,4×10²⁸ anos para esgotar metade do espaço de pesquisa, um período que excede em várias ordens de grandeza a idade do universo.

O algoritmo de Shor, que quebra o RSA e a criptografia de curvas elípticas ao fatorizar números inteiros grandes de forma eficiente, não se aplica às funções de hash. A segurança do SHA-256 não se baseia na fatorização de inteiros.

O NIST está a normalizar ativamente algoritmos pós-quânticos (FIPS 203, 204 e 205 foram finalizadas em 2024), que se destinam sobretudo à criptografia assimétrica. O SHA-256 não consta da lista de substituição num futuro previsível. A ameaça prática que a computação quântica representa para o SHA-256 continua a ser teórica.


Como os gestores de palavras-passe empresariais utilizam a criptografia de forma segura

Os gestores de palavras-passe empresariais que seguem princípios de zero-knowledge aplicam os mesmos blocos criptográficos descritos neste artigo (SHA-256, PBKDF2, HMAC, AES-256), mas combinam-nos numa arquitetura em camadas em que o servidor nunca detém dados em texto em claro nem as chaves para os decifrar. A garantia de segurança resulta da conceção, não da confiança no servidor.

O modelo de cifragem de dois níveis do Passwork

Saber que o SHA-256 simples é insuficiente para o armazenamento de palavras-passe é uma coisa. Implementar a alternativa correta numa empresa é outra. É aqui que a arquitetura da ferramenta é tão importante como o algoritmo.

O Passwork baseia-se numa arquitetura zero-knowledge: o servidor nunca dispõe de informação suficiente para decifrar os dados dos utilizadores. A palavra-passe mestra nunca sai do dispositivo do utilizador. Todas as chaves criptográficas são geradas do lado do cliente. O servidor armazena apenas dados cifrados e chaves cifradas; a decifragem só é possível no cliente.

A cadeia de cifragem funciona da seguinte forma, conforme documentado na descrição geral da criptografia do Passwork:

  1. Palavra-passe mestra (introduzida pelo utilizador) → PBKDF2 com SHA-256, 300 000 iterações
  2. Chave mestra (512 bits) → AES-256-CBC
  3. Chave RSA privada (2048 bits, RSA-OAEP)
  4. Chave do cofre (256 bits) → AES-256-CBC
  5. Chave do registo (256 bits) → AES-256-CBC
  6. Dados do registo (palavras-passe, segredos e ficheiros, cifrados em repouso)

No lado do servidor, uma camada AES-256-CFB distinta cifra a base de dados de forma independente. Cada registo é cifrado duas vezes: uma pelo cliente, antes de sair do dispositivo, e outra pelo servidor, antes de ser escrito em disco.

O PBKDF2 com 300 000 iterações do lado do cliente está em linha com as recomendações do NIST (≥310 000 para SHA-256) e excede o mínimo da OWASP na maioria dos contextos de implementação. O PBKDF2 do lado do servidor executa 600 000 iterações, cumprindo diretamente o limiar da FIPS-140.

Esta arquitetura significa que uma violação da base de dados não produz nada de aproveitável. Um atacante que exfiltre a base de dados obtém blobs cifrados com AES-256, derivados de chaves que nunca foram armazenadas no servidor.


Conclusão

O SHA-256 é teoricamente inquebrável. O algoritmo resistiu a mais de duas décadas de criptoanálise sem que tenha surgido um ataque prático. Mas o algoritmo é tão forte quanto a sua implementação. Se as palavras-passe forem armazenadas como hashes SHA-256 simples, uma única GPU consegue testar milhares de milhões de candidatas por segundo. Com a adição de um salt e a aplicação do PBKDF2 com iterações suficientes, o mesmo hardware torna-se inútil contra a base de dados.

A distância entre «o SHA-256 é seguro» e «as nossas palavras-passe são seguras» é colmatada por uma implementação correta: salting, alongamento de chaves e uma arquitetura zero-knowledge que garante que o servidor nunca detém as chaves necessárias para decifrar os dados dos utilizadores.

Se a equipa gere credenciais empresariais, o Passwork protege-as através de arquitetura zero-knowledge, cifragem AES-256 do lado do cliente e alongamento de chaves PBKDF2 com 300 000 iterações, pelo que um comprometimento do servidor não expõe nada de aproveitável. O Passwork está disponível numa implementação autoalojada, para organizações que exigem controlo total da infraestrutura, e numa solução cloud para equipas que pretendem as mesmas garantias criptográficas sem gerir os seus próprios servidores.

Os princípios criptográficos deste artigo não são teóricos para o Passwork: são a arquitetura de produção. Quer seja autoalojado ou na cloud, o modelo zero-knowledge mantém-se: as chaves nunca saem do dispositivo e os dados nunca chegam ao servidor em texto em claro. Experimentar o Passwork grátis

FAQ: O SHA-256 explicado

FAQ: O SHA-256 explicado

É possível decifrar o SHA-256?

Não. O SHA-256 é uma função de hash criptográfica unidirecional. Não existe chave, nem algoritmo inverso, nem qualquer operação matemática que recupere a entrada original a partir de um hash. O que os atacantes podem fazer é tentar adivinhar, calculando o hash de palavras-passe candidatas e comparando o resultado. Isso é uma quebra do hash, e não uma decifragem, e só funciona contra hashes fracos ou sem salt.

Qual é a diferença entre o hashing com SHA-256 e a cifragem?

A cifragem é reversível com a chave correta. O hashing não é reversível em circunstância alguma. O SHA-256 recebe uma entrada de qualquer comprimento e produz uma saída fixa de 256 bits. A mesma entrada produz sempre a mesma saída, mas o processo não pode ser executado no sentido inverso. A cifragem preserva a capacidade de recuperar os dados originais; o hashing destrói-a deliberadamente.

O que é o efeito avalanche no SHA-256?

O efeito avalanche significa que a alteração de um único bit na entrada inverte aproximadamente metade dos bits da saída. Se se alterar um caráter numa palavra-passe, o hash SHA-256 resultante parece não ter qualquer relação com o original. Esta propriedade impede os atacantes de usar um conhecimento parcial de uma entrada para reduzir o espaço de pesquisa do hash.

O que é o PBKDF2 e porque é importante para a segurança das palavras-passe?

O PBKDF2 (Password-Based Key Derivation Function 2) aplica iterativamente uma função pseudoaleatória, normalmente HMAC-SHA-256, a uma palavra-passe e a um salt. Cada iteração acrescenta custo computacional. Com 600 000 iterações, o tempo necessário por tentativa aumenta por um fator de 600 000 em comparação com um único hash SHA-256. Isto torna os ataques de força bruta contra palavras-passe corretamente armazenadas impraticáveis, mesmo com hardware à escala de GPU.

O SHA-256 é vulnerável a ataques de computação quântica?

Não na prática. O algoritmo de Grover reduz a segurança efetiva do SHA-256 de 2²⁵⁶ para 2¹²⁸ operações. Com 2¹²⁸, mesmo um hipotético computador quântico a funcionar a 10 mil milhões de operações por segundo precisaria de mais tempo do que a idade do universo para esgotar o espaço de pesquisa. O esforço de normalização da criptografia pós-quântica do NIST visa algoritmos assimétricos, não o SHA-256.

O que é a construção de Merkle-Damgård?

A construção de Merkle-Damgård é a estrutura em que o SHA-256 assenta. A mensagem de entrada é dividida em blocos de 512 bits. Cada bloco é processado por uma função de compressão que recebe como entradas o bloco atual e a saída do bloco anterior. As saídas são encadeadas sequencialmente, pelo que o hash final depende de cada bit de toda a mensagem de entrada.

Saída de colaboradores: Guia de revogação segura de acessos 2026
Desativar uma conta SSO não revoga o acesso. As chaves de API, as credenciais de agentes de IA e as palavras-passe partilhadas sobrevivem-lhe. Este guia abrange o plano completo de saída de colaboradores, desde os desencadeadores de hora zero até à limpeza de NHI.
Ciclo de vida da rotação de segredos: Da criação à revogação
A rotação de segredos falha quando é tratada como uma tarefa agendada e não como um ciclo de vida. Este guia abrange as sete fases, desde a criação e a titularidade até à rotação segura, à revogação de emergência e às evidências de auditoria.
Ataques de força bruta em 2026: Tipos, exemplos e como os prevenir
Clusters de GPU, listas de palavras assistidas por IA, botnets de 2,8 milhões de dispositivos. A força bruta ganhou escala. Este guia abrange seis variantes de ataque, casos reais de 2025 e uma estratégia de defesa em camadas que as equipas podem implementar desde já.