Вопрос о шифровании

Версия Minecraft
1.7.10

deleted.user

Мошенник
321
43
Всем привет. Поискал немного информации о шифровании на Java, стало интересно попробовать это с простым любым модом. Тут, как я понимаю, нужно сначала зашифровать и сделать второй мод, который будет дешифровывать те же ресурсы хотя бы или сам архив с модом. Кто что может подсказать на данную тему? На данный момент интересует вопрос о предварительном шифровании ассетов, дабы потом уже в процессе загрузки мода они дешифрованные хранились в памяти, или как правильнее тут, не знаю. Очень нуждаюсь в совете знающих людей, спасибо!
 

timaxa007

Модератор
5,831
409
672
Типа изучай HEX кодировку и сохраняй под свой стиль (на подобии как у NBT). Лень разбираться в подобном, тогда используй нестандартную кодировку архивации и с помощью кода, который как-бы распаковывает твой архив, только не виде файла, а виде кода для другого кода (типа распаковываешь картинку и сразу её биндищь).
Примера подобного использование того (HEX код) и того (архивация) у меня пока-что нет.
 
Последнее редактирование:
1,111
47
420
Можно вообще до жути простой способ попробовать: через ксор.
Объясняю как это работает:
У нас есть некий ключ. Ключ это абсолютно любое целое не отрицательное число.
Шифрование/расшифровка: На вход нам подается массив изначальных/зашифрованных байтов любой длины. Все они по-порядку ксорятся ключом и на выходе мы получаем массив зашифрованных/расшифрованных байтов.
Пример:
Допустим у меня есть массив {34, 98, 78, 64. 87}(1) и ключ {94, 52}. Тогда выходной массив будет {34^94, 98^52, 78^94, 64^52, 87^94}. Важно понимать что знак '^' в Java обозначает операцию побитового сложения xor. В результате получаем {124, 86, 16, 116, 9}(2). В силу особенностей побитового сложения когда мы проделаем ту же операцию над массивом 2 мы вновь получим массив 1.

У этого способа есть свои недостатки но мне лень о них рассказывать. Почитай лучше вот тут.
 
2,932
44
598
//Оффтоп (Сунул нос не в своё дело)
Эх... Зачем вам эта шифровка? У вас какой-то проект гос. важности? Или вы из за конкуренции хотите скрыть исходники?
Вообще самая лучшая защита исходников это их публичность/открытость.
 
3,005
192
592

deleted.user

Мошенник
321
43
Проект хоть и опенсорсный будет, но есть его части, которые надо скрыть от юзверей. Опять же, как уже было сказано выше
от норм юзера не поможет.
НО, от детей опять же, надо скрыть. Кто что может еще сказать на этот счет? Тема правда важная в этом плане.
Естественно решение будет так же доступно (ну или нет, если это важно ребятам по умнее :В )
 
1,111
47
420
Была у меня такая идея, но как показала практика это пустая трата времени) Человек знающий вообще наплюет на твои шифры а от не знающего и простое шифрование, с ключом на клиенте, поможет) Лучший способ это делить на клиент/сервер ну и обфусцировать до кучи))
 
2,932
44
598
Не, я всё конечно понимаю! Там конкуренция... Не хотите что бы у вас "пьягиатили" и всё такое.
Но вопрос в том стоит ли это того? (Если честно то по моему овчинка выделки не стоит)
Я про то что эта шифровка ну по любому как-то сказаться на игре.
 
1,990
18
105
Кто бы как ни хаял защиту на клиенте, но с разумной долей и она очень полезна. Шифрование или собственный формат ассетсов неплохо отсрочивают их использование в каждом втором подражающем проекте, при том, что зачастую это стоит не очень много человекочасов.

Защита же клиента и кода стоит выделки, чтобы увеличить порог вхождения для создателей и\или распространителей читов, ну и если её разработка не несет серьезные потери производительности\стабильности и времени на создание.
 
Сверху