วิธีใช้งาน
- เลือก v4 สำหรับ ID แบบสุ่ม หรือ v7 สำหรับ ID ที่เรียงลำดับตามเวลาที่สร้าง
- ตั้งจำนวนที่ต้องการ (1 ถึง 1,000) และเลือกรูปแบบ: ตัวพิมพ์ใหญ่ มีหรือไม่มีขีดกลาง มีหรือไม่มีวงเล็บปีกกา
- คัดลอก UUID เดี่ยวด้วยปุ่มของแต่ละรายการ คัดลอกทั้งหมด หรือดาวน์โหลดเป็นไฟล์ข้อความที่มี UUID หนึ่งตัวต่อบรรทัด
- หากต้องการตรวจสอบ UUID ที่มีอยู่ ให้วางลงใน “ตรวจสอบ UUID”
วิธีการทำงาน
UUID (เรียกอีกอย่างว่า GUID) คือตัวระบุขนาด 128 บิต โดยปกติเขียนเป็นเลขฐานสิบหก 32 หลัก แบ่งเป็น 5 กลุ่ม: 8-4-4-4-12 หลักแรกของกลุ่มที่สามคือเวอร์ชัน และหลักแรกของกลุ่มที่สี่ระบุ variant (8, 9, a หรือ b สำหรับ UUID มาตรฐาน) รูปแบบนี้กำหนดไว้ใน RFC 9562 ซึ่งแทนที่ RFC 4122 ในปี 2024
UUID เวอร์ชัน 4 เป็นแบบสุ่ม เครื่องมือนี้ใช้ crypto.randomUUID เมื่อใช้ได้ และใช้ crypto.getRandomValues ในกรณีอื่น ซึ่งทั้งสองวิธีปลอดภัยในเชิงการเข้ารหัส และไม่ใช้ Math.random เลย ด้วยบิตสุ่ม 122 บิต โอกาสที่ UUID v4 สองค่าจะซ้ำกันมีน้อยมากจนแทบไม่ต้องกังวล: คุณต้องสร้างประมาณ 2.7 × 10^18 ค่า จึงจะมีโอกาส 50% ที่จะเจอค่าซ้ำหนึ่งคู่
UUID เวอร์ชัน 7 ขึ้นต้นด้วย Unix timestamp 48 บิตในหน่วยมิลลิวินาที ตามด้วยเวอร์ชัน ฟิลด์ 12 บิต และบิตสุ่ม 62 บิต เนื่องจากเวลาอยู่ส่วนหน้า ค่า v7 จึงเรียงลำดับตามเวลาที่สร้าง ซึ่งช่วยให้ดัชนีฐานข้อมูลมีขนาดกะทัดรัดและเพิ่มข้อมูลได้เร็วกว่าการใช้คีย์ v4 แบบสุ่ม เมื่อสร้าง UUID v7 หลายค่าในมิลลิวินาทีเดียวกัน เครื่องมือนี้ใช้ฟิลด์ 12 บิตเป็นตัวนับ (วิธีที่อธิบายใน RFC 9562 หัวข้อ 6.2) ดังนั้นค่าทั้งชุดจึงเรียงลำดับจากน้อยไปหามากอย่างเคร่งครัดเสมอ ทั้งนี้ UUID v7 จะเปิดเผยเวลาที่สร้าง
ตัวตรวจสอบรับ UUID ทั้งแบบมีหรือไม่มีขีดกลาง ตัวพิมพ์ใหญ่หรือพิมพ์เล็ก อยู่ในวงเล็บปีกกา หรือมีคำนำหน้า urn:uuid: โดยจะรายงานเวอร์ชันและ variant รู้จัก UUID พิเศษ nil และ max และแสดงเวลาการสร้างที่ฝังอยู่สำหรับเวอร์ชัน 1, 6 และ 7
ตัวอย่าง
คีย์หลักสำหรับตารางใหม่
สร้าง UUID v7 100 ค่าสำหรับข้อมูลทดสอบ เช่น 0192b3c4-5d6e-7f80-9a1b-2c3d4e5f6a7b ค่าเหล่านี้เรียงตามเวลาที่สร้าง ดังนั้นแถวที่เพิ่มทีหลังจะได้คีย์ที่มากกว่า คล้ายคอลัมน์ auto-increment
GUID สำหรับโปรเจกต์ Windows หรือ .NET
เปิดตัวเลือกตัวพิมพ์ใหญ่และวงเล็บปีกกาเพื่อให้ได้รูปแบบสไตล์รีจิสทรี {3F2504E0-4F89-41D3-9A0C-0305E82C3301} ซึ่งใช้ในไฟล์โปรเจกต์ Visual Studio, COM class IDs และ Windows registry
ตรวจสอบ ID จากล็อก
วาง 018f6e2c-1a2b-7c3d-8e4f-5a6b7c8d9e0f ลงในตัวตรวจสอบ ระบบจะรายงานว่าเป็นเวอร์ชัน 7 และ variant มาตรฐาน พร้อมถอดรหัส 12 หลักแรกเป็น timestamp ในเดือนพฤษภาคม 2024 ซึ่งบอกได้ว่าบันทึกถูกสร้างขึ้นเมื่อใด
คำถามที่พบบ่อย
ควรใช้ UUID v4 หรือ v7?
ใช้ v4 เมื่อต้องการให้ ID ไม่เปิดเผยข้อมูลใด ๆ เช่น โทเค็นสาธารณะหรือชื่อไฟล์ ใช้ v7 สำหรับคีย์ฐานข้อมูลและ ID เหตุการณ์ ซึ่งการเรียงลำดับตามเวลาช่วยเพิ่มประสิทธิภาพของดัชนี ทั้งสองแบบมีบิตสุ่มเพียงพอจนการชนกันไม่ใช่ปัญหาในทางปฏิบัติ
UUID เหล่านี้ไม่ซ้ำกันจริงหรือไม่?
ค่าเหล่านี้ไม่ได้ถูกตรวจสอบกับรายการใด ๆ แต่มาจากตัวสร้างสุ่มที่ปลอดภัยเชิงการเข้ารหัส ดังนั้นโอกาสซ้ำจึงต่ำมากจนไม่ต้องกังวลในระบบจริง ค่า v7 ยังรวมเวลาปัจจุบันไว้ด้วย
UUID กับ GUID เหมือนกันหรือไม่?
ใช่ GUID (globally unique identifier) เป็นชื่อที่ Microsoft ใช้เรียกรูปแบบ 128 บิตเดียวกัน GUID มักแสดงเป็นตัวพิมพ์ใหญ่และอยู่ในวงเล็บปีกกา ซึ่งคุณสามารถเปิดใช้ได้ที่นี่
ใช้ UUID เป็นรหัสผ่านหรือโทเค็นลับได้หรือไม่?
UUID v4 มีบิตสุ่ม 122 บิตซึ่งเดายาก แต่ UUID ถูกออกแบบมาเป็นตัวระบุ ไม่ใช่ข้อมูลลับ และมักปรากฏในบันทึกและ URL สำหรับ API key หรือลิงก์รีเซ็ต ควรใช้เครื่องมือสร้างโทเค็นสุ่มโดยเฉพาะ
เวลาประทับของ v7 ใช้นาฬิกาของคอมพิวเตอร์ฉันหรือไม่?
ใช่ ระบบอ่านจากนาฬิกาของอุปกรณ์ของคุณในหน่วยมิลลิวินาที UTC หากนาฬิกาไม่ตรง เวลาที่ฝังไว้ก็จะไม่ตรง แต่ ID ในชุดเดียวกันจะยังเรียงลำดับจากน้อยไปมาก
ความเป็นส่วนตัว
UUID ถูกสร้างในเบราว์เซอร์ของคุณด้วยตัวสร้างตัวเลขสุ่มเชิงการเข้ารหัส ค่าเหล่านี้จะไม่ถูกส่งไปยังเซิร์ฟเวอร์ ไม่ถูกจัดเก็บ และไม่ถูกบันทึก จึงไม่มีใครเห็นค่าที่คุณสร้างหรือตรวจสอบ