ForHosting KIT · Ferramentas para dev

Codificador de caracteres de largura zero

Esconde um segredo dentro de um texto comum com caracteres Unicode invisíveis: “Hi” escondido em “Hello world” vira 18 caracteres de largura zero que ninguém vê, e a decodificação o revela. Útil para marcas d'água e aulas, mas não é criptografia. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Chave secreta
Hi
Texto de cobertura
Hello world
Modo de cálculo
encode
Você obtém
Resultado
H‍​‌​​‌​​​​‌‌​‌​​‌ello world
Codificação
zero_width
Comprimento do segredo
2
Comprimento do texto de cobertura
11

Caracteres de largura zero são pontos de código Unicode que não ocupam largura visível, de modo que leitores comuns não os notam enquanto analisadores e copiar e colar ainda transportam os bytes. Este codificador de caracteres de largura zero transforma uma string secreta UTF-8 em um fluxo de símbolos U+200B e U+200C enquadrado por marcadores U+200D e U+FEFF, e insere essa carga invisível no texto de capa após o primeiro caractere. A decodificação procura o mesmo quadro, reconstrói bits em bytes e devolve o segredo original. A ferramenta não é criptografia: quem conhece o esquema pode extrair a carga, portanto use-a como apoio didático, marca d'água leve ou camada de demonstração, não como fronteira de sigilo.

Como a codificação em bits de largura zero esconde um segredo à vista

O texto de capa visível permanece legível porque a carga usa apenas caracteres de formato com avanço de largura zero. O codificador primeiro converte o segredo em bytes UTF-8 e percorre cada bit do mais significativo ao menos significativo dentro de cada byte. O bit zero vira U+200B (ZERO WIDTH SPACE) e o bit um vira U+200C (ZERO WIDTH NON-JOINER).

Um marcador de início U+200D e um de fim U+FEFF envolvem esse fluxo de bits para que a decodificação ignore outros caracteres invisíveis irrelevantes no documento e ainda recupere uma carga bem definida. Como cada passo é aritmética pura de strings e bytes, o mesmo segredo e a mesma capa produzem sempre o mesmo texto esteganográfico em qualquer runtime.

Esse contrato alinha-se às explicações de sala de aula sobre esteganografia sem fingir que o canal é confidencial: ocultar com largura zero trata de invisibilidade na interface, não de resistência a um leitor motivado que inspeciona pontos de código.

Onde um codificador de largura zero se paga em produtos e ensino

Workshops de segurança e privacidade usam um codificador de caracteres de largura zero para que aprendizes colem texto esteganográfico em um chat ou documento, confirmem que a mensagem ainda parece limpa e depois a decodifiquem em um segundo passo vendo o mapa de bits no campo formula. Como a implementação é parse puro, sem tokens de modelo e sem rede de saída, a latência permanece no piso analítico e o custo fica previsível.

Prefira esta ferramenta quando a tarefa for ocultar e revelar com caracteres de formato Unicode; escolha bibliotecas criptográficas reais quando a confidencialidade sob ataque for o requisito. Documente para os usuários finais que algumas plataformas normalizam ou removem caracteres de largura zero no envio, por isso sempre faça ida e volta com decode após o canal real que importa para você.

Demos de esteganografia em sala de aula

Mostre aos alunos como bits Unicode invisíveis escondem um segredo curto dentro de frases de capa comuns e depois revele-o com decode no mesmo módulo determinístico.

Marcas d'água contra vazamento de rascunhos

Incorpore um id de equipe ou de ticket como bits de largura zero em textos de marketing de amostra para atribuir colagens vazadas sem alterar o layout visível.

Como revelo uma mensagem oculta?

Chame com mode decode e passe a string esteganográfica como text.

Quais caracteres Unicode são usados?

O bit 0 é U+200B, o bit 1 é U+200C, o marcador de início é U+200D e o de fim é U+FEFF.

