2012-10-24 67 views
2

可能重複:
Reliable way of generating unique hardware ID獲得在C++中的唯一硬件標識符在Windows

我想用C來檢索一臺機器的唯一硬件標識符++。有什麼建議麼?我需要這個軟件在Windows XP,Vista,7,8下工作。我只需要一些系統調用來檢索MAC地址,硬盤序列號或類似的東西。

+1

你打算如何使用它?這將改變什麼值可以使用。 MAC地址在正常使用中將是唯一的,但如果用戶需要,它可以很容易地更改爲不唯一的東西。 –

+0

下面是CodeProject文章的簡化版本,它使用C#和WMI基本上使用機器的硬件規格編譯HUID。它應該是相當容易將其翻譯成C:http://www.codeproject.com/Articles/28678/Generating-Uni​​que-Key-Finger-Print-for-a-Computer?msg=4156672#xx4156672xx – ahmd0

回答

2

使用機器的DPAPI密鑰對任何值進行加密,並使用加密值作爲您的ID。

注意:我複製我的original answer到這個重複的問題。

+0

DPAPI將使用使用隨機「鹽」的PBKDF2加密方法,每次生成密碼文本時都會生成帶有隨機值的密文。所以除非你指定如何使PBKDF2不使用隨機「鹽」(我猜,通過CryptProtectData API),我不明白你的建議會如何工作?更多信息:https://msdn.microsoft.com/en-us/library/ms995355.aspx – ahmd0

0

Here是一篇關於如何使用C++獲取您的mac地址的精彩文章。你可以使用這三種獲取MAC地址的方法之一,之後你可以在這些MAC地址上使用某種加密方式(eh sha256) - 當然,只有當你想讓這些MAC地址在你身邊隱藏時存儲它們。