tigtools

UUID 產生器

在瀏覽器中大量產生符合需求格式的通用唯一識別碼。貼上現有的 UUID,即可檢查其版本和變體。

在瀏覽器中執行 免註冊

版本

使用瀏覽器的密碼學亂數產生器產生 122 個隨機位元。最適合一般用途。

    檢查 UUID

    使用方式

    1. 隨機 ID 請選 v4;要依建立時間排序的 ID 則選 v7。
    2. 設定數量(1 到 1,000),並選擇格式:大寫、是否使用連字號,以及是否使用大括號。
    3. 按一下按鈕複製單一 UUID、複製全部 UUID,或下載文字檔(每行一個 UUID)。
    4. 若要檢查現有的 UUID,請貼到「檢查 UUID」欄位。

    運作方式

    UUID(也稱為 GUID)是 128 位元識別碼,通常以 32 個十六進位數字分成五組表示:8-4-4-4-12。第三組的第一個數字代表版本,第四組的第一個數字則代表變體(標準 UUID 使用 8、9、a 或 b)。此格式定義於 RFC 9562,並於 2024 年取代 RFC 4122。

    Version 4 UUID 是隨機產生的。此工具會在支援時使用 crypto.randomUUID,否則使用 crypto.getRandomValues;兩者都具備密碼學安全性,絕不使用 Math.random。v4 UUID 含有 122 個隨機位元,兩個 UUID 發生碰撞的機率極低:必須產生約 2.7 × 10^18 個,才有 50% 的機率出現一次重複。

    Version 7 UUID 開頭是以毫秒為單位的 48 位元 Unix 時間戳記,後面依序是版本、12 位元欄位和 62 個隨機位元。由於時間資訊在最前面,v7 值會依建立順序排列,因此能讓資料庫索引更精簡,並比隨機的 v4 鍵值更快插入。若同一毫秒內建立多個 v7 UUID,此工具會將 12 位元欄位用作計數器(RFC 9562 第 6.2 節所述的方法),確保批次中的 UUID 嚴格遞增。請注意,v7 UUID 會透露建立時間。

    檢查工具接受有或沒有連字號、大寫或小寫、以大括號括住,或加上 urn:uuid: 前綴的 UUID。工具會顯示版本和變體、辨識特殊的 nil 和 max UUID,並顯示版本 1、6 和 7 中包含的建立時間。

    範例

    新資料表的主索引鍵

    產生 100 個 v7 UUID 作為測試資料,例如 0192b3c4-5d6e-7f80-9a1b-2c3d4e5f6a7b。這些 UUID 會依建立時間排序,因此後續插入的資料列會取得較大的鍵值,就像自動遞增欄位一樣。

    Windows 或 .NET 專案的 GUID

    開啟「大寫」和「大括號」,即可產生登錄檔風格的格式 {3F2504E0-4F89-41D3-9A0C-0305E82C3301},常用於 Visual Studio 專案檔、COM 類別 ID 和 Windows 登錄檔。

    檢查記錄檔中的 ID

    將 018f6e2c-1a2b-7c3d-8e4f-5a6b7c8d9e0f 貼到檢查工具。工具會顯示 version 7 和標準變體,並將前 12 個數字解讀為 2024 年 5 月的時間戳記,讓您知道記錄的建立時間。

    常見問題

    該使用 UUID v4 還是 v7?

    若 ID 不應透露任何資訊,例如公開 token 或檔名,請使用 v4。若用於資料庫鍵值和事件 ID,並希望依時間排序來提升索引效能,請使用 v7。兩者都有足夠的隨機位元,實際上不必擔心發生碰撞。

    這些 UUID 真的都是唯一的嗎?

    這些 UUID 並未與任何清單比對,但它們是由密碼學安全的亂數產生器產生,因此重複的機率極低,在實際系統中可以忽略。v7 值也包含目前時間。

    UUID 和 GUID 是相同的嗎?

    是。GUID(全域唯一識別碼)是 Microsoft 對相同 128 位元格式的稱呼。GUID 通常以大寫並加上大括號顯示,您可以在此切換格式。

    可以將 UUID 當作密碼或機密 token 嗎?

    v4 UUID 有 122 個隨機位元,不容易猜中;但 UUID 是識別碼,不是機密資訊,而且常會出現在記錄檔和 URL 中。API 金鑰或重設連結請使用專用的隨機 token 產生器。

    v7 時間戳記會使用我電腦的時鐘嗎?

    可以。時間戳記會以 UTC 毫秒為單位,取自您裝置的時鐘。如果時鐘不準,包含的時間也會不準,但同一批產生的 ID 仍會依序遞增。

    隱私權

    UUID 會在您的瀏覽器中使用裝置的密碼學亂數產生器產生,不會傳送至伺服器、儲存或記錄,因此其他人無法看到您產生或檢查的值。