Инжектор водяных знаков кода
Добавляйте уникальные водяные знаки в исходный код, чтобы отслеживать право собственности, отслеживать утечки и доказывать авторство. Каждая копия получает уникальную структурную подпись на основе идентификатора получателя — все это бесплатно, конфиденциально и без регистрации.
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.
- Уникальный отпечаток кода: каждая копия с водяными знаками получает уникальную структурную подпись на основе идентификатора получателя. Один и тот же исходный код с водяными знаками для разных получателей создает функционально идентичный код с различным порядком объявлений, именами переменных и маркерами комментариев.
- Изменение порядка объявлений: детерминированное перемешивание объявлений функций, объявлений переменных, методов классов и операторов импорта с использованием алгоритма на основе начального числа. Каждый получатель получает уникальный порядок объявления, сохраняющий всю семантику кода.
- Имена, специфичные для получателя: добавьте суффикс на основе получателя к именам переменных, функций и классов. Суффикс получается из идентификатора получателя, что позволяет отследить копии с водяными знаками до их источника посредством проверки идентификатора.
- Скрытое внедрение комментариев. Встраивайте уникальные маркеры комментариев с идентификаторами получателей, временными метками и контрольными суммами хэшей в стратегически важные позиции по всему коду. Чтобы избежать обнаружения автоматическими инструментами удаления, используются несколько стилей комментариев.
Что такое водяные знаки кода?
Водяные знаки кода встраивают уникальные невидимые идентификаторы в исходный код без изменения его поведения. В отличие от шифрования или обфускации, целью которых является сокрытие кода, цель водяных знаков — сделать каждую распространяемую копию уникально идентифицируемой. Методы включают изменение порядка объявлений, вставку уникальных комментариев, переименование переменных с суффиксами, специфичными для получателя, и применение детерминированных шаблонов пробелов.
Как работает детерминированная перетасовка?
Инструмент использует детерминированный алгоритм перемешивания на основе начального числа. Начальное значение в сочетании с идентификатором получателя обеспечивает предсказуемый, но уникальный порядок объявлений. Это означает, что один и тот же идентификатор получателя всегда создает один и тот же водяной знак, что обеспечивает единообразие проверки. Различные идентификаторы получателей создают разный порядок, что позволяет однозначно идентифицировать каждую распространяемую копию.
Можно ли обнаружить копии с водяными знаками?
Код с водяными знаками функционально идентичен оригиналу. Изменения структурные — порядок объявления, имена переменных, наличие комментариев и порядок свойств. Автоматизированный инструмент потенциально может обнаружить различия путем сравнения двух копий, но без доступа к оригиналу или другой копии с водяным знаком водяной знак невидим для случайного просмотра.
Сочетание с другими средствами защиты
Водяные знаки хорошо работают вместе с другими методами защиты. Вы можете запутать код после нанесения водяных знаков, чтобы защитить логику, но имейте в виду, что минимизация и переименование переменных могут скрыть некоторые индикаторы водяных знаков. Для достижения наилучших результатов сохраняйте сопоставление оригинальных копий с водяными знаками рядом со всеми запутанными версиями распространения.
Часто задаваемые вопросы
Водяные знаки кода встраивают уникальные идентификаторы в исходный код без изменения его функциональности. Каждая копия с водяными знаками имеет уникальную структурную подпись — порядок объявления, имена переменных и маркеры комментариев — которые можно отследить до получателя.
Инструмент использует детерминированный алгоритм перемешивания на основе начального числа. Начальное значение и идентификатор получателя вместе создают предсказуемый порядок объявлений функций, объявлений переменных и методов класса. Один и тот же идентификатор получателя всегда создает один и тот же водяной знак.
Да. Использование водяных знаков меняет только структурные аспекты — порядок объявления, имена переменных, комментарии и пробелы. Логика и поведение остаются идентичными. JavaScript и CSS устойчивы к этим структурным изменениям.
Водяные знаки невидимы при обычном использовании. Минификаторы могут удалять суффиксы имен переменных и комментарии, но изменение порядка объявлений более устойчиво. Для максимальной отслеживаемости используйте несколько методов вместе.
Идентификатор получателя генерирует уникальные шаблоны водяных знаков. Различные идентификаторы создают разный порядок объявлений, суффиксы имен переменных, маркеры комментариев и шаблоны пробелов. В случае утечки получателя можно определить, проанализировав код с водяным знаком.
Водяные знаки лучше всего применять к читаемому исходному коду перед минификацией. Если вы запутаете текст после водяных знаков, имена переменных и комментарии могут быть удалены. Изменение порядка объявлений более устойчиво и может пережить базовую минификацию.
Да. Инструмент поддерживает водяные знаки CSS посредством изменения порядка свойств — объявления правил CSS сортируются по-разному в алфавитном порядке для каждого получателя. Также можно применять маркеры комментариев и шаблоны пробелов.
Да, 100% безопасно. Все инъекции водяных знаков выполняются полностью в вашем браузере. Ваш исходный код и идентификаторы получателей никогда не покидают ваше устройство и никогда не загружаются на какой-либо сервер.