我们希望在 Windows 8 Metro 应用程序中使用唯一的设备标识符,建议使用 ASHWID,记录在此:
http://msdn.microsoft.com/en-us/library/windows/apps/jj553431.aspx
我正在努力看看如何才能保证这是独一无二的。该格式包括每个硬件组件两个字节,其中最唯一可识别的是 MAC 地址和硬盘序列号。但是这些值只有两个字节似乎还不够。
如果使用的字节不是最低有效数字(最右边,人类读取它们),那么生产线上相邻的两台相同的笔记本电脑可能具有相同的 ASHWID。MAC 和驱动器序列可能是相邻的。
所以,我想我的问题的症结在于,必须生产多少台设备具有相同的 CPU 类型和内存配置,然后才可能出现重复。似乎和生日悖论一样的问题,所以我找到了一个计算器并插入了数字:)
使用一个 MAC 地址和一个硬盘,每个硬盘都有两个字节的标识符,您有大约 40 亿个排列。一旦你只分配了 6,000 个,你有两个相同的大约是 50/50。
(请访问http://jeff.aaron.ca/cgi-bin/birthday并插入“6563”和“4294967296”进行实际计算)。
所以这看起来真的不是很独特。我对这个标识符持怀疑态度是对的,还是我错过了一些真正重要的东西?