Как сгенирировать ключ который будет действителен в определенный промежок времени?
Есть приложение (мобильное без серверное части), есть желание создать систему промокодов, т.е. пользователь получает промокод и активирует платные функции бесплатно, но нужно чтобы промокод был действителен лишь в определенный период времени, причем период этого времени должен быть зашифрован в самом промокоде, соотвественно должна быть процедура дешифровки.
Решением в лоб было бы завести сервер для приложения и при вводе проверять дейтсвителен ли промокод на данный момент, но интересно можно было бы сделать это все локально.
Какие есть идеи? Криптография как-то забылась с универских времен.
Можно использовать какую-нибудь симметричную систему шифрования. То есть, шифровать время действительности промо-кода закрытым ключом. Добавлять вместе с этим туда какой-нибудь "мусор", чтобы запутать все. Однако, вырисовывается проблема, есть возможность того, что этот ключ и алгоритм дешифровки кто-то сможет подсмотреть в исходном коде программы и создавать свои собственные промо-коды.