Injetor de marca d'água de código
Injete marcas d'água exclusivas em seu código-fonte para rastrear propriedade, rastrear vazamentos e comprovar autoria. Cada cópia recebe uma assinatura estrutural exclusiva com base no ID do destinatário – tudo gratuito, privado e sem necessidade de inscrição.
Inject unique watermarks into your source code to track ownership and trace leaks. Each watermarking technique produces functionally identical code with a unique structural signature tied to a recipient ID.
Watermarking Techniques
Paste your source code above, set a recipient ID, and click Apply Watermark to inject unique structural watermarks.
Each recipient gets code with a unique combination of declaration ordering, comment markers, variable name suffixes, and property ordering.
Privacy Guarantee
All watermark injection runs entirely in your browser. Your code and recipient IDs never leave your device — no uploads, no API calls, no tracking.
- Impressão digital de código exclusivo: cada cópia com marca d'água recebe uma assinatura estrutural exclusiva com base no ID do destinatário. O mesmo código-fonte com marca d’água para destinatários diferentes produz código funcionalmente idêntico com ordenação de declaração, nomes de variáveis e marcadores de comentários distintos.
- Reordenação de declarações: Embaralhe deterministicamente declarações de funções, declarações de variáveis, métodos de classe e instruções de importação usando um algoritmo baseado em sementes. Cada destinatário recebe uma ordem de declaração exclusiva que preserva toda a semântica do código.
- Nomes específicos do destinatário: anexe um sufixo baseado no destinatário aos nomes de variáveis, funções e classes. O sufixo é derivado do ID do destinatário, tornando as cópias com marca d'água rastreáveis até sua origem por meio da inspeção do identificador.
- Injeção furtiva de comentários: injete marcadores de comentários exclusivos com IDs de destinatários, carimbos de data e hora e somas de verificação de hash em posições estratégicas em todo o código. Vários estilos de comentários são usados para evitar a detecção por ferramentas automatizadas de remoção.
O que é marca d'água de código?
A marca d'água do código incorpora identificadores exclusivos e invisíveis no código-fonte sem alterar seu comportamento. Ao contrário da criptografia ou ofuscação, que visam ocultar o código, a marca d’água visa tornar cada cópia distribuída identificável de forma única. As técnicas incluem reordenar declarações, inserir comentários exclusivos, renomear variáveis com sufixos específicos do destinatário e aplicar padrões determinísticos de espaços em branco.
Como funciona o embaralhamento determinístico?
A ferramenta usa um algoritmo de embaralhamento determinístico baseado em sementes. O valor inicial combinado com o ID do destinatário produz uma ordem de declarações previsível, mas exclusiva. Isso significa que o mesmo ID do destinatário sempre produz a mesma marca d'água, tornando a verificação consistente. IDs de destinatários diferentes produzem ordenações diferentes, permitindo que cada cópia distribuída seja identificada de forma exclusiva.
As cópias com marca d’água são detectáveis?
O código com marca d'água é funcionalmente idêntico ao original. As mudanças são estruturais – ordem de declaração, nomes de variáveis, presença de comentários e ordenação de propriedades. Uma ferramenta automatizada poderia potencialmente detectar diferenças comparando duas cópias, mas sem acesso ao original ou a outra cópia com marca d'água, a marca d'água fica invisível à inspeção casual.
Combinando com outras proteções
A marca d'água funciona bem junto com outras técnicas de proteção. Você pode ofuscar o código após a marca d’água para proteger a lógica, mas esteja ciente de que a minificação e a renomeação de variáveis podem obscurecer alguns indicadores de marca d’água. Para obter melhores resultados, mantenha um mapeamento das cópias originais com marca d'água junto com quaisquer versões de distribuição ofuscadas.
Perguntas frequentes
A marca d'água do código incorpora identificadores exclusivos no código-fonte sem alterar sua funcionalidade. Cada cópia com marca d’água carrega uma assinatura estrutural exclusiva – ordem de declaração, nomes de variáveis e marcadores de comentários – que pode ser rastreada até o destinatário.
A ferramenta usa um algoritmo de embaralhamento determinístico baseado em sementes. A semente e o ID do destinatário juntos produzem uma ordem previsível de declarações de função, declarações de variáveis e métodos de classe. O mesmo ID de destinatário sempre produz a mesma marca d’água.
Sim. A marca d’água altera apenas aspectos estruturais – ordem de declaração, nomes de variáveis, comentários e espaços em branco. A lógica e o comportamento permanecem idênticos. JavaScript e CSS são resilientes a essas mudanças estruturais.
As marcas d'água são invisíveis durante o uso normal. Os minificadores podem retirar sufixos de nomes de variáveis e comentários, mas a reordenação de declarações é mais resiliente. Para máxima rastreabilidade, use diversas técnicas juntas.
O ID do destinatário gera padrões exclusivos de marca d’água. IDs diferentes produzem ordenações de declaração, sufixos de nomes de variáveis, marcadores de comentários e padrões de espaços em branco diferentes. Quando ocorre um vazamento, o destinatário pode ser identificado analisando o código da marca d'água.
A marca d'água é melhor aplicada ao código-fonte legível antes da minificação. Se você ofuscar após a marca d'água, os nomes das variáveis e os comentários poderão ser removidos. A reordenação de declarações é mais resiliente e pode sobreviver à minificação básica.
Sim. A ferramenta suporta marca d’água CSS por meio de reordenação de propriedades – as declarações de regras CSS são classificadas em ordem alfabética de forma diferente por destinatário. Marcadores de comentários e padrões de espaços em branco também podem ser aplicados.
Sim – 100% seguro. Toda a injeção de marca d'água é executada inteiramente no seu navegador. Seu código-fonte e IDs de destinatário nunca saem do seu dispositivo e nunca são carregados em nenhum servidor.