Gerador de Hash SHA-256

Gera hash SHA-256 de qualquer texto

Texto de entrada

Roda localmente · Seguro para colar segredos

Hash SHA-256

O hash SHA-256 aparecerá aqui…

O que é o SHA-256?

SHA-256 (Secure Hash Algorithm 256-bit) é uma função de hash criptográfico da família SHA-2, publicada pelo NIST em 2001 como parte do FIPS 180-2 (atualizado no FIPS 180-4). Para qualquer entrada — um único caractere, um arquivo de vários gigabytes ou uma string vazia — o SHA-256 produz um resumo fixo de 256 bits (32 bytes), convencionalmente exibido como 64 caracteres hexadecimais. O SHA-256 é a função de hash mais amplamente implantada em sistemas de produção atualmente, sustentando cadeias de certificados TLS, a prova de trabalho do Bitcoin, a Subresource Integrity (SRI) e fluxos de assinatura de código.

O SHA-256 é uma função unidirecional: calcular um hash a partir de uma entrada é rápido (centenas de megabytes por segundo em hardware moderno), mas reverter o processo — encontrar uma entrada que produza um determinado hash — é computacionalmente inviável. Essa propriedade, chamada de resistência a pré-imagem, torna o SHA-256 adequado para hash de senhas (quando combinado com um salt e derivação de chave), assinaturas digitais e verificação de integridade de dados. Ao contrário do MD5 e do SHA-1, nenhum ataque de colisão ou pré-imagem foi demonstrado contra o SHA-256 completo.

A família SHA-2 inclui seis variantes: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 e SHA-512/256. O SHA-256 opera com palavras de 32 bits e 64 rodadas por bloco, otimizado para processadores de 32 bits. O SHA-512 usa palavras de 64 bits e 80 rodadas, podendo ser mais rápido em plataformas de 64 bits. Para a maioria das aplicações onde um resumo de 256 bits é suficiente, o SHA-256 permanece a recomendação padrão do NIST, IETF e do CA/Browser Forum.

Por que usar um gerador SHA-256 online?

Gerar um hash SHA-256 normalmente requer um comando de terminal ou algumas linhas de código. Esta ferramenta no navegador permite calcular resumos SHA-256 sem instalar nada, sem trocar de contexto ou escrever um script.

Hash instantâneo no seu navegador
Cole ou digite qualquer texto e obtenha o resumo SHA-256 imediatamente. A Web Crypto API realiza o cálculo de forma nativa — sem overhead de biblioteca JavaScript.
🔒
Processamento com privacidade garantida
Sua entrada nunca sai do seu dispositivo. Todo o hash é executado localmente pela Web Crypto API integrada ao navegador. Nenhum dado é transmitido a qualquer servidor.
📋
Formatos de saída prontos para copiar
Obtenha o hash em hex minúsculo ou maiúsculo com um clique. Útil para conferir checksums de gerenciadores de pacotes, pipelines de CI ou documentação.
🔍
Verificação de valores de referência
Verifique rapidamente resumos SHA-256 de páginas de download, manifestos SBOM ou logs de auditoria sem abrir um terminal ou escrever código descartável.

Casos de uso do SHA-256

Desenvolvedor Frontend — Subresource Integrity
Calcule o hash SHA-256 de um script ou folha de estilos hospedada em CDN para preencher o atributo integrity nas tags script e link, protegendo contra adulterações na cadeia de fornecimento.
Engenheiro Backend — Assinatura de Requisições de API
Muitas APIs (AWS Signature V4, webhooks do Stripe) exigem hashes SHA-256 dos payloads das requisições. Use esta ferramenta para calcular hashes de referência durante o desenvolvimento e a depuração.
DevOps — Verificação de Artefatos
Verifique checksums SHA-256 de binários baixados, imagens base do Docker ou plugins de provedor Terraform antes de implantar na infraestrutura de produção.
Engenheiro de QA — Validação de Vetores de Teste
Compare saídas SHA-256 com vetores de teste do NIST (exemplos do FIPS 180-4) para confirmar que sua implementação de hash trata corretamente os casos extremos.
Engenheiro de Dados — Fingerprinting por Linha
Aplique hash SHA-256 em chaves compostas ou campos de PII para criar fingerprints determinísticos e irreversíveis para deduplicação ou pseudonimização em pipelines de dados.
Estudante — Trabalhos de Criptografia
Experimente o SHA-256 para observar o efeito avalanche: altere um único caractere na entrada e veja como toda a saída de 64 caracteres muda de forma imprevisível.

