Criptografar e descriptografar texto online
Digite uma mensagem, escolha uma senha e receba um texto embaralhado que só volta ao original com a mesma senha. A ferramenta usa AES-256-GCM, o mesmo algoritmo que protege conexões HTTPS, e tudo acontece no seu navegador: o texto e a senha não são enviados, salvos nem registrados em servidor nenhum.
Como usar
- Em Criptografar, cole o texto e digite uma senha. O medidor mostra uma estimativa da força dela.
- Clique em Criptografar texto e copie o resultado — uma sequência em Base64 que pode ir por e-mail, WhatsApp ou ficar num arquivo.
- Para ler, abra esta página, escolha Descriptografar, cole a sequência e digite a mesma senha.
Combine a senha com a outra pessoa por outro canal (pessoalmente, por telefone). Mandar o texto criptografado e a senha na mesma conversa anula a proteção.
O que acontece por baixo
- Sua senha vira uma chave. O AES precisa de uma chave de 256 bits, não de uma senha. A conversão é feita com PBKDF2-HMAC-SHA-256 em 600.000 iterações — o número recomendado pela OWASP (Password Storage Cheat Sheet, conferido em outubro de 2026) — e um sal aleatório de 16 bytes. As iterações deixam cada tentativa de adivinhar a senha centenas de milhares de vezes mais lenta; o sal impede o uso de tabelas prontas.
- O texto é cifrado com AES-256-GCM, usando um IV aleatório de 12 bytes. O AES é o padrão do NIST (FIPS 197) e o modo GCM (NIST SP 800-38D) é uma cifra autenticada: além de esconder o conteúdo, gera uma etiqueta de 16 bytes que denuncia qualquer alteração.
- Sal e IV são sorteados a cada vez. Por isso, criptografar duas vezes o mesmo texto com a mesma senha dá resultados diferentes — é o comportamento correto.
Ao descriptografar, se a etiqueta não conferir, a ferramenta responde “senha incorreta ou texto alterado” e não mostra nada. O GCM não permite distinguir um caso do outro, e isso é uma qualidade: você nunca recebe um texto adulterado como se fosse legítimo.
Formato do texto criptografado (versão 1)
O resultado é o Base64 padrão de uma sequência de bytes com este formato:
| Bytes | Conteúdo |
|---|---|
| 0 | Versão do formato: 0x01 |
| 1 a 4 | Número de iterações do PBKDF2 (inteiro de 32 bits, big-endian) |
| 5 a 20 | Sal (16 bytes) |
| 21 a 32 | IV (12 bytes) |
| 33 em diante | Texto cifrado seguido da etiqueta de autenticação do GCM (16 bytes) |
A chave é PBKDF2-HMAC-SHA-256(senha, sal, iterações) com saída de 32 bytes; a senha entra em UTF-8, normalizada em NFC (para que “é” digitado em aparelhos diferentes gere a mesma chave). O texto é cifrado em UTF-8 e os 33 bytes do cabeçalho entram como dados adicionais autenticados (AAD). O resultado ocupa 49 bytes a mais que o texto, antes do Base64.
Como o formato é aberto, você não depende deste site: dá para descriptografar com qualquer biblioteca que tenha PBKDF2 e AES-GCM. Em Python, com o pacote cryptography:
import base64, hashlib, unicodedata
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
def descriptografar(pacote: str, senha: str) -> str:
b = base64.b64decode(pacote)
assert b[0] == 1
iteracoes = int.from_bytes(b[1:5], "big")
senha_bytes = unicodedata.normalize("NFC", senha).encode("utf-8")
chave = hashlib.pbkdf2_hmac("sha256", senha_bytes, b[5:21], iteracoes, 32)
return AESGCM(chave).decrypt(b[21:33], b[33:], b[:33]).decode()Textos do OpenSSL, CryptoJS e it-tools (“U2FsdGVkX1…”)
Se o seu texto criptografado começa com U2FsdGVkX1, ele está no formato “Salted__” do comando openssl enc -aes-256-cbc -md md5 e da biblioteca CryptoJS, usada por vários sites de criptografia. A ferramenta descriptografa esse formato (AES-256-CBC, com a chave derivada pelo EVP_BytesToKey do OpenSSL com MD5), mas avisa que ele é legado e menos seguro: a chave sai de uma única rodada de MD5, o que torna muito rápido testar senhas, e não há autenticação — um texto alterado pode passar despercebido. Por isso ela não gera esse formato. Algoritmos antigos como DES, 3DES e RC4 também ficaram de fora.
Limitações honestas
- A senha é o elo fraco. Nenhum algoritmo salva uma senha como
123456ou o nome do cachorro. Use uma senha longa e aleatória ou uma frase-senha de várias palavras. - O medidor de força é uma estimativa simples, baseada em tamanho e variedade de caracteres. Ele não reconhece palavras de dicionário, nomes ou datas.
- Não há recuperação de senha. Sem ela, o texto está perdido — nem nós conseguimos abrir.
- O tamanho do texto não é escondido: quem vê o resultado sabe aproximadamente quantos caracteres a mensagem tem.
- Só texto, até 2 milhões de caracteres. Para arquivos, use um programa próprio, como o 7-Zip com senha (AES-256) ou o
age. - A página exige conexão segura (https) e um navegador atualizado, porque depende da Web Crypto API.
- Depois de descriptografado, o texto fica visível na tela e na área de transferência, como qualquer outro.
Criptografia não é codificação nem hash
- Base64 é codificação: qualquer pessoa desfaz, sem senha.
- SHA-256 é hash: mão única, não dá para “descriptografar”.
- HMAC autentica uma mensagem com uma chave, mas não a esconde.
- AES é criptografia simétrica: a mesma senha cifra e decifra. Para cifrar para alguém sem combinar uma senha antes, existe a criptografia assimétrica — veja o gerador de par de chaves RSA.
Perguntas frequentes
O texto ou a senha são enviados para o servidor?
Não. A criptografia roda no seu navegador com a Web Crypto API (crypto.subtle), e a página não faz nenhuma requisição com o conteúdo digitado. Você pode conferir desligando a internet depois de carregar a página: ela continua funcionando.
AES-256 é seguro?
Sim. Não se conhece ataque prático contra o AES-256, e ele é aceito para proteger informação sigilosa por governos e bancos. Na prática, o ponto fraco é sempre a senha escolhida, não o algoritmo.
Esqueci a senha. Dá para recuperar o texto?
Não. Não existe “senha mestra” nem porta dos fundos. A única saída é tentar as senhas que você costuma usar.
Por que o resultado muda a cada vez que eu criptografo?
Porque o sal e o IV são sorteados a cada operação. Se o resultado fosse sempre igual, quem observasse saberia quando duas mensagens são idênticas. Todos os resultados abrem com a mesma senha.
Consigo descriptografar aqui um texto gerado em outro site?
Só se ele estiver no formato desta ferramenta ou no formato “Salted__” do OpenSSL/CryptoJS (começa com U2FsdGVkX1). Cada site monta o pacote de um jeito; “AES-256” sozinho não define como sal, IV e iterações são guardados.
Posso usar para guardar senhas ou documentos importantes?
Para uma anotação ou mensagem ocasional, sim, com uma senha forte. Para guardar senhas no dia a dia, um gerenciador de senhas é mais prático e seguro; para arquivos, prefira ferramentas feitas para isso.