ตัวสร้าง UUID / GUID

สร้าง UUID แบบ v1, v4 หรือ v5 — จำนวนมาก จัดรูปแบบ พร้อมคำนำหน้า/ต่อท้ายเสริม

ข้อมูลอ้างอิงเวอร์ชัน


v4 — สุ่ม

UUID เวอร์ชัน 4 ถูกสร้างขึ้นทั้งหมดจากไบต์สุ่ม (หรือสุ่มเทียม) โดย 122 จาก 128 บิตเป็นแบบสุ่ม ส่วนอีก 6 บิตที่เหลือเข้ารหัสเวอร์ชัน (4) และตัวแปร เนื่องจากไม่มีข้อมูลที่มีโครงสร้าง UUID แบบ v4 จึงเป็นตัวเลือกที่ง่ายที่สุด ไม่ต้องมีสถานะร่วม ไม่ต้องมีนาฬิกาเครือข่าย และไม่ต้องมีการประสานงานเนมสเปซ ความน่าจะเป็นในการสร้างค่าซ้ำต่ำมากอย่างมหาศาล ใช้ v4 เป็นค่าเริ่มต้นสำหรับคีย์หลักของฐานข้อมูล โทเคนเซสชัน และบริบทใดๆ ที่ต้องการความไม่ซ้ำแต่ไม่ต้องการการเรียงลำดับตามเวลา

Wikipedia — UUID Version 4 (random)

v1 — อิงตามเวลา

UUID เวอร์ชัน 1 ฝังไทม์สแตมป์ขนาด 60 บิต (ช่วงเวลา 100 นาโนวินาทีนับตั้งแต่วันที่ 15 ตุลาคม 1582 ซึ่งเป็นวันปฏิรูปปฏิทินเกรกอเรียน) ลำดับนาฬิกาขนาด 14 บิต และตัวระบุโหนดขนาด 48 บิต (ในอดีตคือที่อยู่ MAC ของเครื่องที่สร้าง) เนื่องจากไทม์สแตมป์เป็นองค์ประกอบที่มีนัยสำคัญที่สุด UUID แบบ v1 จึงเรียงตามลำดับเวลาเมื่อเปรียบเทียบเชิงพจนานุกรม — คุณสมบัติที่มีประโยชน์สำหรับดัชนีฐานข้อมูลแบบคลัสเตอร์ ข้อแลกเปลี่ยนคือความเป็นส่วนตัว UUID แบบ v1 เปิดเผยที่อยู่ MAC ของเครื่องและเวลาที่สร้างที่แน่นอน การใช้งานสมัยใหม่จึงแทนที่ด้วยโหนดสุ่มเพื่อหลีกเลี่ยงการเปิดเผยนั้น

Wikipedia — UUID Version 1 (time-based)

v5 — เนมสเปซ + ชื่อ (SHA-1)

UUID เวอร์ชัน 5 เป็นแบบคาดเดาได้ เมื่อกำหนด UUID เนมสเปซเดียวกันและสตริงชื่อเดียวกัน ผลลัพธ์จะเหมือนเดิมเสมอ อัลกอริทึมจะเชื่อมไบต์เนมสเปซและชื่อที่เข้ารหัส UTF-8 เข้าด้วยกัน แฮชด้วย SHA-1 แล้วพับไดเจสต์ขนาด 160 บิตให้เหลือ 128 บิต (กำหนดบิตเวอร์ชันเป็น 5 และตัวแปร RFC 4122) สิ่งนี้ทำให้ v5 เหมาะอย่างยิ่งสำหรับการสร้างตัวระบุที่เสถียรและทำซ้ำได้ — ตัวอย่างเช่น การแมป URL ไปยัง UUID ที่ไม่เปลี่ยนแปลง หรือการแปลงคีย์สตริงแบบเก่าเป็น UUID โดยไม่ต้องมีตารางค้นหา v3 ใช้ MD5 แทน ส่วน v5 เป็นที่นิยมกว่าเพราะ SHA-1 สร้างการชนกันน้อยกว่า

Wikipedia — UUID Version 5 (name-based)