从iPhone序列中导出UDID#

时间:2011-03-24 16:59:07

标签: iphone udid

文档声明iOS UDID是从串口#和其他内容派生的哈希。有谁知道 - 还有什么,以及什么是哈希算法?

原因是,我们有一个工作发布的iPhone的企业数据库,其中包含连续出版物,该软件使用UDID来识别手机。

2 个答案:

答案 0 :(得分:2)

此处描述的udid公式:http://theiphonewiki.com/wiki/UDID

编辑:在这里粘贴公式:

UDID的计算如下:

  • 创建长度为60个字符或长度为59个字符(在较新设备上)的文本字符串(见下文)
  • 计算文本字符串的SHA1哈希值。结果是UDID。

要创建文本字符串,请附加以下四个字符串:

  • 11个字符长或12个字符长(在较新的设备上)序列号(与在“设置”应用中编写的完全相同)
  • 其中一个:
    • (在旧设备上)15个字符长的IMEI号码(不含空格);用于iPod touch和Wi-Fi型iPad的空字符串
    • (在较新的设备上)十进制的13个字符长的ECID,没有前导零
  • 17个字符长的Wi-Fi MAC地址(小写字母,包括冒号);对于iPod touch第一代使用“00:00:00:00:00:00”
  • 17个字符长的蓝牙MAC地址(小写字母,包括冒号)

简而言之:

在Verizon iPhone 4及更新版本上:

UDID = SHA1(serial + ECID + wifiMac + bluetoothMac)

所有其他:

UDID = SHA1(serial + IMEI + wifiMac + bluetoothMac)

答案 1 :(得分:0)

我意识到你特别询问从其他标识符中获取udid但是根据this post,如果你想要UDID,你可以使用:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];