UltKit
รูปภาพ11
PDF13
เอกสารและข้อมูล7
วิดีโอ6
เสียง4
เครื่องมืออื่น ๆ22

สร้าง UUID

สร้าง UUID เวอร์ชัน 4 แบบสุ่มได้ครั้งละ 1 ถึง 100 รายการ แล้วคัดลอกออกไปเป็นรายการได้ทันที ค่าทั้งหมดมาจากตัวสร้างค่าสุ่มของเบราว์เซอร์ที่ปลอดภัยในระดับการเข้ารหัส และมีตัวตรวจสอบที่บอกเวอร์ชันและ variant ของ UUID ที่คุณวางลงไป

0 ตัวอักษร · 0 คำ · 0 บรรทัด

ทำงานทั้งหมดภายในแท็บเบราว์เซอร์นี้ ข้อความของคุณจะไม่ถูกอัปโหลดหรือจัดเก็บไว้

เวอร์ชันของ UUID

เวอร์ชันคือหลักแรกของกลุ่มที่สาม ส่วน variant ถูกเข้ารหัสไว้ในหลักแรกของกลุ่มที่สี่ (8, 9, a หรือ b สำหรับ UUID ตาม RFC) ตัวอย่างทั้งหมดเป็นเวกเตอร์ทดสอบจาก RFC 9562

เวอร์ชันสร้างจากตัวอย่าง
v1เวลาแบบเกรกอเรียน + รหัสโหนด (MAC)c232ab00-9414-11ec-b3c8-9f6bdeced846
v3แฮช MD5 ของ namespace + ชื่อ5df41881-3aed-3515-88a7-2f4a814cf09e
v4บิตสุ่ม 122 บิต919108f7-52d1-4320-9bac-f847db4148a8
v5แฮช SHA-1 ของ namespace + ชื่อ2ed6657d-e927-568b-95e1-2665a8aea6a2
v6เวลาแบบ v1 ที่จัดลำดับใหม่เพื่อให้ ID เรียงตามเวลา1ec9414c-232a-6b00-b3c8-9f6bdeced846
v7มิลลิวินาทีแบบ Unix + บิตสุ่ม เรียงลำดับได้017f22e2-79b0-7cc3-98c4-dc0c0c07398f
v8โครงสร้างแบบกำหนดเองโดยแอปพลิเคชัน2489e9ad-2ee2-8e00-8ec9-32d5f69181c0

UUID คืออะไรและอ่านอย่างไร

UUID (ตัวระบุที่ไม่ซ้ำกันทั่วโลก เรียกว่า GUID ในซอฟต์แวร์ของ Microsoft) คือตัวเลขขนาด 128 บิตที่เขียนเป็นเลขฐานสิบหก 32 หลัก แบ่งเป็นกลุ่ม 8-4-4-4-12 เช่น f47ac10b-58cc-4372-a567-0e02b2c3d479 UUID ถูกกำหนดเป็นมาตรฐานใน RFC 4122 เมื่อปี 2005 และในเดือนพฤษภาคม 2024 เอกสารฉบับนี้ถูกแทนที่ด้วย RFC 9562 ซึ่งยังคงเวอร์ชันเดิมไว้และเพิ่มเวอร์ชันใหม่อีกสามเวอร์ชัน มีสองตำแหน่งที่ถูกกำหนดตายตัว คือหลักแรกของกลุ่มที่สามเป็นเวอร์ชัน (เลข 4 ใน 4372) และหลักแรกของกลุ่มที่สี่แสดงแวริแอนต์ ซึ่งเป็น 8, 9, a หรือ b สำหรับ UUID ทุกตัวที่เป็นไปตาม RFC

เวอร์ชัน 4 ใช้ข้อมูลสุ่มเติมในอีก 122 บิตที่เหลือ พื้นที่นี้ใหญ่มากจนต้องสร้างประมาณ 2.7 ควินทิลเลียน (2.7 × 10¹⁸) ตัว จึงจะมีโอกาส 50% ที่จะซ้ำกันสักหนึ่งคู่ ระบบต่าง ๆ จึงสร้าง ID แบบ v4 แยกกันในหลายเครื่องได้โดยไม่ต้องประสานงานกัน หน้านี้ใช้ crypto.randomUUID หรือ crypto.getRandomValues ในกรณีที่ไม่มีตัวแรก และไม่ใช้ Math.random เพราะผลลัพธ์ไม่ได้ออกแบบมาให้คาดเดาไม่ได้ ตัวเลือก Uppercase และ Without hyphens เปลี่ยนเฉพาะรูปแบบการแสดงผล ค่ายังเหมือนเดิม และตัวแยกวิเคราะห์ส่วนใหญ่รับได้ทั้งตัวพิมพ์เล็กและใหญ่

