Если я понимаю, что вы пытаетесь сделать, то, как и большинство схем лицензирования, это в основном схема DRM . Я расскажу только о проблеме криптографии, но есть, конечно, проблема игры в прятки от хакеров. Вы должны знать, что схема DRM no предлагает какую-либо измеримую защиту (если, возможно, не задействовано аппаратное обеспечение безопасности) в криптографическом смысле, но они все еще распространены, и некоторым разработчикам удобна логика, лежащая в их основе.
То, что вы хотите сделать, - это сгенерировать данные вашей лицензии и включить некоторую информацию, которая не позволяет пользователю просто скопировать действительный файл лицензии от законного пользователя. Примерами могут быть MAC-адрес, номер телефона и т. Д. Затем вы подписываете эти данные. Затем лицензия состоит из незашифрованной лицензии и байтов подписи. На стороне пользователя ваше установочное программное обеспечение проверит подпись с помощью жестко закодированного открытого ключа и выполнит любые другие проверки (совпадения mac-адресов, совпадений телефонных номеров и т. Д.).
Это было бы ядром вашей схемы, и этого достаточно для большинства разработчиков. Вы можете взять это ядро и затем обфусцировать его, используя специальные методы, включая шифрование, разбиение и т. Д., В зависимости от того, как далеко вы хотите пойти в игре в прятки.
РЕДАКТИРОВАТЬ:
Если я могу сделать предложение, я думаю, что книга Начало криптографии с Java была бы мудрым вложением. В него включены примеры использования библиотеки Bouncycastle. Вы можете бесплатно загрузить примеры с того же сайта.