O hash SHA-256 do texto Hello, World! é dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f. Verifique você mesmo e aprenda como SHA-256 funciona.
O hash SHA-256 do texto Hello, World! é:
dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
São 64 caracteres hexadecimais representando 256 bits. Você pode verificar isso em qualquer ambiente:
# Terminal (macOS/Linux)
echo -n "Hello, World!" | sha256sum
# Alternativa macOS
echo -n "Hello, World!" | shasum -a 256
# Python
import hashlib
hashlib.sha256(b"Hello, World!").hexdigest()
# Node.js
const crypto = require('crypto');
crypto.createHash('sha256').update('Hello, World!').digest('hex');
Todos devem retornar dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f. Se você obtiver um resultado diferente, verifique a quebra de linha final. echo sem -n adiciona uma quebra de linha, alterando a entrada é o hash.
SHA-256 faz parte da família SHA-2, padronizada pelo NIST em 2001. Recebe uma entrada de tamanho arbitrário e produz uma saída fixa de 256 bits. O algoritmo funciona em vários estágios:
A entrada é preenchida para que seu comprimento seja congruente a 448 módulo 512 bits. Uma representação de 64 bits do comprimento da mensagem original é anexada. Isso garante que o comprimento total seja múltiplo de 512 bits.
A entrada preenchida é dividida em blocos de 512 bits. Cada bloco é expandido em 64 palavras de 32 bits usando operações bit a bit (XOR, deslocamentos à direita, rotações).
Uma função de compressão executa 64 rodadas sobre o estado atual do hash usando as 64 palavras mais 64 constantes de rodada derivadas das partes fracionárias das raízes cúbicas dos primeiros 64 números primos. O estado são oito variáveis de 32 bits (a a h) inicializadas a partir das raízes quadradas fracionárias dos primeiros 8 números primos.
Após processar todos os blocos, as oito variáveis de estado são concatenadas para produzir a saída de 256 bits.
A mesma entrada sempre produz o mesmo hash. Hello, World! é sempre dffd6021.... Isso torna hashes úteis como identificadores estáveis.
Um único caractere é um arquivo de 10 GB ambos produzem um hash de 256 bits. Essa propriedade torna o hashing útil para comparar arquivos sem comparar seu conteúdo byte a byte.
Alterar um único bit na entrada muda completamente a saída. Hello, World! e Hello, World? produzem hashes que compartilham quase nenhum bit. Isso significa que você não pode inferir nada sobre a entrada a partir de pequenas mudanças no hash.
Dado um hash, você não pode trabalhar de volta para encontrar a entrada. Este é o fundamento de como o hash de senhas (em alto nível) e assinaturas digitais funcionam.
Quando você baixa um software, o projeto geralmente pública um checksum SHA-256 junto com o binário. Você hasheia o arquivo baixado e compara. Se corresponderem, o arquivo não foi adulterado durante o trânsito.
sha256sum downloaded-file.tar.gz
# compare com o checksum publicado
O algoritmo de proof of work do Bitcoin exige que mineradores encontrem um nonce tal que SHA-256(SHA-256(block_header)) produza um hash abaixo de um valor alvo. A construção SHA dupla 256 foi escolhida por Satoshi Nakamoto para se defender contra ataques de extensão de comprimento, que afetam SHA-256 simples.
Certificados X.509 são assinados com um hash de seu conteúdo. SHA-256 é o padrão para assinaturas de certificados; SHA-1 foi depreciado e removido de autoridades certificadoras confiáveis por volta de 2017.
HMAC-SHA-256 usa SHA-256 como o hash subjacente em um código de autenticação de mensagem. É usado na verificação de assinatura JWT (HS256), assinatura de requisições AWS e muitos esquemas de autenticação de API.
Git armazena todo arquivo, árvore de diretório e commit como um objeto endereçado por conteúdo. O SHA do objeto (historicamente SHA-1, em transição para SHA-256) é computado a partir de seu conteúdo é usado tanto como chave de armazenamento quanto como verificação de integridade.
SHA-256 é rápido, intencionalmente. Para integridade de arquivos e assinaturas digitais, velocidade é desejável. Para hash de senhas, é uma desvantagem. Um atacante com uma GPU pode calcular bilhões de hashes SHA-256 por segundo, tornando ataques de força bruta e dicionário contra um banco de dados de senhas hasheadas com SHA-256 práticos.
Use uma função de hash de senhas específica:
argon2id.Essas funções incluem um salt aleatório por usuário (prevenindo ataques de rainbow table) e são projetadas para serem ajustadas para mais lentas conforme o hardware melhora.
Se você está armazenando senhas, não use SHA-256 diretamente, nem mesmo com salt. Use bcrypt ou Argon2.
| Algoritmo | Tamanho da saída | Status |
|---|---|---|
| MD5 | 128 bits (32 hex chars) | Quebrado. Ataques de colisão práticos existem |
| SHA-1 | 160 bits (40 hex chars) | Quebrado. Ataque SHAttered (2017) demonstrou colisão prática |
| SHA-256 | 256 bits (64 hex chars) | Seguro. Nenhuma fraqueza conhecida |
| SHA-3-256 | 256 bits (64 hex chars) | Seguro. Estrutura interna diferente (Keccak sponge) |
MD5 e SHA-1 ainda são usados em contextos não relacionados à segurança (checksums para detecção de erros, identificadores de sistemas legados) onde a resistência a colisões não importa. Para qualquer contexto onde um atacante possa tentar produzir duas entradas com o mesmo hash (fraude de certificados, substituição de arquivos, falsificação de assinaturas), apenas SHA-256 ou mais forte deve ser usado.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.