v4, v7 และเวอร์ชันอื่น ๆ

เวอร์ชัน 1 และ 6 สร้างจากเวลาและ ID ของโหนด ซึ่งเดิมคือ MAC address ของคอมพิวเตอร์ จึงเปิดเผยว่า ID ถูกสร้างที่ไหนและเมื่อใด เวอร์ชัน 3 และ 5 แฮชเนมสเปซกับชื่อด้วย MD5 หรือ SHA-1 ดังนั้นอินพุตเดิมจะได้ UUID เดิมเสมอ เวอร์ชัน 8 เป็นโครงสร้างอิสระสำหรับรูปแบบที่กำหนดเอง ส่วนเวอร์ชันใหม่ที่สำคัญที่สุดคือเวอร์ชัน 7 ซึ่งขึ้นต้นด้วยเวลา Unix ขนาด 48 บิตหน่วยมิลลิวินาที แล้วเติมบิตสุ่มในส่วนที่เหลือ ทำให้ ID เรียงตามเวลาที่สร้างได้

การเรียงลำดับแบบนี้คือเหตุผลที่ควรพิจารณา v7 เป็นคีย์หลักของฐานข้อมูล คีย์ v4 แบบสุ่มจะกระจายไปทั่วดัชนี B-tree ทำให้หน้าแตกและแคชทำงานแย่ลงเมื่อตารางโตขึ้น ส่วนคีย์ v7 เข้ามาในลำดับที่เพิ่มขึ้นโดยประมาณเหมือนคอลัมน์ auto-increment แต่ยังสร้างได้โดยไม่ต้องมีตัวนับกลาง เลือก v4 เมื่อต้องการ ID ที่ไม่เปิดเผยอะไรเลย รวมถึงเวลาที่สร้าง เลือก v7 เมื่อประสิทธิภาพการแทรกข้อมูลและการเรียงตามเวลาสำคัญ UUID เป็นตัวระบุ ไม่ใช่ความลับ สำหรับรหัสผ่านและ API secret ให้ใช้เครื่องมือสร้างรหัสผ่านโดยเฉพาะ ดูตัวเข้ารหัสและเครื่องมือตรวจสอบอื่น ๆ ได้ที่เครื่องมือสำหรับนักพัฒนา

คำถามที่พบบ่อย

UUID ที่สุ่มขึ้นมาสองค่าจะซ้ำกันได้หรือไม่
ในทางทฤษฎีเป็นไปได้ แต่ในทางปฏิบัติไม่เกิดขึ้น ด้วยบิตสุ่ม 122 บิต แม้สร้าง UUID v4 หนึ่งพันล้านตัวต่อวินาทีนานราว 86 ปี ก็มีโอกาสชนกันเพียงประมาณ 50% ตราบเท่าที่แหล่งสุ่มน่าเชื่อถือ
UUID กับ GUID ต่างกันอย่างไร
ในเนื้อแท้ไม่ต่างกัน GUID คือชื่อที่ Microsoft ใช้เรียกตัวระบุ 128 บิตแบบเดียวกัน เครื่องมือของ Microsoft บางตัวแสดง GUID เป็นตัวพิมพ์ใหญ่หรือครอบด้วยปีกกา ซึ่งตัวตรวจสอบในหน้านี้รองรับ
จะรู้ได้อย่างไรว่า UUID เป็นเวอร์ชันใด
ดูหลักแรกของกลุ่มที่สาม: 4 คือแบบสุ่ม 7 คือเรียงตามเวลา 1 คือเวลาบวกโหนด วางลงใน Check a UUID เพื่อดูเวอร์ชันและแวริแอนต์
ควรใช้ UUIDv7 แทน v4 เป็นคีย์ฐานข้อมูลหรือไม่
มักใช้ได้ คีย์ v7 เรียงตามเวลา ช่วยให้ดัชนี B-tree กะทัดรัดและแทรกข้อมูลได้เร็ว ให้ใช้ v4 ต่อไปหากเวลาสร้างที่ฝังอยู่ใน ID แบบ v7 ควรเป็นความลับ
ใช้ UUID เป็นโทเค็นรีเซ็ตรหัสผ่านได้อย่างปลอดภัยหรือไม่
UUID v4 จากตัวสร้างที่ปลอดภัยมีบิตสุ่ม 122 บิต เพียงพอที่จะคาดเดาไม่ได้ แต่ไลบรารีจำนวนมากมีฟังก์ชันโทเค็นโดยเฉพาะพร้อมกำหนดวันหมดอายุชัดเจน ห้ามใช้เวอร์ชันที่อิงเวลา เช่น v1 หรือ v7 เป็นความลับ