Всегда будет возможно использовать закрытый API, если у вас есть доступ к коду ваших приложений (см. Также эту ветку ).Вы можете сделать это сложнее, хотя.И вы можете ограничить использование API следующими параметрами
1) если это не «ваш» API, не помещайте ключ в приложение, а на сервер, на котором вы работаете, чтобы служить прокси длясторонняя служба (вы, вероятно, все еще хотите, чтобы другой ключ для вашего сервера входил в приложение)
2) зашифровывает / шифрует ключ, чтобы его было нелегко захватить:
- простопример для шифрования: поместите ключ в файл;генерировать случайный файл одинаковой длины;xor файл ключа со случайным файлом (и снова запишите его на диск);всякий раз, когда вам нужно, чтобы ключ прочитал оба файла и снова зарезервировал их (подойдет любая обратимая операция вместо xor - более сложная операция, разбросанная по вашему коду, усложнит для обратного инженера)
- зашифруйте ваш ключ, используяпарольная фраза распространяется на ваше приложение (при развертывании приложения для Android все равно запутываются, поэтому найти его становится немного сложнее)
3), если это ваш сервис или у вас настроен прокси, ограничьте количество использованийдля каждого клиента / IP-адреса или предлагать только части службы через прокси-сервер
Обратите внимание, что вариант 1 может даже потребоваться, если у вас есть контракт, запрещающий обнародование вашего ключа.