Ferramentas
Guias

Cifrar / Decifrar AES

Cripto

Criptografia simétrica AES-GCM com chave derivada por PBKDF2, sal e IV aleatórios. Por senha.

100% no cliente Sem backend
Entrada
Saída
Nesta página

O que é a encriptação simétrica?#

A encriptação simétrica usa um segredo compartilhado tanto para trancar como para destrancar. Dá-se-lhe texto simples e uma senha; devolve um blob embaralhado que ninguém consegue ler de volta sem essa mesma senha. É a ferramenta certa sempre que se quer confidencialidade — esconder o que algo diz — em oposição a um hash (que só prova integridade) ou HMAC (que prova autenticidade).

Esta página usa AES-GCM, o modo de encriptação autenticada recomendado para código novo. “Autenticada” é a palavra-chave: o GCM não se limita a embaralhar o texto, também tece uma etiqueta à prova de adulteração. Se alguém trocar um único bit no texto cifral, a decifragem falha ruidosamente em vez de devolver silenciosamente lixo. A chave é derivada da sua senha com PBKDF2 sobre SHA-256, usando um sal aleatório fresco e 100.000 iterações por padrão, pelo que uma senha algo fraca continua cara de atacar por força bruta offline.

Tudo corre no navegador através do Web Crypto. Não há servidor, não há depósito de chaves, nem chamada de rede — se perder a senha, o texto cifral é irrecuperável, por desenho.

Como usar#

  1. Escolha um modo: Cifrar (texto simples → texto cifral) ou Decifrar (texto cifral → texto simples).
  2. Escreva a senha. É o único segredo compartilhado; quem decifrar mais tarde tem de escrever exatamente a mesma.
  3. Escolha as opções:
    • Tamanho da chave — 128 / 192 / 256 (predefinição 256). 256 é a referência moderna; as outras existem para corresponder a sistemas legados.
    • Iterações — rounds de PBKDF2, predefinição 100.000. Valores mais altos abrandam a quebra offline mas também abrandam a si; 100.000 é um mínimo sensato hoje.
    • Codificação — base64 (compacta, predefinição) ou hex.
  4. Cole a entrada no painel da esquerda. Para cifrar, qualquer texto; para decifrar, o blob que copiou anteriormente.
  5. Leia a saída à direita. A linha de estado diz-lhe se a operação teve sucesso; uma senha errada na decifragem mostra uma falha limpa em vez de texto corrompido.

Principais funcionalidades#

  • Encriptação autenticada AES-GCM. A adulteração do texto cifral é detetada — um blob modificado recusa-se a decifrar em vez de produzir lixo plausível.
  • Saída autodescritiva. O sal, o IV, o tamanho da chave e a contagem de iterações são empacotados no blob de saída, pelo que a decifragem não precisa de nada além da senha. Nunca tem de se lembrar nem reenviar esses parâmetros separadamente.
  • Aleatoriedade por mensagem. Um novo sal aleatório e um novo IV de 12 bytes são extraídos para cada encriptação, pelo que cifrar o mesmo texto duas vezes produz dois blobs completamente diferentes — ambos decifram para o mesmo texto simples.
  • PBKDF2 ajustável. Suba a contagem de iterações para endurecer uma senha fraca contra ataque offline.
  • Zero envios. A encriptação e a decifragem são ambas locais; a senha e o texto simples nunca saem da página.

Exemplo prático#

Cifrar a mensagem launch at dawn com a senha correct-horse-battery-staple, tamanho de chave 256, iterações 100000, codificação base64. A saída abaixo é um blob real e verificável — cole-o diretamente em Decifrar com a mesma senha e launch at dawn volta:

AQEAAAGGoPVkwA9k0rjoWLw8GXnalIvQoBTP+awUg4DczQwTK5nxMwUaEaQ35WTQbWK8gLMkvuDf+/ndr04f8fw=

(Cifrar o mesmo texto de novo produzirá um blob diferente, porque o sal e o IV são aleatoriamente frescos a cada execução.) Esse blob não é só texto cifral. É um pequeno envelope disposto assim:

version(1) | keyBits(2) | iterations(4) | salt(16) | IV(12) | ciphertext+tag

Mude para Decifrar, cole o blob acima de volta na entrada, escreva a mesma senha, e o painel da direita devolve launch at dawn. Agora repita a decifragem com uma senha ligeiramente diferente — a etiqueta de autenticação do GCM não validará, e a linha de estado reporta uma falha em vez de lhe entregar texto meio corrompido. Essa falha limpa é exatamente o que a encriptação autenticada lhe compra em relação ao modo CBC mais antigo não autenticado.

FAQ#

E se me esquecer da senha?#

Os dados se perderam. O PBKDF2 e o AES são desenhados para que a senha não possa ser recuperada do blob — não há caminho de “esqueci-me da senha”, não há backdoor, nem servidor que a possa repor. Trate a senha como o ponto único de falha, e considere guardar senhas críticas num gestor de senhas.

Porque é que cifrar o mesmo texto duas vezes dá saídas diferentes?#

Porque um novo sal aleatório e um novo IV de 12 bytes aleatório são gerados para cada encriptação. Isto é deliberado: se texto simples idêntico produzisse sempre texto cifral idêntico, um atacante conseguiria reconhecer mensagens repetidas. A aleatoriedade não afeta a decifragem, porque o sal e o IV viajam dentro do blob e são lidos de volta automaticamente.

Quantas iterações devo definir?#

100.000 é um mínimo razoável para uso interativo. Se está protegendo algo de alto valor e tolera uma pequena espera, 600.000 traz um custo adicional significativo para um atacante sem ser doloroso para si. O custo é pago uma vez por encriptação ou decifragem, não por byte de dado.

Isto é seguro para arquivos grandes?#

Lida com qualquer texto que consiga colar, mas isto é uma ferramenta do tamanho de uma página, não uma encriptadora de arquivos em streaming. Para payloads muito grandes, um esquema híbrido (AES para os dados, RSA ou key wrapping para a chave AES) é o padrão — e AES-GCM é exatamente a metade simétrica desse padrão.