Como obter um hash SHA-256 em Base64
- SHA-256 já vem selecionado em Algoritmo; os outros botões mudam para MD5, SHA-1, SHA-384 ou SHA-512.
- Com Entrada em Texto, digite ou cole em Texto. A entrada está em define como esse texto é lido: como texto UTF-8, ou como bytes em hex ou Base64, se você quiser gerar o hash de dados binários que já tem em forma codificada.
- Copie o resultado em Hex, Base64 ou Base64URL. Todos os algoritmos lista todos os digests da mesma entrada.
- Para gerar o hash de arquivos, mude Entrada para Arquivo e arraste um ou vários. Cada arquivo recebe o seu próprio resultado. Acima de 200 MB, SHA-256 e MD5 são calculados em blocos de 8 MB com indicador de progresso, então um arquivo grande nunca precisa caber inteiro na memória.
O hash é atualizado enquanto você digita. HMAC e SRI no topo mudam para hashes com chave e tags de Subresource Integrity.
Exemplos de hashes
| Entrada | SHA-256 (hex) | SHA-256 (Base64) |
|---|---|---|
| string vazia | e3b0c442…7852b855 | 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= |
hello | 2cf24dba…938b9824 | LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ= |
hello + quebra de linha | 5891b5b5…46f6be03 | WJG1tSLV3whtD/CxEPvZ0hu0/HFjrzTQgoai6Eb2vgM= |
The quick brown fox jumps over the lazy dog | d7a8fbb3…37c9e592 | 16j7swfXgJRpypq8sAguT41WUeRtPNt2LQLQvzfJ5ZI= |
A segunda e a terceira linhas mostram a armadilha por trás da maioria das divergências: uma quebra de linha invisível gera um hash completamente diferente. Texto colado em uma caixa de texto do navegador também tem as quebras de linha convertidas para LF, então, para arquivos com quebras CRLF, arraste o próprio arquivo em vez de colar o conteúdo.
Onde o SHA-256 aparece em Base64
Hex é a forma tradicional de exibir um digest, mas muitos formatos usam Base64 porque é mais curto:
- Hashes de Content Security Policy para scripts inline:
script-src 'sha256-…'. - Subresource Integrity:
integrity="sha256-…", embora ali o SHA-384 seja a escolha mais comum. Content-Digestdo HTTP (RFC 9530):Content-Digest: sha-256=:X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=:para o corpo{"hello": "world"}. Os dois-pontos marcam um valor binário em structured headers.- Checksums de armazenamento em nuvem, como o cabeçalho
x-amz-checksum-sha256do Amazon S3, que leva o digest em Base64. - Lock files e gerenciadores de pacotes: o campo
integritydopackage-lock.json(normalmentesha512-…) e hashes no estilo SRI no Nix.
Digests de imagens Docker e OCI (sha256:…) e o Git usam hex. Quando precisar comparar entre sistemas, converta com hex para Base64 ou Base64 para hex em vez de gerar o hash de novo.
SHA-256 em Base64 no código e na linha de comando
printf 'hello' | openssl dgst -sha256 -binary | base64
sha256sum file.bin | cut -d' ' -f1 | xxd -r -p | base64
Sem -binary, o OpenSSL imprime texto hex, e o Base64 desse texto são 88 caracteres sem sentido.
import base64, hashlib
digest = hashlib.sha256(b"hello").digest()
print(base64.b64encode(digest).decode())
No Node.js, crypto.createHash("sha256").update("hello").digest("base64") retorna o mesmo LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=, e "base64url" entrega a forma URL-safe. Um hash simples não é uma assinatura: qualquer um pode recalculá-lo. Para provar que uma mensagem veio de alguém que tem uma chave, use um HMAC. Veja Base64 em Python e OpenSSL para mais.
Perguntas frequentes
Por que meu SHA-256 não bate com o da linha de comando?
Quase sempre é uma quebra de linha no final. echo hello gera seis bytes, hello mais \n, então o hash é diferente do hash de hello. Use printf 'hello' ou echo -n hello no shell, ou compare com um arquivo que você arrastar aqui.
Quantos caracteres tem um hash SHA-256 em Base64?
44 caracteres, terminando com um =, ou 43 em Base64URL sem preenchimento. Em hex são 64 caracteres. Se você obteve 88 caracteres, o texto hex foi codificado em Base64 no lugar do digest bruto.
Dá para converter uma string SHA-256 em hex para Base64?
Sim, os bytes do digest são os mesmos. Cole os 64 caracteres hex em hex para Base64, ou no shell rode xxd -r -p sobre o hex e passe o resultado para base64.
Dá para decodificar um SHA-256 de volta para o texto original?
Não. Um hash é uma impressão digital de mão única, então não há nada para decodificar. Decodificar o Base64 só devolve os 32 bytes do digest; veja Base64 não é criptografia para entender a diferença em relação à codificação.