Как работает OpenUDID - PullRequest
       34

Как работает OpenUDID

8 голосов
/ 27 марта 2012

Знаете ли вы, как OpenUDID генерирует уникальный идентификатор устройства?
Есть ли вероятность, что 2 устройства имеют одинаковое значение OpenUDID ?

РЕДАКТИРОВАТЬ 1:

Изменится ли OpenUDID при перезагрузке устройства?

РЕДАКТИРОВАТЬ 2:

Если возможна коллизия, есть ли альтернатива для OpenUDID, которая могла бы работать лучше.

Ответы [ 5 ]

4 голосов
/ 27 марта 2012

Если бы только был способ взглянуть на исходный код ...

// Next we try to use an alternative method which uses the host name, process ID, and a time stamp
// We then hash it with md5 to get 32 bytes, and then add 4 extra random bytes
// Collision is possible of course, but unlikely and suitable for most industry needs (e.g.. aggregate tracking)
3 голосов
/ 07 июня 2012

Тогда это действительно не подходит для приложений, которые используют UDID в качестве идентификатора входа в систему. Если вам нужно восстановить устройство, тогда UDID будет другим, тогда как UDID Apple является частью реального телефона и будет постоянно восстанавливаться.

Это действительно больше похоже на cookie для использования рекламодателями ... тогда он НЕ ДОЛЖЕН быть на 100% точным, только в основном точным.

3 голосов
/ 27 марта 2012

Это по сути 160-битная случайная строка. Таким образом, есть 2 ^ 160 комбинаций. Таким образом, очень маловероятно, чтобы когда-либо получить два одинаковых

2 голосов
/ 27 марта 2012

Согласно этот OpenUDID работает следующим образом:

Технически, OpenUDID использует сочетание локального хранилища приложений для кэширования и защиты, а также хранилища между приложениями (настраиваемоемонтажные доски на iOS).Это означает, что система децентрализована и не контролируется ни Apple, ни кем-либо еще.Чем больше используется OpenUDID, тем более надежным, распространенным и защищенным от взлома он является.

Кроме этого, OpenUDID выглядит и чувствует себя так же, как и собственный UDID, шестнадцатеричная строка длиной 40 символов.Например:

369416e16c373b617b2e4d151e01244c748c7b3e

Надеюсь, это поможет

0 голосов
/ 18 июля 2014

Читать это Руководство разработчика по уникальным идентификаторам

Назад, когда iOS 5 была выпущена, и uniqueIdentifier устарел был спешка, чтобы найти альтернативу UDID, который не был контролируется Apple. Похоже, что OpenUDID является наиболее широко используемым альтернатива с открытым исходным кодом UDID. OpenUDID очень прост в реализации Ваш проект и поддерживается множеством рекламных провайдеров.

NSString *openUDID = [OpenUDID value];

OpenUDID использует очень умный способ сохранить идентификатор в Приложения. Он использует специально названные Pasteboards для хранения идентификатор. Таким образом, другие приложения, которые также используют OpenUDID, знают, куда иди посмотри и можешь взять уже сгенерированный идентификатор вместо создание нового.

...