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

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 03 апреля 2013

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

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

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

0 голосов
/ 11 октября 2011

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

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

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

...