Недавно возникла необходимость защитить сохранения игроков во избежание накрутки рекордов и игровой валюты. Прошерстив форумы в интернете, я нашел либо платные плагины (хоть цена и была невысокой, внутренний жлоб требовал продолжать поиски), либо «тяжелые» способы защиты — сохранения приходилось часто сверять, из-за этого во время сверки были заметны «тормоза» на компьютере и, уж тем более, на телефоне.
Почитав пару статеек о способах шифрования и испробовав еще столько же в игре, я подумал, что неплохим вариантом является DES Encryption. Сказано — сделано. В итоге сохранения в памяти решил представить следующим образом:
key: md5(key)
value: encrypt(value)
Где в подсчете хэша участвует секретный код, устанавливаемый разработчиком и уникальный идентификатор устройства (на случай переноса сохранений из другого), а значение шифруется через алгоритм DES.
Читать полностью »