Comparação das variantes da família SHA-2

O SHA-256 pertence à família SHA-2 definida no FIPS 180-4. Cada variante equilibra tamanho do resumo, características de desempenho e margem de segurança. A tabela abaixo compara todas as variantes SHA-2 que você provavelmente encontrará.

VarianteTamanho do ResumoComprimento HexTamanho em BytesMelhor Para
SHA-256256 bits64 hex chars32 bytesTLS, blockchain, code signing, JWTs, SRI
SHA-224224 bits56 hex chars28 bytesTruncated SHA-256 — rare, specific compliance
SHA-384384 bits96 hex chars48 bytesGovernment / CNSS, higher collision margin
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC with large keys
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-256 vs SHA-1, MD5 e SHA-3

A escolha do algoritmo de hash correto depende dos seus requisitos de segurança e restrições de compatibilidade. O SHA-256 ocupa o ponto ideal na prática: é seguro, universalmente suportado (incluindo a Web Crypto API) e rápido o suficiente para a maioria das cargas de trabalho. A tabela de comparação abaixo abrange as propriedades mais relevantes na escolha de uma função de hash.

PropriedadeSHA-256SHA-1MD5SHA-3-256
Digest size256 bits (64 hex)160 bits (40 hex)128 bits (32 hex)256 bits (64 hex)
Security statusSecureBroken (2017)Broken (2004)Secure
Collision resistance2^128 operationsPractical attackPractical attack2^128 operations
Block size512 bits512 bits512 bits1600 bits (sponge)
Rounds64806424
StandardFIPS 180-4FIPS 180-4RFC 1321FIPS 202
Web Crypto APIYesYesNoNo
Primary use todayTLS, blockchain, SRILegacy git onlyNon-security checksumsBackup standard

Como o SHA-256 funciona internamente

O SHA-256 processa a entrada em blocos de 512 bits (64 bytes) por meio de uma construção de Merkle–Damgård. O algoritmo inicializa oito palavras de estado de 32 bits (H0–H7) derivadas das partes fracionárias das raízes quadradas dos oito primeiros números primos. Cada bloco passa por 64 rodadas de mistura que utilizam operações bit a bit (AND, XOR, NOT, rotação à direita, deslocamento à direita) e 64 constantes de rodada derivadas das raízes cúbicas dos primeiros 64 números primos.

Input: "hello world"
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
(256 bits = 32 bytes = 64 hex characters)
EtapaDescrição
PaddingAppend a 1-bit, then zeros until the message length is 448 mod 512. Append the original message length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
Message scheduleExpand each 16-word (32-bit) block into 64 words using sigma functions with right-rotate and right-shift operations.
CompressionProcess 64 rounds per block using Ch, Maj, and two Sigma functions with 64 round constants derived from cube roots of the first 64 primes.
OutputConcatenate the eight 32-bit state words (H0-H7) into a 256-bit (32-byte) digest, rendered as 64 hexadecimal characters.

O efeito avalanche garante que inverter um único bit na entrada altera aproximadamente 50% dos bits da saída. Essa propriedade, combinada com a resistência a colisões de 2^128, é o motivo pelo qual o SHA-256 permanece a recomendação de referência para aplicações sensíveis à segurança em 2026.

Exemplos de código SHA-256

O SHA-256 está disponível nativamente em todas as principais linguagens e runtimes. A Web Crypto API o fornece nos navegadores sem necessidade de biblioteca. Os exemplos abaixo mostram padrões de uso reais, incluindo tratamento de entrada Unicode e hash de arquivos.

JavaScript (Web Crypto API)
// Works in all modern browsers and Node.js 18+
async function sha256(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-256', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha256('hello world')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha256').update('hello world').digest('hex')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
Python
import hashlib

# Basic SHA-256 hash
result = hashlib.sha256(b'hello world').hexdigest()
print(result)  # → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

