OpenUDID如何工作

你知道OpenUDID如何生成唯一的设备ID吗?
有2个设备具有相同的OpenUDID值吗?

编辑1:

设备重置时,OpenUDID会改变吗?

编辑2:

如果碰撞是可能的,有没有其他的OpenUDID可以更好地工作。

Solutions Collecting From Web of "OpenUDID如何工作"

如果只是有一种方法来看看源代码…

// 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 (eg. aggregate tracking) 

它基本上是一个160位随机string。 所以有2 ^ 160个组合。 所以这是非常不可能得到两个相同的

然后,这实际上不适用于使用UDID作为login标识符的应用程序。如果您必须恢复设备,那么UDID将会不同,而Apple的UDID是实际电话的一部分,并且会持续恢复。

这实际上更像是一个供广告商使用的cookie。它不一定是100%准确的,只有大部分是准确的。

根据这个 OpenUDID这样工作:

从技术上讲,OpenUDID使用混合的本地应用程序存储caching和保护,以及应用程序间存储(iOS上的定制粘贴板)。 这意味着该系统是分散的,既不受苹果也不受其他任何人控制。 使用的是越多的OpenUDID,越强大和stream行,防篡改。

除此之外,OpenUDID与本机UDID(长度为40个字符的hexstring)的外观和感觉相同。 例如:

369416e16c373b617b2e4d151e01244c748c7b3e

我希望这有帮助

请阅读“唯一标识符开发人员指南”

当iOS 5发布并且uniqueIdentifier被弃用时,急于find不受Apple控制的UDID的替代品。 看来,OpenUDID是最广泛使用的开源UDID的替代品。 OpenUDID在您的项目中实现起来非常简单,并得到众多广告提供商的支持。

NSString *openUDID = [OpenUDID value];

OpenUDID使用一种非常聪明的方式来在应用程序之间保存标识符。 它使用专门命名的粘贴板来存储标识符。 这样,其他也使用OpenUDID的应用程序知道去哪里看,并可以抓住已经生成的标识符,而不是生成一个新的标识符。