【问题标题】:Obtain a unique hardware identifier in C++ in Windows [duplicate]在 Windows 中获取 C++ 中的唯一硬件标识符 [重复]
【发布时间】:2012-10-14 15:36:41
【问题描述】:

可能重复:
Reliable way of generating unique hardware ID

我想用 C++ 检索单台机器的唯一硬件标识符。有什么建议?我需要这个软件在 Windows XP、Vista、7、8 下工作。我只需要一些系统调用来检索 MAC 地址、硬盘序列号或类似的东西。

【问题讨论】:

  • 你打算用它做什么?这将改变可以使用的值。 MAC 地址在正常使用中是唯一的,但如果用户愿意,它可以很容易地更改为非唯一的。
  • 这是 CodeProject 文章的简化版本,它使用 C# 和 WMI 基本上使用机器的硬件规格编译 HUID。翻译成 C 应该是相当容易的:codeproject.com/Articles/28678/…

标签: c++ windows hash hardware


【解决方案1】:

Here 是一篇很棒的文章,介绍了如何使用 C++ 获取你的 mac 地址。您可以使用这三种方法中的一种来获取您的 MAC 地址,之后您可以对这些 MAC 地址使用某种加密(eh sha256)——当然,只有当您希望这些 MAC 地址在您使用时隐藏存储它们。

【讨论】:

    【解决方案2】:

    使用机器的DPAPI 密钥加密任何值,并将加密的值用作您的 ID。

    注意:我将我的original answer 复制到了这个重复的问题。

    【讨论】:

    • DPAPI 将使用使用随机“salt”的 PBKDF2 加密方法,每次生成时都会生成带有随机值的密文。因此,除非您指定如何使 PBKDF2 不使用随机“盐”(我猜是通过 CryptProtectData API),否则我看不出您的建议将如何发挥作用?更多信息:msdn.microsoft.com/en-us/library/ms995355.aspx
    猜你喜欢
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    相关资源
    最近更新 更多