Как использовать общедоступное шифрование для управления лицензированием приложений Android?

Я не хочу публиковать свое приложение на Android Market, но я бы создал лицензионный ключ на своем веб-сайте на основе MAC-адреса пользовательского устройства. Он должен включать в себя также срок годности. Как только пользователь вводит код в устройстве Android, он должен быть распознан. Я читал, что это можно сделать с помощью специального публичного шифрования. В этом сценарии я должен реализовать:

  1. Функция в моем приложении, которая берет MAC-адрес устройства и показывает строку пользователю.
  2. Функция на моем веб-сайте, которая владеет закрытым ключом и шифрует строку в пункте 1. и добавляет дату окончания срока действия
  3. Функция в моем приложении, которая расшифровывает строку в пункте 2. с помощью ключа puplic и проверяет лицензионный ключ.

Я читал много обсуждений на stac koverflow и других сайтах, но ничего не применимо... или не ясно, как применить в моем сценарии:(

Можете ли вы предоставить мне способ решить эту проблему? Есть ли что-то, что является родным для Android, что я скучаю (я надеюсь)?

Большое спасибо! Marco

2 ответа

Я не вижу ничего действительно сложного для реализации ваших намерений

  1. Ваш сервер лицензирования должен иметь свои собственные пары закрытых и открытых ключей.
  2. Затем вы должны создать закрытый ключ в вашем приложении во время первого запуска / установки. Это можно сделать просто случайно
  3. Затем вы должны обменяться между вашим приложением и сервером с открытыми ключами
  4. Во время процедуры покупки / лицензирования ваше приложение должно зашифровать MAC -адрес или другую (gmail id, IMEI-код) отправку на сервер - сервер хранит ключ
  5. Для проверки действительности лицензии приложение отправляет на сервер шифр MAC - сервер проверяет его на предмет сохранности в базе данных.

Если вы не знаете, как реализовать секретные / открытые ключи - читайте руководства, существует множество реализаций процедуры Диффи-Хеллмана- там просто и ничего особенного

Я искал для реализации лицензирования для приложений, которые не распространяются через Play и столкнулся с этим:

https://code.google.com/p/droidactivator/

Может это тебе тоже поможет?

Другие вопросы по тегам