GUID(全球唯一識別碼)

2023-02-24

圖形使用者介面D/UUID

全域唯一識別符(GUID,Globally Unique Identifier)是一種由演算法產生的二進位長度為128位元的數字標識符。 GUID主要用於在擁有多個節點、多台電腦的網路或系統中。在理想情況下,任何計算機和電腦集群都不會產生兩個相同的GUID。 GUID 的總數達到了2^128(3.4×10^38)個,所以隨機產生兩個相同GUID的可能性非常小,但並不為0。所以,用於產生GUID的演算法通常都加入了非隨機的參數(如時間),以確保這種重複的情況不會發生。

GUID一詞有時也專指微軟對UUID標準的實作。
在 Windows 平台上,GUID 廣泛應用於微軟的產品中,用於識別如註冊表項、類別及介面標識、資料庫、系統目錄等對象。



GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每個 x 是 0-9 或 af 範圍內的一個十六進位數。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即為有效的 GUID 值。

軟體特點

編輯 播報


1.需要GUID的時候,可以完全由演算法自動生成,不需要一個權威來管理。

2.GUID理論上能產生全宇宙唯一的值,對於以後的資料導入很方便。


由於GUID值產生的潛在弊端已經引起了保密性倡議者的關注。 1999年3月,美國聯邦商務委員會接獲要求,對微軟的GUID值使用進行調查。爭議主要涉及97號辦公室辦公室2000文檔對GUID值的使用。 Office文檔,如Word文件或Excel電子數據表,所使用的GUID值對使用者是不可見的。但有許多報導宣稱,文件的作者是可以透過GUID值的追蹤查到的,即使作者已經採用特殊方法,他們還是可以被追蹤到。為了回應上述問題,微軟已經發布了一個Office 97修補版SR2,它禁止了GUID功能的使用,並且還可以將現存文檔的GUID去除。

潛在的對Intel處理器序號濫用的問題與上述GUID值的問題本質是一樣的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 號
18
19
20
21
22
23
選項 顯式的
私人的 類型 GUID
數據1作為 長的
數據2作為 整數
數據3作為 整數
數據4(8)作為 位元組
結尾 類型
私人的 宣告 功能 共同創建指南庫 “ole32.dll” (pguid作為 GUID)作為 長的
私人的 宣告 功能 來自GUID2的字串庫 “ole32.dll” (rguid作為 任何,拜爾 lpstrClsId作為 長的,拜爾 最大cb作為 長的)作為 長的
私人的 功能 GUIDGen()作為 細繩 '產生GUID
暗淡 uGUID作為 GUID
暗淡 sGUID作為 細繩
暗淡 bGUID()作為 位元組
暗淡 長度作為 長的
暗淡 保留值作為 長的
長度 = 40
bGUID =細繩(lLen, 0)
CoCreateGuid uGUID'把結構轉換成一個可顯示的字串
RetVal = StringFromGUID2(uGUID, VarPtr(bGUID(0)), lLen)
sGUID = bGUID
如果 (升(中$(sGUID, RetVal, 1)) = 0)然後 恢復值 = 恢復值 - 1
GUIDGen = 左$(sGUID, RetVal)
結尾 功能
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 號
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#包括
#包括
//--產生GUID
常量 字元* 新GUID()
{
靜止的 字元 buf[64] = {0};
GUID 引導;
如果 (S_OK == ::CoCreateGuid(&guid))
{
_snprintf(緩衝區,大小(緩衝區)
,“{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}”
, guid.Data1
, guid.Data2
, guid.Data3
, guid.Data4[0], guid.Data4[1]
、 guid.Data4[2]、guid.Data4[3]、guid.Data4[4]、guid.Data4[5]
, guid.Data4[6], guid.Data4[7]
);
}
返回 (常量 字元*)緩衝區;
}
整數 主要的(整數 精胺酸,字元* argv[])
{
分享
下一篇:這是最後一篇
上一篇:這是第一篇