2012-03-27 3 views
8

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

EDIT 1:

Будет OpenUDID изменение, когда устройство сбрасывается?

EDIT 2:

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

ответ

4

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

// 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) 
+0

Привет, Стивен, я добавил обновление, вы знаете альтернативу для OpenUDID, поскольку столкновение возможно. –

2

Согласно this OpenUDID работает так:

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

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

369416e16c373b617b2e4d151e01244c748c7b3e

Я надеюсь, что это помогает

3

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

3

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

Это действительно больше похоже на куки-файлы для рекламодателей. Оно не должно быть на 100% точным, но в основном точным.

0

Читать эту The Developer’s Guide to Unique Identifiers

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

NSString *openUDID = [OpenUDID value];

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

 Смежные вопросы

  • Нет связанных вопросов^_^