На прошлой неделе мне пришлось создать небольшой графический интерфейс для домашнего задания. Никто из моих одноклассников этого не сделал. Они украли мой, откуда мы должны были его загрузить, а затем снова загрузили как свой. Когда я сказал своему учителю, что это все моя работа, он мне не поверил.
Итак, я подумал о том, чтобы поместить внутрь бесполезный метод или что-то еще с доказательством того, что я его закодировал. Я подумал о шифровании. Моя лучшая идея до сих пор:
String key = ("ZGV2ZWxvcGVkIGJ5IFdhckdvZE5U"); //My proof in base64
Можете ли вы придумать другие способы лучше?
encryption
WarGodNT
источник
источник
Ответы:
У меня была такая же проблема, как и у вас, давным-давно. У нас были машины с Windows 2000, и мы загружали файлы в сетевую папку Novel, которую могли видеть все. Я использовал несколько уловок, чтобы победить даже лучших воров: водяные знаки в виде пробелов; водяные знаки метаданных; необычные персонажи; доверенная метка времени; modus operandi. Вот они по порядку.
Водяные знаки пробела:
Это мой оригинальный вклад в создание водяных знаков. Мне нужен был невидимый водяной знак, который работал бы в текстовых файлах. Уловка, которую я придумал, заключалась в том, чтобы вставить определенный образец пробелов между операторами программирования (или абзацами). Файл для них выглядел одинаково: некоторые программные инструкции и разрывы строк. Тщательный выбор текста приведет к появлению пробелов. Каждая пустая строка будет содержать определенное количество пробелов, которые, очевидно, не являются случайными или случайными. (например, 17) На практике этот метод работал за меня, потому что они не могли понять, что я вставлял в документы.
Водяные знаки метаданных
Здесь вы меняете метаданные файла, чтобы они содержали информацию. Вы можете встроить свое имя, хэш и т.д. в невидимые части файла, особенно в EXE. В дни NT были популярны альтернативные потоки данных.
Необычные персонажи
Я брошу это просто ради удовольствия. Старый трюк с олицетворением IRC заключался в том, чтобы создать имя из букв, похожих на имя другого человека. Вы можете использовать это в водяных знаках. Карта символов в Windows предоставит вам множество необычных символов, которые похожи, но не являются буквой или цифрой, которые вы можете использовать в исходном коде. Их появление в определенном месте на чужой работе не может быть случайным.
Надежная отметка времени
Вкратце, вы отправляете файл (или его хэш) третьей стороне, которая затем добавляет к нему временную метку и подписывает ее закрытым ключом. Любой, кто хочет подтвердить, когда вы создали документ, может обратиться к доверенной третьей стороне, часто на веб-сайт, для проверки вашего доказательства времени создания. Они использовались в судебных делах по спорам об интеллектуальной собственности, поэтому являются очень сильным доказательством. Это стандартный способ получить доказательство, которое вы ищете. (Сначала я включил другие, потому что они легкие, они веселее и, вероятно, будут работать.)
Эта статья в Википедии может помочь вашему инструктору понять ваши доказательства, а в разделе внешних ссылок есть много поставщиков, в том числе бесплатных. Я бы пропустил тестовые файлы через бесплатные в течение нескольких дней, прежде чем использовать их для чего-то важного.
Порядок работы
Итак, вы что-то сделали, и теперь у вас есть доказательства, верно? Нет, студенты все равно могут сказать, что вы украли у них идею, или еще какую-то чушь. Мое решение этой проблемы заключалось в том, чтобы в частном порядке разработать один или несколько моих методов с моим инструктором. Я говорю инструктору искать пробелы, искать определенные символы и т. Д., Но никогда не сообщать другим, что это был за водяной знак. Если инструктор согласится сохранить ваши простые техники в секрете, они, вероятно, продолжат работать нормально. Если нет, всегда есть надежная метка времени. ;)
источник
Если ваши одноклассники украли ваш код с сайта загрузки, я зашифрую вашу домашнюю работу и отправлю ключ учителю по электронной почте. Вы можете сделать это с помощью PGP, если хотите усложнить ситуацию, или чего-то столь же простого, как Zip-файл с паролем.
РЕДАКТИРОВАТЬ: PGP позволит вам зашифровать / подписать, не раскрывая ваш ключ, но вы не можете превзойти простоту Zip-файла с паролем, поэтому просто выбирайте новый ключ при каждом домашнем задании. Красота в простоте :)
источник
Если вы передаете исходный код учителю, просто добавьте
serialVersionUID
в один из файлов вашего класса зашифрованную версию вашего имени. Вы можете сами расшифровать его учителю.Это ничего не значит для других, только для вас. Вы можете сказать, что это сгенерированный код, если они его воруют, вероятно, вообще не потрудятся изменить.
Если вы хотите сделать это стильно, вы можете использовать этот трюк , если найдете случайное семя, которое производит ваше имя. :) Тогда это будет ваш номер , и где бы он ни появился, это будет доказывать, что это вы сделали этот код.
источник
//written by WarGodNT
на//Written by ImaCheata
.) Также маловероятно, что многие из них даже знают, что svUID может их сломать. Даже если некоторые из них настолько умны; если большая часть класса жульничает, некоторые почти наверняка будут пойманы. Как минимум, этого должно быть достаточно, чтобы убедить учителя отключить свой процесс.Это случилось с парой моих студентов, которые жили в одной квартире. Один украл исходный код с диска, оставленного в ящике стола.
Похититель немного модифицировал украденный источник, чтобы это было неочевидно. Я все равно заметил схожесть кода и просмотрел исходник в редакторе. На концах некоторых строк были лишние пробелы. В источнике каждого студента было одинаковое количество дополнительных пробелов.
Вы можете использовать это для кодирования информации, не делая ее видимой. Вы можете закодировать свои инициалы или студенческий билет в конце некоторых строк с пробелами.
Вор, скорее всего, внесет косметические изменения в видимый код, но может пропустить невидимые символы.
РЕДАКТИРОВАТЬ:
Подумав об этом еще немного, вы можете использовать пробелы и табуляции в качестве точек и точек кода Морзе и поставить свое имя в конце нескольких строк. Вор может удалить, переупорядочить или перепечатать некоторые строки, не уничтожая вашу идентификацию.
РЕДАКТИРОВАТЬ 2:
«Стеганография пустого пространства» - это термин для сокрытия сообщений в пустом пространстве. Поиск в Google показывает, что эта реализация с открытым исходным кодом, относящаяся к 90-м годам, использует кодировку Хаффмана вместо кода Морзе.
источник
Мне это кажется проблемой ИТ-администрирования. У каждого студента должна быть собственная область загрузки, к которой другие студенты не смогут получить доступ.
Учитель будет на более высоком уровне и сможет получить доступ к папке загрузки каждого ученика. Если это невозможно, используйте @exabrial ответ, поскольку это самое простое решение.
источник
Лучшее, что вы можете сделать, - это просто заархивировать исходный код с паролем и отправить его учителю по электронной почте.
Задача решена.
источник
Используйте распределенную (= автономную) систему контроля версий , например git . Тоже может пригодиться.
История версий с вашим именем и датами может быть достаточно убедительной.
источник
git filter-branch
был создан для подобных безумных вещей, это должно быть непростоЧто было украдено?
Источник ? Вы можете помещать в него случайные строки (но это можно изменить). Вы также можете попробовать добавить особое поведение, известное только вам (специальное нажатие клавиши изменит цветовую строку), затем вы можете спросить учителя: «Другие знают эту особую комбинацию?». Лучшим способом будет сбой программы, если через 5 минут активности в архиве не окажется пустого, бесполезного файла, ваши одноклассники будут слишком ленивы ждать это количество времени.
Бинарный? Достаточно просто сравнить контрольную сумму каждого .class (ваши одноклассники слишком ленивы, чтобы переписывать файлы классов)
источник
Просто опубликуйте свое решение в последнюю минуту. Это не даст никому времени скопировать его.
И отправьте отзыв администратору, чтобы запретить учащимся просматривать задания других учащихся.
источник
Если вы загрузите файл в формате .zip с шифрованием пароля, любой может просто взломать пароль, загрузив файл .zip, и заставить свой процессор выполнить миллион запросов к нему, если они настолько большие воры-читы. К сожалению, некоторые из них есть, и это легко сделать.
Ваш источник могут просматривать другие студенты на общем сервере. Учитель действительно должен дать вам ваш собственный зашифрованный паролем каталог для загрузки. Это можно легко сделать, просто добавив поддомены. Но, возможно, учитель может позволить вам загрузить файлы на ваш собственный сервер, чтобы он мог получить к ним доступ.
Также возможно запутать сценарий, чтобы в нем был документ document.write («Эта страница была написана xxxxx»), заставляя всех, кто копирует вашу работу, не иметь возможности удалить кредит, если они сначала не расшифруют ее. Но настоящий ответ заключается в том, что ваша школа должна предоставить каждому из своих учеников свои собственные каталоги, защищенные паролем.
источник
В моем случае мои учителя предложили лучший подход. Заданные ими вопросы как-то связаны с нашим регистрационным номером. Пример:
Таким образом, ответы или подход к решению проблемы у каждого студента относительно различаются. Это заставляет всех студентов обязательно делать домашнее задание самостоятельно или, по крайней мере, знать, как взломать подход с помощью собственной регистрации [it может быть труднее, чем выучить урок;)].
источник