gpt4 book ai didi

windows-8 - ASHWID 是否能保证唯一标识设备?

转载 作者:行者123 更新时间:2023-12-04 04:22:24 24 4
gpt4 key购买 nike

我们希望在 Windows 8 Metro 应用程序中使用唯一的设备标识符,建议使用 ASHWID,记录在此:

http://msdn.microsoft.com/en-us/library/windows/apps/jj553431.aspx

我正在努力看看如何才能保证这是独一无二的。该格式包括每个硬件组件两个字节,其中最唯一可识别的是 MAC 地址和硬盘序列号。但是这些值只有两个字节似乎还不够。

如果使用的字节不是最低有效数字(最右边,人类读取它们),那么生产线上相邻的两台相同的笔记本电脑可能具有相同的 ASHWID。 MAC 和驱动器序列可能是相邻的。

所以,我想我的问题的症结在于,必须生产多少台设备具有相同的 CPU 类型和内存配置,然后才可能出现重复。似乎与 Birthday Paradox 的问题相同,所以我为此找到了一个计算器并输入了数字:)

使用一个 MAC 地址和一个硬盘,每个硬盘都有两个字节的标识符,您有大约 40 亿个排列。一旦你只分配了 6,000 个,你有两个相同的大约是 50/50。

(去http://jeff.aaron.ca/cgi-bin/birthday并插入“6563”和“4294967296”进行实际计算)。

所以这看起来真的不是很独特。我对这个标识符持怀疑态度是对的,还是我错过了一些真正重要的东西?

最佳答案

不,ASHWID 不能保证唯一标识设备。在工作中,我已经看到了几十次每天的碰撞,其中一个月是我们的容忍度。

此外,同一设备的 ASHWID 可能会经常更改——因为 Windows 8 通常会在可能添加坞站、USB 拇指驱动器或插入式蓝牙适配器的笔记本电脑上运行。 ASHWID 的最佳用途是验证用户是否仅将您的应用安装到了有限数量的设备上,您可以通过解析 ASHWID 并有选择地将其与该用户之前看到的 ASHWID 进行比较来做到这一点。

至于唯一的硬件标识符,我建议使用包含多个组件的字符串的 MD5 摘要,其中 ASHWID 的某些组件可以发挥作用。

您可能会随机生成一个大数字(64 位以上)并将其存储(例如在注册表中)。当然,如果您希望在哈希中包含其他内容,则用户的登录名/ID 对于该用户应该是唯一的。如果用户克隆操作系统安装或在驱动器故障后更换 HD,您还需要考虑您想要做什么。

回到 Windows 桌面世界,我使用了 MachineGuid 注册表项和启动设备的序列号,但我正在努力在 Windows 应用商店应用程序中访问该信息。如果您有访问权限,MachineGuid 位于 HKLM\SOFTWARE\Microsoft\Cryptography , MS 保证是唯一的。引导设备序列号::GetVolumeInformationW(::SHGetFolderPathW(~),~)将是相当独特的,但只有 32 位。

关于windows-8 - ASHWID 是否能保证唯一标识设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12534641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com