cHAm
Бывший модмейкер
offline
Опыт:
4,451Активность: |
Небольшой PvP
Народ! Создаю я одну мапу. На ней можно прокачиваться до 450(!) уровня. Естественно за один прием прокачаться могут не многие, поэтому я разработал небольшую PvP систему. По команде "-save" игрок получает пасс. В этом пассе в зашифрованном виде содержится уровень, золото и степень прокачки абилок. Я хочу еще добавить айтемки, но 1 айтем в среднем занимает 12 символов, то есть пароль раздуется до безобразия. Можете подсказать, как сгенить пасс, содержащий 6 айтемов, чтобы он не был громоздким и его трудно было бы поломать? З.Ы. Сейчас пасс содежит 5 частей, по 5-6 символов в каждой. |
25.04.2005, 12:49 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
это точно, закриптованный пасс состоит из 25-30 символов - это фсе - деньги, ламбер, аттрибуты и инвентарь, правда прокачку скиллов я пока туда не вставлял - то есть при загрузке мапы все скиллы будут скинуты в 0 и выданы скиллл пойнты. Туда же входит случайные числа и проверки подлинности.
NETRAT добавил: прадва эта фича будет гораздо лучше работать с использованием жасса левел - 2б аттрибуты - 2б * 3 = 6б вещи - 1б * 6 = 6б ресурсы - 2б + 2б = 4б распределение скиллов - по 2б на скилл, 2б * 4 = 8б вот и получаем 24б, схема общая, не адаптированная и не оптимизированная, поэтому возможно это займет меньше места. Плюс сюда еще байтов 6 отведем для проверок - контрольная сумма, троссировка, получаем 30 байт значит 6 наборов по 5 символов - вполне приемлемая схема, обычно используют от 20 до 30 символов в коде. Вот и все - достаточно просто :) Один айтем не может занимать 12 символов - плохо продумал, в-общем если чего непонятно - пиши, могу схему написать и показать |
25.04.2005, 15:43 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
cHAm
Бывший модмейкер
offline
Опыт:
4,451Активность: |
Тэк-с ответов меньше, чем хотелось бы... Нетрат, обьясняю, как работает моя схема: 1 часть - первые 2 буквы имени игрока и код клана 2 часть - символ прокачки, длинна оставшейся строки и уровень*кол-во букв имени игрока 3 часть - длина строки и золото*кол-во букв. 4 часть - длина уровна 1 абилки, уровень 1 абилки, длина уровна 2 абилки, уровень 2 абилки 5 часть - тоже самое, но с тремя оставшиесемя абилками Вот... Твой пасс ООООООЧЕНЬ легко поломать и трудно интерплетировать. А айтем я собирался закриптовать так: 1 символ - длинна НОМЕРА айтема, 5-12 символов - НОМЕР айтема, 1 символ - кол-во зарядов. |
29.04.2005, 16:48 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
ну канешна если ты так все выложишь как есть, то сломать просто. Для этого есть масса алгоритмов и этим занимается предмет Криптография и защита данных, так что предложенный тобой вариант не самый надежный и тоже достаточно геморный. Никаких трудностей интерпретации не вижу. Что то я в варкрафте не видел такой схемы, которая трудно взламывается - элементарно берем депротектор, выковыриваем триггеры и все! Я так пару карт с кодами поломал и написал генератор кодов.
Интересно, как ты взломаешь троссировку если не знаешь алгоритма? Более того, есть алгоритмы, которые не имеют обратного хода - вырожденные, такими алгоритмами и кодируется файл паролей винды SAM, ну и что - много кто сломал его? Нафига ты ваще везде берешь длинну? ЧТо за длинны оставшейся строки - это не очень понимаю зачем. Первая часть - слишком длинный код клана - модно тоже 2 символа взять. Вторая часть нормуль за искл. длинны. Третья часть нормуль за искл. длинны. Четвертая часть так же. И пятая так же. А вот уж совсем непонятно почему айтем жрет 5-12 символов - что в игре будет более 350000000 айтемов? На номер айтема достаточно 1-2 символа и длинна не нужна. Ну вот первую часть можно смело кодировать вырожденным преобразованием - ведь мы потом сможем взять имя, код, закодить его этим преобразованием и сравнить с введенным игроком. То что ты описал я бы назвал rapid resource using. Отдача слишком мала - вводить с клавы 50 бессмысленных символов - это слишком! Я могу написать тестовую прожку, которая будет кодить входящие данные, мне интересно насколько быстро ты сможешь там распознать их :) В-опсчем тут два варианта - либо ты не совсем понимаешь о чем я, либо я не понимаю о чем ты... |
29.04.2005, 18:08 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
cHAm
Бывший модмейкер
offline
Опыт:
4,451Активность: |
Ну, е мое. Обьясняю подробнее: "Первая часть - слишком длинный код клана - модно тоже 2 символа взять." Че-то не понял... Код клана либо "da"(темный) либо "li"(светлый). Длинна для правильного интерплетирования. Т.е. Значение уроня героя может быть и 1 символ и 2 и 4. Чтобы не взять лишнего, я просто пишу, скока символов считать за уровень. Теперь про айтемы: например "I00H" выводится как номер "I" номер "0" номер "0" номер "H". А номер 1 буквы может занимать до 3 цифр. Ладно, я выложу енту карту, посмотришь.... |
03.05.2005, 14:46 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
Все нормальные люди используют алфавит из не менее 26+26+10+10=72 символа. В опсчем, наверное я нифика не понимаю, попробую подумать на досуге |
03.05.2005, 18:00 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|