ตัวสร้างและตรวจสอบ UUID
สร้าง UUID v4 แบบสุ่มที่ปลอดภัยเชิงการเข้ารหัส หรือ v7 ที่เรียงลำดับได้ ทีละหนึ่งหรือพันรายการ และตรวจดู UUID หรือ GUID ใดก็ได้เพื่อดู version และ timestamp ที่ฝังอยู่
ทำงานในเบราว์เซอร์ไม่ต้องสมัครไม่มีการอัปโหลด
วิธีใช้ ตัวสร้าง UUID
- เลือก v4 สำหรับ ID แบบสุ่มทั้งหมด หรือ v7 สำหรับ ID ที่เรียงตามเวลาที่สร้าง
- กำหนดจำนวนที่ต้องการ (สูงสุด 1,000) แล้วคลิก สร้าง
- หากต้องการ สลับเป็นตัวพิมพ์ใหญ่ ลบขีดกลาง หรือครอบด้วยวงเล็บปีกกาสำหรับ GUID แบบ Microsoft
- คลิก UUID ตัวใหญ่เพื่อคัดลอก หรือใช้ คัดลอกทั้งหมด / ดาวน์โหลด .txt สำหรับทั้งชุด
- วาง UUID ใดก็ได้ลงในตัววิเคราะห์เพื่อตรวจสอบและดู version, variant และ timestamp
UUID คืออะไร?
UUID (Universally Unique Identifier) ซึ่งบนแพลตฟอร์มของ Microsoft เรียกว่า GUID คือค่าขนาด 128 บิตที่เขียนเป็นเลขฐานสิบหก 32 หลักในห้ากลุ่ม: 8-4-4-4-12 รูปแบบถูกกำหนดใน RFC 9562 ซึ่งแทนที่ RFC 4122 ในปี 2024 หลักหนึ่งเข้ารหัส version (เลขฐานสิบหกหลักที่ 13) และบิตบนของหลักที่ 17 เข้ารหัส variant
UUID v4 vs. UUID v7
| v4 | v7 | |
|---|---|---|
| เนื้อหา | บิตสุ่ม 122 บิต | Unix timestamp หน่วยมิลลิวินาที 48 บิต + บิตสุ่ม 74 บิต |
| ลำดับการเรียง | สุ่ม | ตามลำดับเวลา |
| ดัชนีฐานข้อมูล | การแทรกแบบสุ่มทำให้ดัชนี B-tree กระจัดกระจาย | ต่อท้ายดัชนี เป็นมิตรกับดัชนีมากกว่า |
| เปิดเผยเวลาที่สร้าง | ไม่ | ใช่ |
ใช้ v7 สำหรับ primary key ในฐานข้อมูลและ event ID ที่ลำดับการแทรกมีความสำคัญ ใช้ v4 เมื่อ ID ต้องไม่เปิดเผยว่าสร้างขึ้นเมื่อไร ตัวสร้างนี้รักษาให้ ID แบบ v7 เพิ่มขึ้นอย่างเคร่งครัดแม้จะสร้างหลายรายการในมิลลิวินาทีเดียวกัน
ไม่ซ้ำกันแค่ไหน?
ด้วยบิตสุ่ม 122 บิต คุณต้องสร้าง UUID v4 ประมาณ 2.7 ล้านล้านล้านรายการ ก่อนที่จะมีโอกาส 50% ที่จะเกิดการซ้ำกันเพียงครั้งเดียว หน้านี้ใช้ตัวสร้างเลขสุ่มที่ปลอดภัยเชิงการเข้ารหัสของเบราว์เซอร์ (crypto.getRandomValues) ไม่เคยใช้ Math.random()
การสร้าง UUID ในโค้ด
// JavaScript (browsers, Node 19+)
crypto.randomUUID()
# Python
import uuid; uuid.uuid4()
-- PostgreSQL 13+
SELECT gen_random_uuid();คำถามที่พบบ่อย
UUID เหล่านี้ปลอดภัยสำหรับใช้ใน production หรือไม่?
UUID กับ GUID ต่างกันอย่างไร?
{3F2504E0-4F89-11D3-9A0C-0305E82C3301} ใช้ตัวเลือกด้านบนเพื่อสร้างรูปแบบนั้นดึงเวลาที่สร้างจาก UUID ได้ไหม?
ควรใช้ UUID เป็น primary key ของฐานข้อมูลหรือไม่?
uuid แบบเนทีฟหรือไบนารี 16 ไบต์ แทนการเก็บเป็นสตริง 36 อักขระNil UUID คืออะไร?
00000000-0000-0000-0000-000000000000 ใช้เป็นตัวยึดตำแหน่งที่หมายถึง “ไม่มี UUID” RFC 9562 ยังกำหนด max UUID ที่เป็น f ทั้งหมดด้วย