Como funciona Base64 e hash
Esta ferramenta da ModelosHub reúne dois utilitários essenciais para desenvolvedores: a codificação reversível Base64 e o cálculo de hashes criptográficos MD5, SHA-1, SHA-256 e SHA-512. Tudo roda no navegador — nenhum texto é enviado a um servidor, o que torna a página segura inclusive para conferência de tokens, chaves ou trechos confidenciais.
Base64 e hash são duas coisas completamente diferentes que costumam confundir iniciantes. Base64 é uma codificação reversível: você transforma bytes binários em uma string ASCII e pode voltar atrás. Hash é uma função de mão única: você recebe uma sequência de caracteres de tamanho fixo que identifica unicamente uma entrada, mas não é possível obter o original a partir do hash.
Algoritmos e formato
Base64 mapeia cada 3 bytes (24 bits) da entrada em 4 caracteres do alfabeto A-Z a-z 0-9 + /, completando com = quando o número de bytes não é múltiplo de 3. O resultado fica ~33% maior que o original — esse overhead é o preço de poder transportar dados binários por canais que só aceitam ASCII (HTTP headers, URLs, JSON, e-mail). No navegador, usamos btoa() e atob(), com cuidado para passar pelo TextEncoder a fim de preservar UTF-8 (acentos, emojis).
MD5 gera um hash de 128 bits (32 caracteres hex). É rápido, mas considerado quebrado para uso criptográfico desde 2004 — só use para checksum de integridade não-adversarial.
SHA-1 produz 160 bits (40 hex). Também já tem colisões conhecidas (Google SHAttered, 2017). Não use para assinaturas novas.
SHA-256 e SHA-512 são os padrões atuais da família SHA-2: 256 e 512 bits respectivamente. Continuam seguros para integridade e assinatura digital. Bitcoin, TLS e JWT padrão usam SHA-256.
Exemplos práticos
- Base64 de "ModelosHub" →
TW9kZWxvc0h1Yg== - Base64 de "olá mundo" (UTF-8) →
b2zDoSBtdW5kbw== - SHA-256 de "senha123" →
ef92b778ba...(sempre 64 hex) - MD5 de "" (string vazia) →
d41d8cd98f00b204e9800998ecf8427e - SHA-1 de "abc" →
a9993e364706816aba3e25717850c26c9cd0d89d
Quando usar cada um
Base64: para embutir imagens em CSS (data URI), enviar arquivos pequenos em JSON, gerar tokens não-secretos, codificar credenciais HTTP Basic Auth. Não é criptografia — qualquer pessoa decodifica em segundos.
MD5/SHA-1: apenas para verificar se um arquivo baixou corretamente (checksum não-adversarial) ou em sistemas legados que ainda exigem esses algoritmos. Nunca use para senhas.
SHA-256: assinatura JWT, certificados SSL, integridade de pacotes (npm, apt), prova de trabalho em blockchain, fingerprint de chaves. É o padrão moderno seguro.
SHA-512: quando você precisa de margem de segurança extra ou trabalha com sistemas que recomendam saída mais longa (Linux shadow file, por exemplo).
Cuidados importantes
Hash não é criptografia — não há "decriptar SHA-256". Quem afirmar que decriptou um hash provavelmente apenas consultou um rainbow table (banco de pares texto→hash pré-calculados).
Para armazenar senhas, hash puro não basta. Use sempre uma KDF (key derivation function) lenta com salt: bcrypt, scrypt, Argon2 ou PBKDF2 com pelo menos 100 mil iterações.
Base64 não esconde nada. Se você está colocando uma senha em Base64 num arquivo de configuração achando que está protegendo-a, está enganado — qualquer um copia o valor e decodifica.
Perguntas frequentes
Base64 é seguro para guardar senhas?
Não. Base64 é apenas uma codificação reversível. Decodificar é trivial e instantâneo. Para senhas use sempre bcrypt, Argon2 ou scrypt com salt aleatório.
Por que minha string com emoji deu erro ao codificar?
A função btoa() do navegador só aceita ASCII puro. Para texto UTF-8 (acentos, emojis) precisamos passar antes pelo TextEncoder e converter os bytes para a base — é exatamente o que esta ferramenta faz por baixo.
Posso reverter um hash SHA-256?
Não. Hashes são funções de uma via (one-way). O que existe são tabelas pré-computadas para entradas curtas e comuns ("123456", "password"), mas para qualquer string não-trivial é computacionalmente inviável.
MD5 ainda serve para alguma coisa?
Sim, para checksum de integridade não-adversarial (verificar se um arquivo baixou inteiro). Para qualquer caso que envolva segurança, use SHA-256 ou superior.
Qual a diferença entre Base64 padrão e Base64 URL-safe?
O Base64 URL-safe troca + por - e / por _ para poder aparecer em URLs sem precisar de escape. Esta ferramenta usa o padrão clássico, mas é fácil converter trocando os caracteres.
Por que dois hashes da mesma entrada são idênticos?
É justamente a propriedade fundamental de uma função hash determinística. Se a entrada for exatamente a mesma (byte a byte), o hash sempre será o mesmo, em qualquer máquina, em qualquer linguagem.