ImageSteg · Oculte dados em uma imagem ou arquivo de áudio

Uma adaptação do steghide 0.5.1 para o navegador, com seus dois métodos: pixels/LSB para BMP e PNG e coeficientes DCT para JPEG, além de suportes de áudio PCM WAV e MP3. Oculte um arquivo ou mensagem e revele com a frase-senha.

100% local

Seu arquivo e seu segredo nunca saem deste dispositivo. Decodificação, incorporação, criptografia e extração ocorrem nesta aba. Nada é enviado a um servidor, portanto não há dados lá para vazar.

1 · Imagem ou áudio de cobertura

Solte uma imagem ou arquivo de áudio JPEG, PNG, WebP, GIF, BMP, PCM WAV ou MP3 · decodificados localmente, nunca enviados

Contêineres maiores comportam mais: imagens oferecem cerca de um byte a cada oito pixels; PCM WAV, um byte a cada dezesseis amostras; e MP3, o espaço não usado nos quadros de áudio.

2 · Dados a ocultar

Nenhum arquivo escolhido

3 · Frase-senha & opções

Três passos simples

Como ocultar um arquivo em uma imagem ou áudio

Sem instalação nem envio: escolha uma imagem, WAV ou MP3, adicione seu segredo e salve o resultado.

1

Escolha a imagem ou áudio de cobertura

Carregue, solte ou cole a imagem, WAV ou MP3 que carregará os dados. Arquivos maiores comportam mais, e fotos detalhadas ou música ocultam melhor as mudanças.

2

Adicione o segredo e uma frase-senha

Anexe um arquivo ou digite uma mensagem e escolha uma frase-senha. Ela determina onde os dados são distribuídos e, opcionalmente, os criptografa.

3

Baixe e compartilhe

Salve como BMP para compatibilidade com steghide ou PNG para um arquivo menor. Quem tiver a imagem e a frase-senha poderá revelar os dados.

Algoritmos do steghide e suportes de áudio no navegador

Emparelhamento de grafos em pixels, coeficientes DCT e amostras de áudio

ImageSteg é uma adaptação TypeScript do steghide 0.5.1, com seus dois ramos: pixels/LSB para BMP e PNG e DCT para JPEG. Também transporta dados em PCM WAV da mesma forma e no final não utilizado de quadros MP3. Nenhum deles percorre simplesmente o arquivo em sequência.

Incorporação baseada em grafos

As amostras formam vértices e um emparelhamento de peso mínimo determina as alterações, modificando apenas cerca de uma amostra por valor oculto.

Esteganografia real em DCT de JPEG

Um codec de entropia JPEG integrado lê os coeficientes DCT quantizados, oculta dados em sua paridade e os recodifica, no mesmo ponto onde a libjpeg do steghide para. Aceita arquivos básicos e progressivos.

Distribuição controlada pela frase-senha

Uma permutação com semente MD5 espalha os dados pela imagem inteira, evitando uma ordem previsível para o conteúdo oculto.

Compressão e soma de verificação

zlib reduz o conteúdo antes de incorporá-lo, e uma soma CRC32 opcional informa imediatamente se a extração é confiável.

Criptografia AES-256 opcional

Rijndael em modo CBC, com a mesma derivação de chave da libmcrypt, mantém o conteúdo confidencial mesmo se alguém suspeitar da imagem.

O que esperar

Capacidade, velocidade e compatibilidade

Limites práticos para ocultar dados nos pixels de uma imagem.

BMP · PNGramo pixels / LSB
JPEGramo coeficientes DCT
0.2 %proporção típica de amostras modificadas
0 enviostudo fica no navegador

Compatibilidade: a organização de bits, permutação de amostras e criptografia Rijndael/CBC seguem o steghide 0.5.1; as saídas BMP e JPEG podem ser lidas com steghide extract -sf image.bmp -p passphrase ou -sf image.jpg, e arquivos produzidos pelo steghide de linha de comando podem ser lidos aqui. O formato sempre corresponde à cobertura: JPEG gera JPEG, pois os dados ficam em coeficientes que só JPEG transporta. Para coberturas de pixels, PNG é oferecido junto com BMP; a CLI do steghide não lê PNG.

O ramo JPEG em detalhes

O suporte JPEG do steghide chama a função da libjpeg jpeg_read_coefficients(), que interrompe a decodificação após Huffman, antes da desquantização e da IDCT. Restam os coeficientes DCT quantizados brutos. Navegadores não têm API para eles, por isso esta página inclui seu próprio codec de entropia JPEG em vez do decodificador nativo. Aceita arquivos básicos e progressivos, incluindo varreduras de refinamento por aproximação sucessiva.

Aplicando o mesmo algoritmo a PNG

