UUID 生成器

使用基於時間戳的演算法生成通用唯一識別符號(UUID),防止重複。

鍵盤快捷鍵: R 重新生成 UUID 或 C 複製 UUID

UUID 工作原理

UUID v1(基於時間戳): 使用當前時間戳(自 1582 年 10 月 15 日起的 100 納秒間隔)結合 MAC 地址或隨機節點識別符號。這確保了不同機器之間的唯一性,即使同時生成也能防止重複。

UUID v4(隨機): 使用加密強度的隨機數。雖然理論上可能出現重複,但機率極低(2^122 分之一),在實際應用中可以忽略不計。

UUID v7(現代時間戳): 最新的 UUID 版本,結合了 Unix 時間戳(48 位)和隨機資料(74 位)。這提供了 v1 的時間排序優勢,同時保持 v4 的隱私性,使其成為資料庫主鍵的理想選擇。

格式: UUID 是 128 位值,以 32 個十六進位制數字顯示,格式為: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

常見用例

UUID(也稱為 GUID)為您提供了幾乎無限的唯一識別符號池,無需與中央機構協調。以下是一些常見的使用場景:

資料庫主鍵

UUID 允許多個服務或分片獨立生成鍵而不發生衝突。UUID v7 越來越受歡迎,因為其前導時間戳讓插入保持區域性性友好、索引緊湊。

分散式系統

當事件由多個節點產生時,每個事件一個 UUID 可以避免集中式序列的瓶頸,並使日誌在服務邊界之間保持可追蹤。

面向公眾的識別符號

URL 中的 UUID v4 不會像遞增整數那樣暴露存在多少條記錄,也不會帶來列舉攻擊的風險。

冪等性鍵

客戶端為每個請求生成一個 UUID,這樣伺服器就可以識別重試並避免兩次處理相同的操作。

您應該使用哪個版本?

  • 如果您想要簡單的隨機性而不需要其他屬性,請使用 v4 - 這是大多數應用程式最安全的預設選項。
  • 如果識別符號將成為資料庫主鍵,或儲存在任何插入順序很重要的索引中,請使用 v7。嵌入的時間戳使行聚集在一起,在大規模下顯著提高寫入效能。
  • 僅在您特別需要從時間戳和節點識別符號派生識別符號時使用 v1。在現代應用程式中,對於相同的用例,v7 是更好的選擇,並且不會洩露 MAC 地址。

常見問題

什麼是 UUID?

UUID(通用唯一識別符號)是一個 128 位值,通常以 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 形式的 32 個十六進位制數字書寫。不同的版本使用不同的策略(隨機、時間戳或兩者結合)生成該值。

UUID 和 GUID 有什麼區別?

它們指的是同一個東西。GUID(全域性唯一識別符號)是 Microsoft 生態系統中使用的名稱;UUID 是 RFC 4122 和其他地方使用的名稱。格式和唯一性保證是相同的。

UUID 保證是唯一的嗎?

從數學上講並不能絕對保證 - 但 UUID v4 的碰撞機率大約為 2^122 分之一,遠低於任何實際應用的閾值。對於 UUID v1 和 v7,時間戳和節點/隨機位在實際中防止了碰撞。

我應該為資料庫主鍵使用 UUID v4 還是 UUID v7?

UUID v7 通常更適合作為主鍵。因為它的前導位是 Unix 時間戳,新行在磁碟上插入的位置彼此靠近,這使索引保持緊湊、寫入速度更快。僅在插入順序絕對不能被推斷時才使用 v4。

我需要 UUID v1 生成器嗎?

很少需要。UUID v1 包含生成機器的 MAC 地址(或隨機替代值),可能會洩露資訊。UUID v7 提供相同的時間可排序屬性,卻沒有這種顧慮,如今幾乎總是更好的選擇。

這個 UUID 生成器可以免費使用嗎?

是的。所有生成都在您的瀏覽器中進行,沒有速率限制,也不需要帳戶。您可以在這裡生成單個 UUID,或切換到批次生成器一次生成最多 500 個。

我們幾乎不使用 Cookie

我們僅使用嚴格必要的 Cookie,這些 Cookie 可增強網站安全性並改善您的使用者體驗。我們不會跟蹤您的行為或活動。