Enemy1PK, если ты подпишешь код хеш-функцией даже без ника игрока, то при изменении кода и его загрузке подпись будет невалидна.
Можно и I2S(StringHash(...)) юзать, только её легко выполнить не вдаваясь в технические подробности твоей карты, я бы замаскировал хотябы под свой алфавит.
При сохранении:
"конечный код" = сейв код + подпись (хеш-функция от этого кода + соль, можно без соли) Пример: savecode + ":" + I2S(StringHash(savecode + username + map_brand_name + ещё любая привязка))
отдаёшь конечный код юзеру
При загрузке:
"конечный код" = получаешь его у юзера Пример: "abcd:efgh"
"сейв-код" = подстрока от конечного кода Пример: "abcd"
"фактическая подпись" = подстрока от конечного кода Пример: "efgh"
"ожидаемая подпись" = хеш-функция от сейв-кода Пример: I2S(StringHash("abcd" + username + map_brand_name + ещё любая привязка))
если "ожидаемая подпись" не равно "фактическая подпись", то сейв-код не валиден
Самым простым будет сделать цифровую подпись (хеш-функцией от кода с солью имени игрока, например) и добавить в конец кода.
Тогда для любого другого имени этот код будет невалиден, а при изменении любой единицы данных хеш-код будет меняться в зависимости от энтропии хеш-функции.
Она выглядит бедной даже по сравнению с любой картой из кампании TFT, это примерно уровень Reign Of Chaos, только без пасхалок, сторонних квестов и хоть каких-то ролей второго плана. Ты делал это 4 часа, а потом неделю правил баланс? Я не верю в такое)
Я ещё раз говорю, ни на что не влияю, чисто моё мнение
Lord_Teo, У тебя есть офигенный остров на конкурс ланда, офигенный герой на конкурс героя и вот этот щидевр...
Скажи честно, сколько ты времени на него потратил?
» XGM Конкурсы / Конкурс становления героев
Ред. ScorpioT1000
» IrInA Host Bot / Почему при запуске файла irina_connector_v5 удаляеться
Ред. ScorpioT1000
» WarCraft 3 / Разнообразие save/load кода
Можно и I2S(StringHash(...)) юзать, только её легко выполнить не вдаваясь в технические подробности твоей карты, я бы замаскировал хотябы под свой алфавит.
"конечный код" = сейв код + подпись (хеш-функция от этого кода + соль, можно без соли)
Пример: savecode + ":" + I2S(StringHash(savecode + username + map_brand_name + ещё любая привязка))
отдаёшь конечный код юзеру
"конечный код" = получаешь его у юзера
Пример: "abcd:efgh"
"сейв-код" = подстрока от конечного кода
Пример: "abcd"
"фактическая подпись" = подстрока от конечного кода
Пример: "efgh"
"ожидаемая подпись" = хеш-функция от сейв-кода
Пример: I2S(StringHash("abcd" + username + map_brand_name + ещё любая привязка))
Ред. ScorpioT1000
» WarCraft 3 / Разнообразие save/load кода
Тогда для любого другого имени этот код будет невалиден, а при изменении любой единицы данных хеш-код будет меняться в зависимости от энтропии хеш-функции.
» WarCraft 3 / [Конкурс становления героев] Аскадия: Наемник
» WarCraft 3 / [Конкурс становления героев] Алегрит
Ред. ScorpioT1000
» Администрация XGM / Отображать все ресурсы и комментарии пользователя
Ред. ScorpioT1000
» Администрация XGM / Подтверждение голоса в опросах
» WarCraft 3 / Какая версия варкрафта сейчас актуальна?
Ред. ScorpioT1000
» WarCraft 3 / Возрождение героя на Jass'е
» WarCraft 3 / Возрождение героя на Jass'е
» WarCraft 3 / Как в Вове на русском называется Brandicenere Corrotta?
» Прочее / Windows 11 – Discussion
Ред. ScorpioT1000
» Прочее / Криптовалюта, BTC и трейдинг
» Администрация XGM / Непрочитанные комменты
» Прочее / Windows 11 – Discussion
» Прочее / Windows 11 – Discussion
Ред. ScorpioT1000
» Администрация XGM / Сломаны оповещения новых комметов
» Администрация XGM / Меню проекта - это боль
Ред. ScorpioT1000
» XGM Конкурсы / Конкурс становления героев
Ред. ScorpioT1000
» XGM Конкурсы / Конкурс становления героев
» Прочее / Windows 11 – Discussion
Ред. ScorpioT1000
» XGM Конкурсы / Конкурс становления героев
Скажи честно, сколько ты времени на него потратил?
» XGM Конкурсы / Конкурс становления героев
» WarCraft 3 / Как в Вове на русском называется Southshore?