O incorporador não vê formatos: trabalha apenas com os pixels decodificados, então o método BMP/LSB do steghide se aplica ao PNG sem alterações. Quatro detalhes importam:

Perguntas e respostas

Perguntas frequentes sobre ImageSteg

ImageSteg é gratuito?

Sim. Ocultar e revelar dados é gratuito, sem cadastro, marca-d'água ou limite artificial de tamanho.

Minha imagem ou arquivo secreto é enviado?

Não. Decodificação, incorporação, compressão e criptografia funcionam localmente com JavaScript e WebCrypto. Nada é enviado ao servidor do 73hi.

Quais formatos de imagem são aceitos?

Qualquer imagem decodificável pelo navegador pode ser uma cobertura de pixels; JPEG básico ou progressivo usa o ramo DCT do steghide. O formato segue a cobertura: JPEG entra, JPEG sai; uma cobertura de pixels gera BMP e uma cópia PNG. O steghide de linha de comando lê BMP e JPEG, mas não PNG.

Como o modo JPEG oculta dados?

Nos coeficientes DCT quantizados, como o steghide de linha de comando. A página inclui um codec de entropia JPEG que decodifica até os coeficientes, modifica sua paridade e os recodifica.

Posso usar JPEG progressivo?

Sim. Os arquivos progressivos são decodificados por toda sua sequência de seleção espectral e refinamento por aproximação sucessiva, depois regravados da mesma forma. O resultado continua sendo JPEG progressivo com os coeficientes originais.

E os JPEGs com codificação aritmética?

São aceitos para leitura. Arquivos QM (aritmética binária), em vez de Huffman — SOF9 sequencial e SOF10 progressivo — usam o mesmo decodificador aritmético da libjpeg, gerando coeficientes idênticos. O resultado é gravado com Huffman, como no steghide.

Quantos dados posso ocultar?

Cerca de um byte de conteúdo a cada oito pixels, descontando cabeçalho, nome do arquivo e sobrecarga opcional de criptografia. A ferramenta mostra a capacidade útil ao escolher a imagem.

O steghide de linha de comando consegue ler o resultado?

Sim, se você baixar BMP. A organização de bits, permutação de amostras baseada na frase-senha e criptografia Rijndael/CBC seguem o steghide 0.5.1.

Por que a extração falha após editar a imagem?

Os dados são armazenados nos valores individuais dos pixels. Recomprimir, redimensionar, filtrar ou converter para um formato com perdas, como JPEG, destrói o conteúdo. Guarde o BMP original ou uma cópia PNG sem perdas.

Posso ocultar dois segredos na mesma imagem?

Não incorporando duas vezes no mesmo arquivo. Uma segunda passagem escolhe posições pela cobertura e sobrescreve parte do primeiro conteúdo; como os dados são comprimidos antes da criptografia, poucos bits alterados tornam a mensagem inteira ilegível. O steghide original se comporta igual. Reusar a mesma frase-senha também sobrescreve as posições desde o início, preservando só a mensagem nova. Para camadas reais, aninhe arquivos: oculte o primeiro segredo em uma imagem pequena, baixe o resultado e oculte esse arquivo inteiro em uma imagem maior com outra frase-senha. Cada camada permanece intacta byte a byte porque é transportada como dados protegidos, não como pixels modificados.

Abrir uma imagem com dados ocultos os destrói?

Não. Carregar um arquivo apenas lê seus bytes: JPEG vai diretamente aos coeficientes DCT quantizados sem transformação inversa ou nova quantização; coberturas de pixels são decodificadas sem perdas. Os dados permanecem intactos. Um JPEG pode mudar ligeiramente de tamanho porque a codificação de entropia é reescrita, sem afetar o conteúdo. Você pode abrir com segurança um arquivo preparado por outra pessoa e revelar o conteúdo.

ImageSteg pode ajudar a proteger meus direitos autorais?

Sim. Incorpore um aviso de direitos autorais ou prova de propriedade diretamente na foto. Os dados ficam nos pixels ou coeficientes JPEG e são invisíveis na visualização comum, permitindo compartilhar publicamente sem que sejam percebidos. Se alguém reutilizar sem autorização, a marca oculta continua no arquivo; ao publicar a mesma imagem em uma plataforma de terceiros para documentar a infração, essa cópia também contém sua prova, apoiando um pedido de remoção ou uma reclamação.

Posso ocultar uma mensagem que tenho vergonha de dizer pessoalmente?

Claro. Oculte uma mensagem como "Eu te amo", ou algo difícil de dizer cara a cara, em uma foto comum do seu dia a dia, e use o aniversário do destinatário como frase-senha. Envie a foto e peça para abrir no ImageSteg (ou em 73hi.com/image-steg.html). Só quem conhece a frase-senha pode revelar as palavras, permitindo se expressar sem o constrangimento de falar em voz alta.