Criptografar Texto
Aplica cifras clássicas (Caesar, ROT13, Atbash) ou codifica em Base64. Útil para puzzles, CTFs e testes — não use para segurança real.
Quais cifras estão disponíveis?
Na Caesar, cada letra anda um número fixo de posições no alfabeto. O ROT13 nada mais é que a Caesar com deslocamento 13, e por isso ele se desfaz aplicando a si mesmo. Já a Atbash troca cada letra pela sua oposta no alfabeto (A↔Z, B↔Y).
O Base64 codifica binário em texto ASCII. Não é cifra, e sim uma codificação; serve para transportar bytes em ambientes que só aceitam texto.
Fica o aviso de que essas cifras caem em segundos numa análise de frequência. Não confie nelas para proteger dados de verdade. Para isso, use criptografia moderna como o AES-GCM.
Criptografia em profundidade: como cifras modernas protegem texto e dados
Criptografar é o processo matemático de transformar informação legível (texto claro) em uma forma ininteligível (texto cifrado), de modo que apenas quem detém a chave correta recupere a mensagem original. A criptografia passou por três grandes eras: o período clássico das cifras de substituição e transposição, a era simétrica iniciada pelo DES nos anos 1970, e a era moderna de chave pública inaugurada pela troca de chaves de Diffie-Hellman em 1976 e pelo artigo do RSA em 1978. A ferramenta acima permite brincar com cifras didáticas (Cesar, ROT13, Base64), mas a segurança real depende de uma pilha bem mais cuidadosa de primitivas, modos e parâmetros. Esta página documenta essa pilha.
Criptografia simétrica vs assimétrica
Em esquemas simétricos, a mesma chave secreta cifra e decifra, e precisa ser compartilhada com segurança antes da comunicação. Primitivas simétricas são extremamente rápidas, frequentemente aceleradas em hardware via AES-NI, e lidam com dados de tamanho arbitrário quando combinadas com um modo adequado. A desvantagem é o problema da distribuição de chaves.
A criptografia assimétrica dá a cada participante um par de chaves: uma pública, que pode ser divulgada, e uma privada, que permanece em segredo. O que é cifrado com a chave pública só pode ser decifrado com a privada; assinaturas digitais funcionam ao contrário. Algoritmos assimétricos são várias ordens de grandeza mais lentos e impõem limites estritos de tamanho, então quase nunca cifram volumes grandes — servem para estabelecer chaves de sessão (handshake TLS) ou assinar hashes de documentos.
Sistemas modernos combinam os dois: assimétrica para estabelecimento de chave e identidade, simétrica para o trabalho pesado. TLS 1.3, Signal, age, SSH, OpenPGP, FileVault e BitLocker seguem esse padrão híbrido.
AES: o Advanced Encryption Standard
O AES é a cifra de bloco simétrica que domina o planeta. Foi selecionado pelo NIST em 2000, após competição pública de cinco anos, padronizado como FIPS 197 em 2001, e substituiu o DES. Opera sobre blocos de 128 bits e suporta três tamanhos de chave: 128, 192 e 256 bits, com 10, 12 e 14 rodadas respectivamente. Tanto AES-128 quanto AES-256 são seguros hoje; o AES-256 oferece margem maior contra criptoanálise quântica via algoritmo de Grover.
Uma cifra de bloco sozinha cifra apenas 128 bits. Para mensagens maiores é preciso um modo de operação:
- ECB cifra cada bloco de forma independente. Blocos claros idênticos viram blocos cifrados idênticos (o "pinguim ECB"). Nunca use ECB.
- CBC faz XOR de cada bloco com o cifrado anterior. Esconde padrões, mas é maleável e vulnerável a padding-oracle sem autenticação.
- CTR transforma a cifra de bloco em cifra de fluxo cifrando um contador. Paralelizável, dispensa padding — mas não oferece integridade sozinho.
- GCM combina CTR com MAC polinomial e produz tag de autenticação. AEAD, recomendação moderna para a maioria dos casos.
IV / nonce: por que reutilizar é catastrófico
Todo modo do AES, exceto o ECB, exige um parâmetro fresco e não-secreto chamado vetor de inicialização (IV) ou nonce. No AES-GCM o nonce tem 96 bits e precisa ser único para toda cifragem feita com a mesma chave. Se você cifrar duas mensagens diferentes com a mesma chave e o mesmo nonce, o atacante faz XOR dos textos cifrados para obter o XOR dos claros e recupera a subchave de autenticação, podendo forjar mensagens arbitrárias. Já atingiu sistemas em produção (notoriamente o WinZip AES).
Duas estratégias seguras: gerar nonce aleatório de 96 bits com CSPRNG por mensagem, ou usar contador determinístico persistido. No navegador, crypto.getRandomValues(new Uint8Array(12)) produz um IV seguro.
KDF: transformando senhas em chaves
Senhas humanas têm pouquíssima entropia (30 a 50 bits), enquanto o AES espera uma chave uniformemente aleatória de 128 ou 256 bits. Uma função de derivação de chave (KDF) faz essa ponte: recebe senha mais sal aleatório e produz chave, sendo deliberadamente lenta para encarecer força bruta.
- PBKDF2 (RFC 2898) itera HMAC-SHA-256 centenas de milhares de vezes. Aprovado pelo FIPS, mas barato em memória.
- scrypt (RFC 7914) é memory-hard, forçando o atacante a provisionar RAM.
- Argon2 (RFC 9106) venceu a Password Hashing Competition de 2015. Use Argon2id com pelo menos 19 MiB, duas iterações e um grau de paralelismo.
Algoritmos modernos comuns
- AES-GCM (128 / 256) — AEAD simétrico, acelerado em hardware, padrão do TLS 1.3.
- ChaCha20-Poly1305 — AEAD em cifra de fluxo, mais rápido que AES em CPUs sem AES-NI. Usado por TLS 1.3, WireGuard, OpenSSH.
- RSA-OAEP / RSA-PSS — assimétrico, módulo mínimo de 2048 bits (3072+ recomendado).
- EdDSA (Ed25519) — assinaturas em curva elíptica; determinístico e imune a falhas de reutilização de nonce.
- X25519 / ECDH — acordo de chave em curva elíptica, alternativa moderna ao DH em corpo finito.
Web Crypto API: cifrando no navegador
Os navegadores expõem uma pilha criptográfica nativa via window.crypto.subtle, disponível apenas sobre HTTPS ou em localhost. A API é assíncrona e retorna Promises. Cifragem mínima com AES-GCM:
const key = await crypto.subtle.generateKey(
{ name: "AES-GCM", length: 256 },
false,
["encrypt", "decrypt"]
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ct = await crypto.subtle.encrypt(
{ name: "AES-GCM", iv },
key,
new TextEncoder().encode("ola mundo")
);
// guarde iv junto com ct (iv e publico, nao secreto)
Para derivar chave a partir de senha, use crypto.subtle.deriveKey com PBKDF2 (a Web Crypto não traz Argon2; recorra a um build WASM da libsodium se precisar).
O que a criptografia não esconde
A criptografia protege conteúdo, não metadados. Um atacante na rede continua observando tamanho, tempo, frequência, endereços de origem e destino e padrão de tamanhos. Análise de tráfego contra VoIP cifrado recupera frases faladas, e o tamanho de uma requisição TLS revela qual página foi acessada. Se metadado importa, adicione padding, modelagem de tráfego ou redes de mixagem (Tor) — não apenas AES mais forte.
Casos práticos
- Senhas de usuário: nunca cifre — hash com Argon2id (ou bcrypt / scrypt). Criptografia é reversível, hash não é.
- Arquivos em repouso: AES-256-GCM com nonce aleatório por arquivo e chave derivada da senha via Argon2id.
- Mensagens entre pessoas: use um protocolo já avaliado como o Signal Protocol (double-ratchet, X3DH, Ed25519).
- Bearer tokens / JWT: assine com EdDSA ou HMAC-SHA-256; só cifre o payload (JWE) se carregar segredos.
- Backups: envelope encryption — uma chave por arquivo, embrulhada por chave-mestra do KMS.
Perguntas frequentes
AES-256 é melhor que AES-128? Ambos são seguros hoje. AES-256 tem margem maior contra criptoanálise futura e ataques quânticos, mas é cerca de 40% mais lento. Para a maioria das aplicações o AES-128 já basta.
Posso reusar o mesmo IV se a mensagem é a mesma? Não. A segurança do GCM depende de nunca repetir um nonce com a mesma chave. Gere um IV aleatório a cada cifragem.
Devo guardar senhas cifradas? Não. Faça hash com Argon2id ou bcrypt. Hashes não podem ser revertidos; cifradas podem, se a chave-mestra vazar junto.
Computadores quânticos quebram o AES? O algoritmo de Grover reduz força bruta de 2^n para 2^(n/2): AES-128 vira 64 bits (fraco), AES-256 vira 128 bits (forte). RSA e ECC são totalmente quebrados pelo algoritmo de Shor — por isso esquemas pós-quânticos como ML-KEM e ML-DSA, padronizados pelo NIST em 2024.
A cifra de Cesar serve para segurança real? Não, é puramente didática. Cesar, ROT13 e Base64 não têm força criptográfica.
Cifras clássicas e codificação de texto
As cifras clássicas costumam ser o primeiro contato de quem se interessa por criptografia. São fáceis de entender, divertidas de mexer e aparecem o tempo todo em jogos e desafios. A ferramenta aplica algumas das mais conhecidas (Caesar, ROT13 e Atbash) e ainda codifica texto em Base64.
Cai bem para resolver ou criar puzzles, encarar um desafio de CTF, esconder um recado de brincadeira ou só estudar como esses métodos antigos funcionavam. Mas fica o aviso: cifras assim quebram fácil. Elas valem pela diversão e pelo aprendizado, e não para proteger informação que importa de verdade; nesse caso o terreno é o dos algoritmos modernos.
Tudo acontece no navegador, sem que o texto saia dali. Cole a mensagem, escolha a cifra e o resultado aparece na hora, nos dois sentidos.
Ferramentas Relacionadas
Cifra ROT13
Aplique a cifra ROT13 (rotação de 13 letras) no texto. Aplicar duas vezes retorna ao original. Usada em fóruns para esconder spoilers. Apenas A-Z e a-z são afetados. Tudo no navegador.
Cifra Atbash
Aplique a cifra Atbash (A↔Z, B↔Y, C↔X...): cada letra vira sua "espelhada" no alfabeto. Cifra antiga hebraica usada na Bíblia. Aplicar duas vezes retorna ao original. Tudo no navegador.
Cifra Trifid
Cifra Trifid (Felix Delastelle) — codifica letras em triplas de 1-3.