Criptografia e descriptografia AES
Criptografe e descriptografe textos com AES-128, 192 ou 256 — GCM, CBC, CTR e outros modos.
Você vai precisar dela de novo para descriptografar. Nada do que você digita sai desta página.
O padrão do OpenSSL é 10.000. Qualquer número funciona: mais iterações deixam a senha mais lenta de adivinhar; para descriptografar, é preciso o mesmo número.
A escolha usual com o OpenSSL. Precisa de um IV; faz padding até completar os blocos.
openssl enc -aes-256-cbc -pbkdf2 -iter 10000 -a -AO OpenSSL pede a senha; cole o texto nele ou acrescente arquivos com -in e -out.
Criptografe textos com AES-256 — ou AES-128 ou AES-192 — usando uma senha ou sua própria chave e IV, ou cole um texto cifrado AES em Base64 ou hex para descriptografá-lo. Com senha, o resultado tem o mesmo formato do openssl enc -pbkdf2: o cabeçalho Salted__, um sal aleatório de 8 bytes e o texto cifrado, com a chave e o IV derivados por PBKDF2-HMAC-SHA256. O padrão — AES-256 no modo CBC, com padding PKCS#7 e saída em Base64 — equivale a openssl enc -aes-256-cbc -pbkdf2 -a, e GCM, CTR, CFB, OFB e ECB estão a um clique. O resultado é atualizado enquanto você digita. Tudo acontece no seu navegador, então seu texto, sua senha e sua chave nunca saem do seu dispositivo; é grátis e não exige cadastro.
Como criptografar e descriptografar textos com AES
- Escolha Criptografar ou Descriptografar. Digite o texto a criptografar ou cole o texto em Base64 ou hex a descriptografar — o formato é detectado automaticamente.
- Digite uma senha (Gerar cria uma senha forte) ou mude para Chave e IV (hex) e digite ou gere uma chave e um IV do tamanho indicado.
- Escolha o tamanho da chave (128, 192 ou 256 bits) e o modo. Para descriptografar, use a mesma senha, o mesmo número de iterações, o mesmo tamanho de chave e o mesmo modo da criptografia.
- Copie ou baixe o resultado, ou clique em Trocar para levá-lo à entrada e inverter a direção. Em O mesmo no OpenSSL, a página mostra o comando openssl equivalente, sem a sua senha.
Recursos
- AES-128, AES-192 e AES-256 nos modos CBC, GCM, CTR, CFB, OFB ou ECB
- Modo senha no formato do openssl enc -pbkdf2: cabeçalho Salted__, sal aleatório de 8 bytes, chave e IV via PBKDF2-HMAC-SHA256
- 10.000 (o padrão do OpenSSL), 100.000 ou 600.000 iterações de PBKDF2, ou qualquer número até 10 milhões
- Modo Chave e IV com sua própria chave e IV em hex, ou aleatórios com Gerar
- O AES-GCM detecta senha ou chave errada e qualquer alteração no texto cifrado
- Padding PKCS#7, ou nenhum em CBC e ECB
- Saída em Base64 ou hex; entrada em Base64 ou hex reconhecida automaticamente
- O comando openssl enc equivalente para todos os modos, exceto GCM
É privado?
Sim. O AES roda em WebAssembly dentro do seu navegador, e a senha é transformada em chave pelo próprio Web Crypto do navegador. Seu texto, sua senha e sua chave nunca são enviados nem salvos, e o comando openssl mostrado na página nunca os contém.
Perguntas frequentes
Qual modo AES devo usar?
Para dados novos, GCM: além de criptografar, ele detecta qualquer alteração no texto e uma senha errada. Escolha CBC, o padrão, quando o outro lado usa openssl enc, que não lê GCM; escolha CTR, CFB ou OFB só para combinar com um sistema existente. Evite ECB: blocos idênticos de 16 bytes geram saídas idênticas, e os padrões do texto ficam visíveis.
Dá para descriptografar o resultado com o OpenSSL?
Sim, exceto em GCM. Com o padrão: echo 'U2FsdGVkX1…' | openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -a -A — o OpenSSL então pede a senha. Troque 256 e cbc pelo seu tamanho de chave e modo (ecb, ctr, cfb, ofb), -iter pelo seu número de iterações, e acrescente -nopad se desativou o padding; para saída em hex, remova -a -A e passe o texto antes por xxd -r -p. No modo Chave e IV, use -K <chave em hex> -iv <IV em hex> no lugar de -pbkdf2 -iter. O openssl enc recusa GCM (cifras AEAD não são suportadas), então um texto em GCM só pode ser lido aqui ou por código.
Por que o resultado muda a cada vez?
Porque cada criptografia com senha escolhe um novo sal aleatório; assim, a chave, o IV e toda a saída mudam a cada vez — e todas as versões são descriptografadas para o mesmo texto. É proposital: ninguém consegue saber que duas mensagens são iguais. No modo Chave e IV, a saída se repete quando a chave e o IV se repetem; por isso, gere um novo IV para cada mensagem: reutilizar um IV com a mesma chave enfraquece o CBC e quebra o CTR e o GCM.
Por que aparece que a senha está errada?
Porque algo não confere: a senha, o número de iterações, o tamanho da chave, o modo e o padding precisam ser os mesmos da criptografia, e o texto guarda apenas o sal. Um texto que começa com U2FsdGVkX1, mas foi criado pelo openssl enc sem -pbkdf2 ou pelo CryptoJS com uma frase-senha, usa uma derivação de chave mais antiga (EVP_BytesToKey) que esta página não lê — criptografe-o de novo com -pbkdf2 ou use o modo Chave e IV se tiver a chave e o IV brutos.
A criptografia AES-256 é segura?
Sim. O AES não tem ataque prático, em nenhum tamanho de chave; o ponto fraco é a senha. Use uma senha longa e aleatória (Gerar cria uma) e, quando controlar os dois lados, aumente as iterações para 600.000, o valor atual da OWASP para PBKDF2-HMAC-SHA256. Escolha GCM se também precisar saber que o texto não foi alterado.