# Hash a string (encode to bytes first)
text = 'café ☕'
hashlib.sha256(text.encode('utf-8')).hexdigest()
# → "3eb53e00aa1bb4b1e8aab1ab38e56e6b8fb0b20e1cf7e1d19f36e4fad2537445"

# Hash a file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
    sha = hashlib.sha256()
    for chunk in iter(lambda: f.read(8192), b''):
        sha.update(chunk)
    print(sha.hexdigest())
Go
package main

import (
    "crypto/sha256"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha256.Sum256(data)
    fmt.Printf("%x\n", hash)
    // → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
}
CLI (Linux / macOS)
# Using sha256sum (Linux) or shasum (macOS)
echo -n "hello world" | sha256sum
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# macOS
echo -n "hello world" | shasum -a 256
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# Verify a file checksum
echo "b94d27b...  myfile.bin" | sha256sum -c
# → myfile.bin: OK

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha256
# → SHA2-256(stdin)= b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

Perguntas frequentes

O SHA-256 ainda é seguro?
Sim. Em 2026, nenhum ataque prático de colisão, pré-imagem ou segunda pré-imagem foi encontrado contra o SHA-256 completo. O NIST, o CA/Browser Forum e o IETF continuam recomendando o SHA-256 para certificados TLS, assinatura de código e assinaturas digitais. A resistência teórica a colisões é de 2^128 operações, muito além dos limites computacionais atuais.
Qual é a diferença entre SHA-256 e SHA-2?
SHA-2 é o nome da família que reúne seis funções de hash: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 e SHA-512/256. O SHA-256 é o membro mais utilizado. Quando uma documentação diz "use SHA-2", quase sempre significa SHA-256 especificamente, a menos que seja necessário um resumo mais longo.
O SHA-256 pode ser revertido ou descriptografado?
Não. O SHA-256 é uma função de hash unidirecional, não criptografia. Não existe chave nem processo de descriptografia. A única maneira de encontrar a entrada original é por ataque de força bruta ou de dicionário, o que é computacionalmente inviável para entradas suficientemente complexas. Para entradas curtas ou previsíveis (como senhas comuns), existem rainbow tables pré-calculadas, razão pela qual o hash de senhas deve sempre usar um salt e uma KDF dedicada como bcrypt ou Argon2.
Como o SHA-256 se compara ao SHA-3?
O SHA-3 (Keccak, FIPS 202) usa uma estrutura interna completamente diferente (construção esponja) em relação ao SHA-256 (Merkle–Damgård). Tanto o SHA-256 quanto o SHA-3-256 produzem um resumo de 256 bits e oferecem resistência a colisões equivalente. O SHA-3 foi projetado como alternativa caso o SHA-2 seja comprometido, mas o SHA-2 permanece íntegro. O SHA-256 tem suporte de runtime mais amplo — notavelmente, a Web Crypto API suporta SHA-256, mas não SHA-3.
O SHA-256 é adequado para hash de senhas?
Não diretamente. Um hash SHA-256 bruto de uma senha é vulnerável a ataques de força bruta e rainbow tables porque o SHA-256 é projetado para ser rápido. Para armazenamento de senhas, use uma função de derivação de chave dedicada como bcrypt, scrypt ou Argon2id, que adicionam um salt e um fator de custo configurável para tornar os ataques mais lentos.
Por que o Bitcoin usa SHA-256 duplo?
O Bitcoin calcula SHA-256(SHA-256(data)) (conhecido como hash256) para cabeçalhos de bloco e IDs de transação. A aplicação dupla protege contra ataques de extensão de comprimento, em que um atacante acrescenta dados a uma mensagem e calcula um hash válido sem conhecer a entrada original. Essa é uma propriedade dos hashes de Merkle–Damgård que o SHA-256 de passagem única não previne.
O que é Subresource Integrity (SRI) e como o SHA-256 se relaciona?
SRI é uma especificação W3C que permite aos navegadores verificar se um recurso obtido (script, folha de estilos) não foi adulterado. Você adiciona um atributo integrity contendo um hash SHA-256 codificado em Base64 (ou SHA-384/SHA-512) do conteúdo esperado do arquivo. O navegador calcula o hash do arquivo baixado e se recusa a executá-lo caso os hashes não correspondam. O SHA-256 é o algoritmo mínimo suportado pelo SRI.