Utilia

Encriptar texto com palavra-passe

Encripta e desencripta texto com uma frase-passe no navegador, com AES-256-GCM e PBKDF2 de 600 000 iterações. Nada é enviado. Limites explicados.

Usa uma frase-passe longa, por exemplo cinco ou mais palavras aleatórias. Ninguém consegue recuperar uma frase-passe esquecida, e o texto encriptado é tão forte quanto ela.

Como encriptar e desencriptar texto

  1. Escreve ou cola a tua mensagem na primeira caixa, ou clica em Abrir um ficheiro .txt.
  2. Introduz uma Frase-passe e repete-a em Confirma a frase-passe (para encriptar). Marca Mostrar as frases-passe para verificares o que escreveste. A linha de força dá uma ideia aproximada de quão difícil é adivinhar a frase-passe.
  3. Clica em Encriptar. A derivação da chave demora cerca de um segundo de propósito (ver abaixo). O Resultado é um bloco de texto que começa por BEGIN ENCRYPTED TEXT. Usa Copiar para o pôr num e-mail, num chat ou numa nota, ou Transferir .txt para o guardar como ficheiro.
  4. Para o voltares a ler, cola o bloco inteiro (ou abre o ficheiro .txt) na primeira caixa, introduz a frase-passe e clica em Desencriptar. A caixa de confirmação não é necessária para desencriptar.

Se a frase-passe estiver errada, ou se um só carácter do bloco tiver sido alterado, recebes um erro claro em vez de texto ilegível.

O que acontece ao teu texto

Tudo funciona no teu navegador, com a Web Crypto API incorporada. O texto e a frase-passe nunca são enviados para lado nenhum. A ferramenta usa componentes padrão e bem estudados:

  • Derivação da chave: PBKDF2 com HMAC-SHA-256 e 600 000 iterações, o valor recomendado pela OWASP Password Storage Cheat Sheet para PBKDF2-HMAC-SHA256. É gerado um novo salt aleatório de 16 bytes em cada encriptação, por isso a mesma frase-passe dá uma chave diferente de cada vez e as tabelas pré-calculadas não servem para nada. As 600 000 iterações tornam cada tentativa de adivinhar a frase-passe lenta para um atacante, e são a razão pela qual a encriptação demora um instante.
  • Encriptação: AES-256 em modo GCM (NIST SP 800-38D) com um IV aleatório novo de 12 bytes. O GCM é uma encriptação autenticada: uma etiqueta de 16 bytes deteta qualquer modificação. O pequeno cabeçalho (versão do formato, número de iterações, salt e IV) também é autenticado.
  • Saída: Base64 com cabeçalho. O bloco indica a versão do formato, para que versões futuras desta ferramenta continuem a ler as mensagens de hoje. Encriptar o mesmo texto duas vezes dá dois blocos diferentes, o que é normal.

Limites, com honestidade

Esta ferramenta destina-se a uma privacidade do dia a dia: enviar a palavra-passe do Wi-Fi a um amigo, manter uma nota pessoal ilegível para olhares curiosos, ou partilhar um segredo curto por um canal em que não confias totalmente, com a frase-passe transmitida de outra forma (pessoalmente ou por telefone).

  • A frase-passe é tudo. O ponto fraco não é o AES-256, é uma frase-passe fácil de adivinhar. Uma curta ou comum pode ser decifrada offline, apesar das 600 000 iterações, por quem tiver o bloco encriptado. Usa cinco ou mais palavras aleatórias, ou uma palavra-passe longa e aleatória criada por um gerador. A estimativa de força é só uma indicação: não sabe que «Verao2024!» é um padrão comum.
  • Sem recuperação. Não há porta das traseiras, nem reposição, nem cópia da tua frase-passe. Se a esqueceres, o texto perde-se para sempre.
  • O teu dispositivo tem de ser de confiança. Malware, uma extensão do navegador ou alguém a espreitar por cima do teu ombro podem ler o texto antes de ser encriptado.
  • Os metadados não ficam escondidos. O comprimento do bloco revela aproximadamente o comprimento da mensagem.
  • Não substitui ferramentas consagradas. Para ficheiros, cópias de segurança, arquivos de longo prazo ou qualquer coisa sensível (jurídica, médica, segredos comerciais), usa ferramentas auditadas feitas para isso: age, GnuPG (OpenPGP), ou a encriptação ponto a ponto de uma aplicação de mensagens como o Signal.

Perguntas frequentes

Esta encriptação é segura?

Os algoritmos são os usados por bancos e governos, aplicados da forma recomendada (salt e IV aleatórios, encriptação autenticada). Na prática, a segurança é a da tua frase-passe e do dispositivo que usas.

Porque é que a minha frase-passe está «errada» quando tenho a certeza de que está certa?

As frases-passe distinguem maiúsculas de minúsculas e os espaços contam. Verifica o Caps Lock e a disposição do teclado (por exemplo, português ou inglês), e confirma que o bloco foi copiado por inteiro, desde BEGIN até END. Um bloco cortado ou alterado dá, de propósito, o mesmo erro que uma frase-passe errada.

Conseguem desencriptar o meu texto se eu perder a frase-passe?

Não. Ninguém consegue: a frase-passe não está guardada em lado nenhum, e testar todas as possibilidades é exatamente o que o desenho torna impraticável.

Posso desencriptar o bloco com outro programa?

O formato está documentado na página e usa primitivas padrão: 1 byte de versão, 4 bytes com o número de iterações, o salt de 16 bytes, o IV de 12 bytes e depois o texto cifrado AES-GCM com a sua etiqueta de 16 bytes, tudo em Base64; o cabeçalho de 33 bytes é passado como dados autenticados adicionais. Um programador consegue desencriptá-lo com poucas linhas de código usando o OpenSSL, o pacote cryptography do Python ou a Web Crypto.

É melhor do que a cifra de César ou o ROT13?

É completamente diferente: essas apenas disfarçam as letras e quebram-se em segundos. O AES-GCM com uma frase-passe forte é criptografia moderna que não se quebra testando deslocamentos nem analisando a frequência das letras.