Вы должны решить, сколько энергии вы хотите потратить. Если ваше приложение только работает на системе клиента (что означает: ему не требуется подключение к центральному серверу) ... тогда ваши варианты в значительной степени ограничены.
Конечно, ваше приложение может сохранять дату/отметки времени ... но это не поможет, когда люди начинают фальсифицировать системные часы.
Короче говоря: вы должны балансировать между «легко реализуемыми, но, вероятно, легко обходить» и «трудно реализовать», и, вероятно, легко сделать это неправильно ». Другими словами: имейте в виду, что такие «функции проверки лицензии» могут сделать слишком трудным для ваших потенциальных клиентов использование программного обеспечения. Или «хуже»: вы тратите много времени на какое-то «отличное решение для обеспечения безопасности» на эту проблему, и при его внедрении вы добавляете в свой программник различные ошибки. Не стоит недооценивать усилия, которые потребуются, чтобы вытащить решение, которое невозможно взломать мотивированным пользователем ...
Окончательное предложение; попробуйте другой подход: сосредоточьтесь на создании отличных пользователей с вашим приложением (но, возможно, с ограниченным набором функций). Просто убедите своих клиентов, что ваше приложение стоит платить деньги; и не предоставляют «пробные лицензии»; но бесплатную «пробную версию» с меньшей функциональностью, чем реальный продукт.
вы можете сохранить последнюю начатую дату где-то при запуске программы и проверке lastdate> currentdate, если это так даёт ошибку «часы изменились» –
Какой уровень защиты вы желаете? Если достаточно работать только для обычных пользователей - например, игнорируя те, которые будут декомпилировать банку и найти логику для испытания? – John
@FastSnail невозможно будет декомпилировать банку и найти это место, которое затем будет изменено. Если не указано, что сервер контролирует OP. – John