OpenUDID是如何工作的

9
你知道OpenUDID如何生成唯一的设备ID吗?是否有两个设备具有相同的OpenUDID值的可能性?
编辑1: 设备重置时,OpenUDID会改变吗?
编辑2: 如果可能发生冲突,是否有其他替代方案可以更好地工作?
5个回答

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)

嗨,史蒂芬,我已经添加了一个更新,你知道OpenUDID的替代方案吗?因为可能会发生冲突。 - Tuyen Nguyen

3
根据此文所述,OpenUDID的工作原理如下:
技术上来说,OpenUDID使用本地应用程序存储进行缓存和保护,以及iOS上的自定义剪贴板进行应用间存储。这意味着该系统是分散的,既不受苹果也不受任何人的控制。 OpenUDID得到的使用越多,其稳健性、普及率和防篡改能力就越高。
除此之外,OpenUDID看起来和本机UDID一样,是一个40个字符长的十六进制字符串。例如:
369416e16c373b617b2e4d151e01244c748c7b3e 希望这可以帮助您。

3

这其实是一个160位的随机字符串,有2^160种组合。因此极其不可能出现两个相同的情况。


3

如果应用程序使用UDID作为登录标识符,则这并不适合。如果您必须恢复设备,则UDID将会改变,而苹果的UDID是实际手机的一部分,将在恢复后保持不变。

这更像是广告商使用的cookie..它不需要100%准确,只需要大致准确。


0

阅读开发人员的唯一标识符指南

iOS 5发布时,uniqueIdentifier被弃用,因此开始寻找一个不受苹果控制的UDID替代品。似乎OpenUDID是最广泛使用的开源UDID替代品。在您的项目中实现OpenUDID非常简单,并得到了许多广告提供商的支持。

NSString *openUDID = [OpenUDID value];

OpenUDID使用非常巧妙的方法来跨应用程序保留标识符。它使用特别命名的粘贴板来存储标识符。这样,其他使用OpenUDID的应用程序知道去哪里查找并可以获取已生成的标识符,而不是生成新的标识符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接