Ferramenta de descriptografia AES

Descriptografe texto cifrado AES-128/192/256: dados “Salted__” do OpenSSL (U2FsdGVkX1…), saída do CryptoJS ou chave + IV em hex em CBC, GCM, CTR, CFB, OFB, ECB.

A saída usa o formato "Salted__" do OpenSSL em Base64: um salt aleatório de 8 bytes seguido do texto cifrado. A chave e o IV são derivados da senha e do salt, então o mesmo texto gera um resultado diferente a cada vez. Comando equivalente:

openssl enc -aes-256-cbc -d -md md5 -a -A -k '…'

Executa totalmente no seu navegador. Seus dados nunca são enviados.

O que é Descriptografia AES?

Descriptografa texto cifrado AES no navegador. Lê o formato “Salted__” do OpenSSL (strings Base64 que começam com U2FsdGVkX1) produzido por openssl enc e CryptoJS.AES.encrypt(text, passphrase), ou texto cifrado bruto com chave e IV em hex nos modos CBC, CFB, CTR, OFB, ECB ou GCM autenticado. O preenchimento é verificado, então uma chave errada é informada em vez de devolver lixo.

Como usar Descriptografia AES

  1. Selecione a mesma Origem da chave usada na criptografia: Senha (compatível com OpenSSL) para dados U2FsdGVkX1… (“Salted__”) ou Chave + IV brutos (hex) para texto cifrado bruto.
  2. Informe a senha (e a mesma Derivação de chave), ou a chave e o IV em hex.
  3. Defina o mesmo Modo e Preenchimento do remetente e cole o Texto cifrado (Base64 ou Hex).
  4. Clique em Descriptografar. Mantenha a saída como Texto (UTF-8) ou mude para Hex se o texto puro for binário.

Exemplo

Entrada
U2FsdGVkX19HHh9Vv809WnL0M8IWPgnpihePLw8JpDQ= (passphrase "secret", AES-256, CBC, EVP_BytesToKey MD5)
Saída
Hello, World!

Texto cifrado produzido por openssl enc -aes-256-cbc -md md5 -a -k secret.

Quando usar Descriptografia AES

Use-a para ler dados criptografados com OpenSSL ou CryptoJS, para depurar por que sua aplicação não consegue descriptografar algo ou para conferir vetores de teste. Você precisa da senha ou da chave correta – a ferramenta não recupera chaves perdidas nem quebra o AES. Se o texto cifrado veio de outro produto (um ZIP, um banco de dados, um gerenciador de senhas), ele geralmente tem um formato de contêiner próprio e não será descriptografado aqui.

Como funciona Descriptografia AES

Em dados com senha, os primeiros 16 bytes precisam ser Salted__ mais um salt de 8 bytes. A chave e o IV são derivados de novo a partir da senha e do salt com EVP_BytesToKey (MD5) ou PBKDF2-HMAC-SHA256 com o seu número de iterações, exatamente como faz o openssl enc -d, e então o restante é descriptografado. Com uma chave bruta, a chave e o IV em hex são usados diretamente. Depois da descriptografia CBC/ECB, o preenchimento PKCS#7 é conferido byte a byte – uma divergência quase sempre significa chave, IV, modo ou tamanho de chave errados. No GCM, a tag de 16 bytes no final é verificada pela Web Crypto antes que qualquer texto puro seja exibido.

Casos de Uso Comuns

  • Descriptografar uma string U2FsdGVkX1… gerada por openssl enc -aes-256-cbc -a
  • Conferir um valor criptografado por CryptoJS.AES.encrypt em um app web
  • Verificar texto cifrado + tag AES-GCM produzidos pelo seu backend
  • Descobrir qual tamanho de chave ou modo foi usado testando as configurações prováveis
  • Descriptografar dados de teste durante a depuração de APIs ou integrações

Nota de Segurança

A descriptografia acontece localmente; senhas e texto puro nunca saem do seu dispositivo. Apenas o GCM comprova que os dados não foram modificados.

Perguntas Frequentes

O que significa “Preenchimento inválido” ou “senha errada”?

O último bloco descriptografado não terminou com um preenchimento PKCS#7 válido. Confira a senha, o tamanho da chave (128/192/256), o modo e a derivação de chave (MD5 ou PBKDF2 e suas iterações). O OpenSSL 1.1+ usa por padrão -md sha256 sem -pbkdf2, o que não é suportado aqui – criptografe de novo com -md md5 ou -pbkdf2.

Ela descriptografa a saída do CryptoJS?

Sim. CryptoJS.AES.encrypt(text, "passphrase").toString() usa o mesmo formato Salted__ com AES-256-CBC e EVP_BytesToKey/MD5, que é a configuração padrão aqui.

Meu texto cifrado não começa com U2FsdGVkX1. E agora?

Então ele foi criptografado com uma chave bruta. Mude a Origem da chave para Chave + IV brutos (hex) e informe a chave e o IV que o programa usou. Alguns programas colocam o IV antes do texto cifrado; separe-o e informe-o no campo de IV.

Por que a saída da descriptografia parece caracteres aleatórios?

Nos modos de fluxo (CTR, CFB, OFB) não há preenchimento para verificar, então uma chave errada produz bytes aleatórios. A ferramenta os informa como UTF-8 inválido; mude a saída para Hex se você espera dados binários.

Explore mais categorias