Isto é criptografia?

Não. A codificação de largura zero apenas esconde bits de leitores casuais. Quem conhece o esquema — ou inspeciona pontos de código — pode recuperar a carga. Use criptografia quando precisar de confidencialidade.

Como escondo uma mensagem em um texto?

Digite o segredo e o texto visível que servirá de capa. O segredo vira bits invisíveis, delimitados por uma marca de início e outra de fim, e é inserido logo depois do primeiro caractere da capa, que continua sendo lido do mesmo jeito.

A mensagem escondida sobrevive a copiar e colar?

Normalmente sim, porque os caracteres invisíveis viajam com o texto. Alguns aplicativos normalizam ou removem caracteres de largura zero no envio, então, depois de passar o texto pelo canal que importa, decodifique uma vez para conferir se o segredo continua lá.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/enc/zero-width

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/enc/zero-width \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"encode","op":"encode"}'
{
  "mode": "encode",
  "op": "encode"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.zero_width",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Marcadores inválidos, grupos de bits incompletos ou campos ausentes falham com invalid_input e não são cobrados.

Como a codificação em bits de largura zero esconde um segredo à vista

A decodificação inverte o caminho: localiza o primeiro marcador de início, o próximo de fim, aceita apenas U+200B e U+200C entre eles, exige que a contagem de bits seja múltiplo de oito, reagrupa bytes e decodifica UTF-8 com decodificador fatal para que fluxos corrompidos apareçam como invalid_input em vez de texto ilegível.

Contrato de entrada, modos, formato da resposta e erros

Envie mode encode ou decode. Encode exige secret não vazio (aliases message ou payload, máximo 4096 caracteres) e texto de capa não vazio (também aceito como text, input, value ou data, máximo 100000 caracteres). Decode exige text não vazio contendo uma carga enquadrada (aliases cover, input, value, data ou stego, máximo 200000 caracteres). Aliases de mode incluem hide e embed para encode, e reveal ou extract para decode; o padrão é encode quando mode é omitido. Em encode bem-sucedido o corpo inclui result (string esteganográfica), mode, encoding zero_width, secret_length, cover_length, result_length, byte_count, bit_count, zero_width_count, formula e uma mensagem curta resumindo quantos bytes UTF-8 foram ocultados. Em decode bem-sucedido o corpo inclui result e secret (a string revelada), mode, encoding, comprimentos, contagens de bits e bytes, zero_width_count, formula e uma mensagem de revelação. Campos ausentes, strings vazias, mode desconhecido, marcadores de início ou fim ausentes, caracteres que não são bits dentro do quadro, marcadores aninhados, comprimento de bits que não é múltiplo de oito ou UTF-8 inválido após montar os bits lançam invalid_input com mensagem clara em inglês. Essas falhas não consomem saldo pré-pago. Mantenha cargas modestas em widgets e fixe strings result nos testes: caracteres de largura zero são Unicode de verdade, então exemplos JSON devem preservá-los exatamente.

Onde um codificador de largura zero se paga em produtos e ensino

Equipes de QA injetam marcas d'água invisíveis em textos de marketing de amostra para detectar quando rascunhos vazam por caminhos de colagem não controlados; uma chamada API determinística a US$ 0,002 por item bem-sucedido é mais barata do que levantar um Worker sob medida para um script pontual.

Checagens de CI em pipelines de colagem

Codifique um segredo conhecido em fixtures, envie-os pelo editor ou integração de chat e decodifique para verificar se os caracteres de largura zero sobreviveram ao caminho.

Como oculto um segredo com caracteres de largura zero?

Chame com mode encode (ou omita mode), envie secret e cover não vazios. A API devolve texto esteganográfico com um quadro U+200D…U+FEFF de bits U+200B/U+200C inserido após o primeiro caractere da capa.

Quanto custa o codificador de caracteres de largura zero?

A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.

Ver a documentação completa do KIT →