Esconder texto numa imagem
Esconde uma mensagem de texto secreta numa imagem com esteganografia LSB, com encriptação AES-256-GCM opcional, e revela-a depois. Local, sem envio.
Como esconder uma mensagem numa imagem
- Larga uma imagem na zona de largar, ou clica nela para escolher uma. O ideal é PNG, mas serve qualquer imagem que o teu navegador consiga abrir: o resultado é sempre guardado como um novo PNG.
- Em Esconder uma mensagem, escreve o teu texto em Mensagem secreta. A linha Capacidade mostra quantos bytes a mensagem ocupa e quantos a imagem consegue guardar.
- Para manter o conteúdo confidencial, marca Encriptar a mensagem com uma frase-passe (AES-256-GCM) e escreve uma Frase-passe. Mostrar a frase-passe permite-te confirmar o que escreveste.
- Clica em Esconder a mensagem e transferir o PNG. O ficheiro é guardado como
name-hidden.png(com o nome da tua imagem) e a linha de estado indica quantos valores de cor foram alterados.
Como revelar uma mensagem escondida
- Larga o PNG na mesma zona de largar. Se contiver uma mensagem escondida por esta ferramenta, aparece um aviso logo que a imagem é carregada.
- Se a mensagem foi encriptada, escreve a frase-passe em Frase-passe (só se a mensagem foi encriptada).
- Clica em Revelar a mensagem escondida. O texto aparece em Mensagem escondida, pronto a copiar.
Tudo acontece no teu navegador: a imagem, a mensagem e a frase-passe nunca são enviadas.
Como funciona: bit menos significativo (LSB)
Cada píxel guarda um valor de vermelho, de verde e de azul entre 0 e 255. Esta ferramenta substitui o último bit (o bit menos significativo) destes três valores por um bit da tua mensagem, píxel a píxel, pela ordem de leitura. Por exemplo, um vermelho de 200 é 11001000 em binário; guardar o bit 1 dá 11001001, ou seja, 201. Um valor de cor nunca muda mais do que 1, uma diferença que o olho não consegue ver.
Só são usados píxeis totalmente opacos, e o canal alfa nunca é tocado. Os píxeis semitransparentes são ignorados, porque os navegadores não conseguem manter exatamente os seus bits mais baixos. Antes da mensagem, a ferramenta escreve um cabeçalho de 13 bytes: uma assinatura, um indicador que diz se a mensagem está encriptada, o comprimento e uma soma de verificação CRC-32 que deteta dados danificados.
A Capacidade é de cerca de (número de píxeis opacos × 3 ÷ 8) − 13 bytes. Uma foto de 1000 × 1000 guarda cerca de 375 000 bytes, muito mais do que qualquer mensagem de texto. A encriptação acrescenta 49 bytes (versão, número de iterações, sal de 16 bytes, IV de 12 bytes e etiqueta de autenticação de 16 bytes). Com encriptação, a chave é derivada da tua frase-passe com PBKDF2-SHA-256 (600 000 iterações) e o texto é encriptado com AES-256-GCM, que também deteta qualquer adulteração.
O que a esteganografia não faz
A esteganografia esconde que uma mensagem existe; por si só, não é uma proteção forte. Uma inserção LSB sequencial como esta é fácil de detetar com ferramentas de esteganálise (testes do qui-quadrado, análise do plano LSB), e qualquer pessoa que abra a imagem nesta ferramenta consegue ler uma mensagem não encriptada. Se o conteúdo tiver de ficar privado, usa a opção de encriptação com uma frase-passe longa e única: a proteção só é tão forte quanto a frase-passe. Mesmo assim, a encriptação protege o conteúdo, não o facto de haver algo escondido.
Os bits escondidos também são frágeis. A recompressão em JPEG ou WebP, o redimensionamento, o recorte, as capturas de ecrã, os filtros e a maioria das redes sociais e aplicações de mensagens (que recomprimem e muitas vezes convertem as imagens) destroem a mensagem. Partilha o PNG como ficheiro: anexo de email, ligação de armazenamento na nuvem ou «enviar como documento» numa aplicação de mensagens.
Utilização responsável
Boas utilizações incluem enigmas, jogos de fuga e desafios CTF, marcar as tuas próprias imagens, ensinar como funcionam as imagens digitais e guardar notas privadas. Não a uses para contornar regras da empresa ou da escola nem a lei, e respeita as imagens e os direitos de autor dos outros.
Perguntas frequentes
Os outros conseguem ver que a minha imagem contém uma mensagem?
Não, só de olhar: cada valor de cor muda no máximo 1. Mas uma ferramenta de esteganálise consegue muitas vezes detetar a inserção LSB, e esta própria ferramenta avisa que existe uma mensagem quando a imagem é carregada.
Porque é que a minha mensagem escondida se perdeu?
A imagem foi provavelmente recomprimida, redimensionada ou convertida, por exemplo por uma rede social, uma aplicação de mensagens ou um editor de fotos. Só o ficheiro PNG exato mantém os bits intactos.
Posso partir de uma foto JPEG?
Sim. A foto é descodificada e o resultado é guardado em PNG, que é sem perdas. Mantém-no em PNG: guardá-lo outra vez em JPEG apaga a mensagem.
O que acontece se me esquecer da frase-passe?
A mensagem não pode ser recuperada. Não existe nenhuma porta das traseiras, e uma frase-passe errada é rejeitada pela verificação de autenticação do AES-GCM.
Porque é que o ficheiro PNG é maior do que o original?
O PNG é sem perdas, por isso costuma ser maior do que um JPEG da mesma foto. É o preço a pagar para manter intactos todos os bits escondidos.
Ferramentas relacionadas
- 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.
- Remover dados EXIF Remove os dados EXIF e a localização GPS das tuas fotos antes de as partilhares. Sem perdas em JPEG e PNG, em lote, e sem enviar nada.
- Conversor de imagem para Base64 Converte uma imagem em Base64 ou data URI com CSS e HTML prontos a colar, ou descodifica Base64 para imagem com pré-visualização. Grátis e sem envio.
- Conversor de formatos de imagem Converte imagens entre PNG, JPG, WebP, BMP e ICO no teu navegador. Conversão em lote, tamanhos de favicon e opções de transparência, sem enviar nada.