Ferramenta de criptografia AES (AES-128/192/256)

Criptografe texto com AES-128/192/256 em CBC, GCM, CTR, CFB, OFB ou ECB. Modo senha compatível com OpenSSL ou chave + IV em hex. Roda no seu navegador.

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 -md md5 -a -A -k '…'

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

O que é Criptografia AES?

Criptografa texto ou dados hexadecimais com AES, a cifra de bloco padrão (FIPS 197). Você pode derivar a chave de uma senha no formato “Salted__” do OpenSSL, para que o openssl enc e o CryptoJS consigam descriptografar o resultado, ou informar uma chave e um IV brutos em hex para interoperar com código. Os modos CBC, CFB, CTR, OFB, ECB e o GCM autenticado são suportados.

Como usar Criptografia AES

  1. Deixe a Origem da chave em Senha (compatível com OpenSSL) e digite uma Senha, ou mude para Chave + IV brutos (hex) e informe a chave e o IV exatos em hex.
  2. Escolha o Modo e o Preenchimento (CBC com PKCS#7 é o padrão do OpenSSL); com chaves brutas, você também pode escolher GCM e dados autenticados adicionais opcionais.
  3. Digite ou cole o Texto puro (ou mude a codificação de entrada para Hex no caso de dados binários).
  4. Clique em Criptografar, escolha Base64 ou Hex como Codificação da saída e copie o texto cifrado.

Exemplo

Entrada
Key 2b7e151628aed2a6abf7158809cf4f3c, IV 000102030405060708090a0b0c0d0e0f, mode CBC, padding None, hex plaintext 6bc1bee22e409f96e93d7e117393172a
Saída
7649abac8119b246cee98e9b12e9197d

Vetor de teste F.2.1 do NIST SP 800-38A, codificação da saída em Hex.

Quando usar Criptografia AES

Use-a para produzir dados de teste para uma aplicação que usa AES, para criptografar um trecho que você vai descriptografar com OpenSSL ou CryptoJS, ou para aprender como modos e preenchimento alteram a saída. Prefira GCM (ou CBC com um MAC separado) para dados reais, pois CBC/CTR/CFB/OFB sozinhos não detectam adulteração. Evite ECB: blocos idênticos geram texto cifrado idêntico. Para arquivos ou segredos de longo prazo, use uma ferramenta dedicada como age, GnuPG ou as APIs de criptografia da sua plataforma.

Como funciona Criptografia AES

O AES criptografa blocos de 16 bytes com uma chave de 128, 192 ou 256 bits (10, 12 ou 14 rodadas). No modo senha, um salt aleatório de 8 bytes é gerado e a chave e o IV são derivados com o EVP_BytesToKey do OpenSSL (MD5, uma iteração – o padrão do openssl enc -md md5 e do CryptoJS) ou com PBKDF2-HMAC-SHA256 (openssl enc -pbkdf2); a saída é o Base64 de Salted__ + salt + texto cifrado. No modo bruto, sua chave e seu IV em hex são usados diretamente e só o texto cifrado é devolvido. CBC e ECB usam preenchimento PKCS#7 (ou zeros/nenhum); CFB, OFB e CTR são modos de fluxo sem preenchimento. O GCM usa a Web Crypto API do navegador com um nonce de 12 bytes e acrescenta a tag de autenticação de 16 bytes. A implementação passa nos vetores de teste do NIST SP 800-38A e do GCM.

Casos de Uso Comuns

  • Criar um texto cifrado compatível com openssl enc -aes-256-cbc sem usar o terminal
  • Reproduzir a saída de CryptoJS.AES.encrypt(text, passphrase) para depuração
  • Gerar vetores de teste AES-GCM (texto cifrado + tag) para uma implementação de backend
  • Criptografar um segredo curto com uma chave bruta de 256 bits e IV para colar em um arquivo de configuração
  • Demonstrar por que o modo ECB vaza padrões em comparação com CBC ou CTR

Nota de Segurança

Tudo roda localmente no seu navegador; nada é enviado. O EVP_BytesToKey com MD5 é uma derivação de chave fraca e rápida, mantida por compatibilidade – escolha PBKDF2 com muitas iterações, ou uma chave bruta aleatória, para qualquer coisa importante. Criptografia sem autenticação (CBC, CTR, CFB, OFB) não detecta modificações.

Perguntas Frequentes

A saída é compatível com o OpenSSL?

Sim. No modo senha, o resultado é exatamente o que openssl enc -aes-256-cbc -md md5 -a -A -k <passphrase> produz (EVP_BytesToKey com MD5), ou -pbkdf2 -iter N quando você escolhe PBKDF2-HMAC-SHA256. Acrescente -d para descriptografar. A página mostra o comando correspondente abaixo do campo de senha.

Por que recebo um texto cifrado diferente a cada vez?

O modo senha usa um novo salt aleatório a cada criptografia, então chave, IV e texto cifrado mudam. Isso é intencional; qualquer uma das saídas é descriptografada com a mesma senha. O modo de chave bruta é determinístico para a mesma chave, IV e entrada.

Qual modo devo escolher?

GCM, porque ele também autentica os dados (a descriptografia falha se algo tiver sido alterado). Se o lado receptor só suporta openssl enc, use CBC – o enc do OpenSSL não suporta GCM. Nunca reutilize um nonce GCM ou um contador CTR com a mesma chave.

Qual a diferença entre senha e chave bruta?

Uma senha é transformada em chave por uma função de derivação de chave e um salt que fica guardado na saída. Uma chave bruta é usada exatamente como digitada (16, 24 ou 32 bytes para AES-128/192/256), junto com um IV que você precisa compartilhar separadamente.

Explore mais categorias