Criptografar e Descriptografar Texto com Senha (AES-256)

Criptografe e descriptografe textos com senha usando AES-256-GCM e PBKDF2. Tudo é feito no seu navegador: o texto e a senha não são enviados a nenhum servidor.

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.

Nada sai do seu navegador. O texto e a senha são processados aqui mesmo, com a Web Crypto API: não são enviados, salvos nem registrados em servidor nenhum.

A segurança depende só da senha: quem tiver o texto criptografado pode testar senhas à vontade. E não existe recuperação — se você esquecer a senha, o texto está perdido.

Como usar

  1. Em Criptografar, cole o texto e digite uma senha. O medidor mostra uma estimativa da força dela.
  2. Clique em Criptografar texto e copie o resultado — uma sequência em Base64 que pode ir por e-mail, WhatsApp ou ficar num arquivo.
  3. 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:

BytesConteúdo
0Versão do formato: 0x01
1 a 4Número de iterações do PBKDF2 (inteiro de 32 bits, big-endian)
5 a 20Sal (16 bytes)
21 a 32IV (12 bytes)
33 em dianteTexto 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 123456 ou 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.