ข้ามไปยังเนื้อหาหลัก

สร้างค่า UUID v5 แบบกำหนดได้

UUID เวอร์ชัน 5 คำนวณจาก UUID ของเนมสเปซและชื่อด้วย SHA-1 ใครก็ตามที่แฮชเนมสเปซเดียวกันและชื่อเดียวกันจะได้ UUID เดียวกันทุกประการ จึงคำนวณ ID ใหม่ได้โดยไม่ต้องจัดเก็บ

ตัวอย่างการคำนวณ

เนมสเปซ (UUID)
DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
ชื่อ
example.com
ผลลัพธ์
cfbff0d1-9375-5685-968c-48ce8b15ae17
เนมสเปซ (UUID)
DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
ชื่อ
Example.com
ผลลัพธ์
a1feb884-07f5-5a14-8edb-cb659a7fbadc

หลักการทำงาน

  • นำ 16 ไบต์ของเนมสเปซมาต่อกับไบต์ UTF-8 ของชื่อ แล้วแฮชด้วย SHA-1 จากนั้น 16 ไบต์แรกของผลแฮชจะกลายเป็น UUID หลังจากตั้งบิตเวอร์ชัน (5) และบิตตัวแปร
  • RFC 9562 กำหนดเนมสเปซไว้ล่วงหน้าสำหรับชื่อ DNS, URL, ISO OID และชื่อเฉพาะ X.500 และคุณยังใช้ UUID ของคุณเองเป็นเนมสเปซส่วนตัวได้
  • ชื่อจะถูกเปรียบเทียบทีละไบต์ ตัวพิมพ์ใหญ่เล็ก ช่องว่าง และเครื่องหมายทับท้ายล้วนทำให้ผลลัพธ์เปลี่ยน จึงควรปรับชื่อให้เป็นมาตรฐานก่อน และเนื่องจากผลลัพธ์คาดเดาได้ ห้ามใช้ UUID v5 เป็นค่าลับ
เวอร์ชัน UUID

สร้าง 1-100 UUID พร้อมกัน

เนมสเปซ DNS: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 (ค่าเริ่มต้น)

ชื่อที่จะแฮช (เช่น ชื่อโดเมน อีเมล ฯลฯ)

เกี่ยวกับ UUID

UUID v1: UUID ตามเวลาที่รวมไทม์สแตมป์และที่อยู่ MAC ของคอมพิวเตอร์ที่สร้าง UUID มีประโยชน์เมื่อคุณต้องการทราบว่า UUID ถูกสร้างขึ้นเมื่อใด

UUID v4: UUID ที่สร้างแบบสุ่ม นี่คือเวอร์ชันที่ใช้กันมากที่สุดและให้ความไม่ซ้ำที่ดีพร้อมการรั่วไหลของข้อมูลน้อยที่สุด

UUID v5: UUID ตามชื่อโดยใช้การแฮช SHA-1 ด้วยเนมสเปซและชื่อเดียวกัน คุณจะได้รับ UUID เดียวกันเสมอ มีประโยชน์สำหรับการสร้าง UUID แบบกำหนดได้

คู่มือ UUID อื่น ๆ