Я думаю, вы могли бы сделать что-то вроде этого:
1) Ваше приложение пытается получить первый доступ к серверу
2) Сервер отправляет случайное число / код в приложение
3) Приложение разрабатывает его и преобразует с помощью вашего секретного метода (оно может объединить его с секретным паролем и создать «хеш» с результатом; «хеш» - это преобразованная кодированная строка)
4) Приложение отправляет хэш [РЕДАКТИРОВАТЬ: (и исходное случайное число / код, полученный с сервера) <- НЕТ, было бы лучше не отправлять вместе исходный код и строку с кодированной строкой: если перехвачен всем было бы достаточно отправить его снова, чтобы войти в службу ... лучше сохранить исходную строку на сервере где-нибудь с идентификатором, ожидающим хэш из вашего приложения END EDIT] </strong> на сервер снова
5) Сервер использует тот же секретный метод для «хеширования» исходного числа (объединяет его с секретным паролем и создает «хеш» с результатом) и проверяет, совпадает ли он с тем, который он получил от вашего приложения.
6) если он равен ... сервер теперь знает, что запрос на ваш веб-сервис поступил от вашего приложения, и подтверждает доступ к нему ...
другими словами: только ваше мобильное приложение и ваш сервер знают, как преобразовать случайное число в этот "хеш" ...
Есть много примеров метода для получения «хеша» строки на многих языках (php, javaScript ...), поэтому просто ищите в сети ...