Arraste a imagem ou clique para selecionar
JPEG, WebP ou PNG · proporção original detectada automaticamente
Escolha a imagem que vai carregar a mensagem
JPEG, WebP ou PNG · proporção original preservada na saída (PNG)
O que é esteganografia?
Esteganografia é a arte de esconder uma mensagem dentro de outra coisa (nesse caso, dentro de uma imagem), sem que ela pareça diferente a olho nu. É diferente de criptografia: criptografia embaralha o conteúdo de um jeito que qualquer pessoa percebe que há um segredo ali, só não consegue ler. Esteganografia, ao contrário, esconde até o fato de que existe um segredo: a foto continua parecendo uma foto normal.
Pensa numa carta escrita com "tinta invisível": por fora é só papel em branco, mas quem sabe o truque (nesse caso, essa ferramenta) consegue revelar o que está escrito. Essa técnica é usada há séculos, em textos antigos e em cartas de guerra, e hoje existe também na versão digital, escondendo dados dentro de imagens, áudios ou vídeos.
Esta ferramenta faz isso ajustando, de um jeito bem sutil, o brilho de pequenos quadradinhos (blocos de 8×8 pixels) da imagem: um recurso pequeno demais para o olho humano notar, mas suficiente para codificar bits de informação. A ideia de dividir a imagem em blocos de 8×8 não é original daqui, é a mesma unidade usada pelo próprio algoritmo de compressão JPEG para processar imagens (ver Al-Ani, Al-Ani & Hammadi Awad, 2013, "The JPEG Image Compression Algorithm"). É por causa dessa mesma lógica de blocos que imagens comprimidas ou reenviadas por apps de mensagem podem corromper a mensagem escondida; por isso o passo a passo abaixo usa repetição e voto de maioria para tentar sobreviver a isso.
Como esta ferramenta funciona, passo a passo
- 1A imagem é redimensionada mantendo a proporção original (lado maior de até 1024 px) e dividida em blocos de 8×8 pixels.
- 2O brilho médio de cada bloco é ajustado para que sua paridade codifique um bit.
- 3Cada bit é repetido 7 vezes; um voto de maioria corrige erros de compressão na leitura.
- 4O fluxo é: 16 bits de tamanho, dados em UTF-8, e 8 bits de checksum (XOR).
- 5Um leve desfoque suaviza os blocos, e uma segunda passada reforça a paridade de cada bloco depois do desfoque, para a mensagem sobreviver intacta.