สร้างค่า 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 เป็นค่าลับ
สร้าง 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 แบบกำหนดได้