Como obter um hash MD5 em Base64
- MD5 já vem selecionado em Algoritmo.
- Para um arquivo, troque Entrada para Arquivo e arraste-o, ou vários arquivos de uma vez; cada um recebe o próprio resultado. Arquivos acima de 200 MB são lidos em blocos de 8 MB, com a porcentagem de progresso.
- Para texto, mantenha Entrada em Texto e digite ou cole. A entrada está em permite gerar o hash de dados hex ou Base64 como bytes brutos em vez de texto UTF-8.
- Copie o valor Base64 para headers e APIs, ou o Hex para comparar com a saída do
md5sum. Os dois descrevem os mesmos 16 bytes.
A ferramenta mostra um aviso curto de que o MD5 não serve para fins de segurança, o que é verdade e não afeta checksums.
Hex ou Base64: os mesmos 16 bytes
| Entrada | MD5 (hex) | MD5 (Base64) |
|---|---|---|
| vazia | d41d8cd98f00b204e9800998ecf8427e | 1B2M2Y8AsgTpgAmY7PhCfg== |
hello | 5d41402abc4b2a76b9719d911017c592 | XUFAKrxLKna5cZ2REBfFkg== |
The quick brown fox jumps over the lazy dog | 9e107d9d372bb6826bd81d3542a419d6 | nhB9nTcrtoJr2B01QqQZ1g== |
O erro mais comum com o Content-MD5 é codificar em Base64 o texto hex. Para a frase da raposa, isso gera OWUxMDdkOWQzNzJiYjY4MjZiZDgxZDM1NDJhNDE5ZDY=, 44 caracteres que nenhum servidor vai aceitar. O tamanho entrega o problema de cara: 24 caracteres está certo, 44 é o hex codificado por engano.
Onde o MD5 em Base64 é esperado
- Headers de requisição
Content-MD5(RFC 1864). O Amazon S3 o confere nos uploads, e o Azure Blob Storage também, devolvendo um erro quando o corpo não bate. - O Google Cloud Storage informa o
md5Hashde um objeto em Base64, e ogsutil hashimprime Base64 a menos que você passe-hpara hex. - As propriedades de blobs do Azure também guardam o
Content-MD5em Base64. - APIs mais antigas e sistemas de e-mail que adotaram o header antes de existirem checksums baseados em SHA.
Outros lugares continuam com hex: o md5sum e a maioria das páginas de download, e o ETag de um upload S3 em parte única, que é o MD5 em hex entre aspas. ETags de uploads S3 multipart terminam em - e um número de partes e nem são o MD5 do arquivo inteiro, então nunca vão bater com o resultado desta ferramenta.
MD5 para Base64 na linha de comando e no código
openssl md5 -binary file.bin | base64
md5sum file.bin | cut -d' ' -f1 | xxd -r -p | base64
import base64, hashlib
with open("file.bin", "rb") as f:
digest = hashlib.file_digest(f, "md5").digest()
print(base64.b64encode(digest).decode())
hashlib.file_digest exige Python 3.11 ou mais recente; em versões anteriores, leia o arquivo em blocos e chame update(). Em Node.js, crypto.createHash("md5").update(buffer).digest("base64") dá a forma Base64 direto. Se uma API mais nova oferecer um checksum SHA-256, prefira-o; o SHA-256 para Base64 gera esses valores do mesmo jeito. Há mais trechos nas páginas de OpenSSL e Python.
Perguntas frequentes
O que é o header Content-MD5?
Um header HTTP da RFC 1864 que leva o Base64 do digest MD5 de 16 bytes do corpo. Serviços de armazenamento como o Amazon S3 e o Azure Blob Storage o usam para rejeitar uploads corrompidos no caminho.
Por que meu MD5 em Base64 tem 44 caracteres?
Você codificou a string hex de 32 caracteres em vez dos 16 bytes brutos. Um MD5 correto em Base64 sempre tem 24 caracteres e termina em ==. Gere o hash com saída binária (-binary no OpenSSL, .digest() no Python) antes de codificar.
Como converter um checksum MD5 em hex para Base64?
Decodifique o hex para bytes e codifique-os em Base64: 9e107d9d372bb6826bd81d3542a419d6 vira nhB9nTcrtoJr2B01QqQZ1g==. O conversor hex para Base64 faz isso colando uma vez.
O MD5 ainda é seguro?
Para detectar corrupção acidental, sim. Para qualquer coisa que um atacante possa influenciar, não: colisões de MD5 podem ser geradas num notebook, então dois arquivos diferentes podem ter o mesmo hash. Use SHA-256 para integridade contra adulteração e um hash de senha como Argon2 ou bcrypt para senhas.