2012-03-27 5 views
8

OpenUDIDが一意のデバイスIDを生成する方法を知っていますか?
2台のデバイスが同じOpenUDIDの値を持つ可能性はありますか?OpenUDIDのしくみ

EDIT 1:

は、デバイスがリセットされOpenUDID変更はウィル?

EDIT 2:衝突が可能である

場合は、より良い仕事ができるOpenUDIDのための任意の代替があります。このように動作しますOpenUDID thisによると

答えて

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

技術的には、OpenUDIDは地元のミックスを使用していますキャッシュと保護のためのアプリストレージ、アプリ間ストレージ(iOSのカスタムペーストボード)などがあります。これは、システムが分散化されており、Appleや他の誰にも制御されていないことを意味します。より多くのOpenUDIDが使用されるほど、より堅牢で普及しています。

これ以外のOpenUDIDはネイティブUDIDと同じように見え、40文字の16進数の文字列と同じです。例えば:

369416e16c373b617b2e4d151e01244c748c7b3e

私は、これはこれは、基本的に160bitのランダムな文字列である

3

に役立ちます願っています。したがって、2^160の組み合わせがあります。だから、2つを同じにすることは非常に非常に困難です

3

これは本当にログインIDとしてUDIDを使用するアプリケーションには適していません..あなたのデバイスを復元する必要がある場合、UDIDは異なるAppleのUDIDは実際の電話の一部であり、リストアを保持します。

これは広告主様のクッキーによく似ていますが、100%正確ではなく、ほとんど正確です。

0

のiOS 5がリリースされたとUNIQUEIDENTIFIERになったときに、このThe Developer’s Guide to Unique Identifiers

をリードバックは を非推奨アップルによって制御されない たUDIDの代替を見つけるためにラッシュがありました。 OpenUDIDが最も広く使われているのは オープンソースのUDIDの代替品だと思われます。 OpenUDIDはあなたのプロジェクト で実装するのが簡単で、多くの広告プロバイダーによってサポートされています。

NSString *openUDID = [OpenUDID value];

OpenUDIDは アプリケーション間で識別子を保持するために非常に巧妙な方法を使用します。 という識別子を格納するために、特別に名前が付けられたペーストボードを使用します。このように、OpenUDIDも使用する他のアプリでは、 の場所を知り、すでに生成されたIDを取得して の代わりに取得することができます。