Здравствуйте, я разрабатываю приложение, которое будет обмениваться уникальными группами и сообщениями, принадлежащими им, между одноранговыми узлами в локальной сети без каких-либо серверов. Каждый из сверстников должен иметь возможность создать новое сообщение и связать его с существующей или новой группой. Поскольку сообщения и группы должны быть уникальными, я реализовал хэш-алгоритм, создающий идентификатор этих сообщений из статических значений, таких как контент, дата создания, автор, заголовок (сообщения не редактируются). Идентификатор, который я использую, помогает мне проверять целостность и возможный дубликат, когда сообщение/группа отправляется на другое устройство. Но поскольку нет сервера для хранения учетных записей и проверки достоверности каждого из сверстников, я не могу подумать о способе реализации механизма, который будет проверять подлинность данного сообщения от конкретного автора. В настоящий момент любой может публиковать сообщения, добавляющие ложное имя автора, что я хочу решить. Как я могу это сделать?Как получить авторитет автора сообщений в локальной сети p2p без использования учетных записей, хранящихся на внешних серверах?
PS. Мое приложение может быть похоже на то, как работает Twitter, но у него нет учетных записей и нет основных серверов для их хранения. Он разработан на Android и не может использовать Интернет просто потому, что он использует Wi-Fi для подключения к маршрутизаторам только с локальной сетью, и я бы не хотел, чтобы пользователям приходилось использовать 3G/edge.
Возможные решения:
Использование телефона специальный идентификатор (IMEI), но и как я могу получить, что и является программно это действительно уникальный?
Использовать MAC-адрес телефона (фактически хэшированная конкатенация Bluetooth и MAC-адрес WiFi), является ли это уникальным для каждого телефона? Проблема с этим и тем, что подлинный автор может изменить свой телефон с течением времени.
Если оригинальный автор вошел в свой аккаунт Google ранее, он хранится в памяти телефона и я могу запрограммировать эту информацию в автономном режиме?
Вы правы, я забыл об этом решении. Хотя я пытаюсь думать о менее сложном методе (не хочу создавать внешний сервер, который будет действовать как центр сертификации). Пока я сосредоточен на учетных записях Google, проверяя, являются ли они доступными в памяти телефонов программно и насколько это безопасно (вероятно, телефон не будет помнить учетную запись google, которая не была успешно завершена в прошлом, поэтому она должна быть отлично, пока я могу получить эту информацию в автономном режиме). – Miky
См., Если это поможет: http://stackoverflow.com/questions/2245545/accessing-google-account-id-username-via-android. Также см. Здесь, как вызвать действие, которое побуждает пользователя создать новую учетную запись http : //stackoverflow.com/questions/3575303/programatically-starting-the-add-account-activity-in-android-2-2, это может быть удобно, если у пользователя нет учетной записи google, связанной с телефоном, и вашего приложение требует этого. –