ข้ามไปยังเนื้อหาหลัก
FreeOnlineTools Go
ไทย
คำอธิบาย

UUID คืออะไร? คำอธิบายที่สมบูรณ์ของตัวระบุที่ไม่ซ้ำสากล

โดย FreeOnlineTools Team · อัปเดตเมื่อ 2026-09-02

ตอบด่วน

UUID คือ identifier 128-bit แสดงเป็น 36 อักขระ (hex 32 หลัก และ hyphen 4 ตัว) UUID ไม่ซ้ำโดยไม่ประสานงาน —ความน่าจะเป็น collision น้อยมาก UUID v4 (random) เป็นเวอร์ชันทั่วไป ใช้ UUID Generator ฟรีของเรา

การแนะนำ

UUID (Universally Unique Identifier) หรือ GUID (Globally Unique Identifier) ในคำศัพท์ Microsoft คือ identifier 128-bit ที่เกือบการันตีว่าไม่ซ้ำโดยไม่ต้องประสานงานกลาง UUID กำหนดโดย RFC 4122 ใช้เป็น primary key ฐานข้อมูล, request ID, session token และ identifier ระบบกระจาย เวอร์ชันทั่วไปคือ UUID v4 ที่ใช้ bit สุ่ม

ทีละขั้นตอน

  1. ทำความเข้าใจโครงสร้าง UUID

    UUID คือ 128 บิต ซึ่งแสดงเป็นเลขฐานสิบหก 32 หลักใน 5 กลุ่ม: 8-4-4-4-12 คั่นด้วยเครื่องหมายขีดกลาง (เช่น 550e8400-e29b-41d4-a716-446655440000) หลักที่ 13 ระบุรุ่น (4 สำหรับ v4) และหลักที่ 17 ระบุรุ่น

  2. เรียนรู้เวอร์ชัน UUID

    v1: ตามเวลา (การประทับเวลา + ที่อยู่ MAC) — เรียงลำดับเวลาแต่ข้อมูลประจำตัวรั่วไหล v3: ตามชื่อที่มีการแฮช MD5 v4: สุ่ม — พบบ่อยที่สุด ไม่ต้องกังวลเรื่องความเป็นส่วนตัว v5: ตามชื่อที่มีการแฮช SHA-1 v6 และ v7: เรียงลำดับตามเวลาพร้อมความเป็นส่วนตัวที่ได้รับการปรับปรุงมากกว่า v1

  3. ทำความเข้าใจความน่าจะเป็นของการชนกัน

    UUID v4 มีค่าที่เป็นไปได้ 2^122 ค่า ความน่าจะเป็นที่จะเกิดการชนกันระหว่าง UUID จำนวน 103 ล้านล้าน UUID คือ 50% สำหรับการใช้งานจริง (ID หลายล้านรายการ) ความน่าจะเป็นของการชนกันจะเป็นศูนย์ คุณสามารถสร้าง UUID ได้อย่างอิสระโดยไม่ต้องมีการประสานงาน

  4. ใช้ UUID อย่างเหมาะสม

    ใช้ v4 สำหรับกรณีการใช้งานเกือบทั้งหมด (รหัสฐานข้อมูล, รหัสคำขอ, โทเค็นเซสชัน) ใช้ v7 หากคุณต้องการ ID ที่เรียงลำดับตามเวลาสำหรับตำแหน่งฐานข้อมูล หลีกเลี่ยง v1 ในบริบทที่คำนึงถึงความปลอดภัย — มันฝังการประทับเวลาและที่อยู่ MAC

ตัวอย่าง

UUID v4 (สุ่ม)

ป้อนข้อมูล: สร้างด้วย crypto.getRandomValues

เอาท์พุต: 550e8400-e29b-41d4-a716-446655440000

UUID v1 (ตามเวลา)

ป้อนข้อมูล: การประทับเวลา + ที่อยู่ MAC

เอาท์พุต: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1

ไม่มี UUID

ป้อนข้อมูล: All zeros

เอาท์พุต: 00000000-0000-0000-0000-000000000000

ปัญหาทั่วไป

  • การใช้ Math.random() สำหรับ UUID —ไม่มีการเข้ารหัสที่ปลอดภัย ใช้ crypto.getRandomValues() หรือ crypto.randomUUID() ในเบราว์เซอร์
  • การจัดเก็บ UUID เป็นสตริง — สตริง UUID คือ 36 ไบต์ เก็บไว้เป็นประเภท UUID (16 ไบต์) ซึ่งมีประสิทธิภาพมากกว่า ใช้ประเภท UUID ดั้งเดิมในฐานข้อมูลเมื่อพร้อมใช้งาน
  • การใช้ v1 ในบริบทที่คำนึงถึงความปลอดภัย —v1 จะฝังการประทับเวลาและที่อยู่ MAC ไว้ ซึ่งสามารถรั่วไหลข้อมูลเกี่ยวกับเวลาและสถานที่ที่ถูกสร้างขึ้นได้ ใช้ v4 สำหรับการไม่เปิดเผยตัวตน
  • สมมติว่า UUID มีลักษณะเฉพาะอย่างแท้จริง - มีลักษณะเฉพาะในทางปฏิบัติ (ความน่าจะเป็นของการชนกันมีน้อยมาก) แต่ไม่รับประกันว่าจะไม่ซ้ำกันในทางคณิตศาสตร์

เคล็ดลับ

  • ใช้ UUID v4 สำหรับกรณีการใช้งานเกือบทั้งหมด —เป็นการสุ่ม ไม่ต้องกังวลเรื่องความเป็นส่วนตัว และได้รับการสนับสนุนจากฐานข้อมูลสมัยใหม่ทั้งหมด
  • ใช้ crypto.randomUUID() ในเบราว์เซอร์สมัยใหม่สำหรับตัวสร้าง v4 ในตัวที่ไม่มีไลบรารี
  • จัดเก็บ UUID เป็นประเภท UUID/GUID ในฐานข้อมูล (16 ไบต์) แทนที่จะเป็นสตริง (36 ไบต์) เพื่อการจัดเก็บและประสิทธิภาพดัชนีที่ดีขึ้น
  • ใช้ UUID Generator ของเราเพื่อสร้าง UUID ในเบราว์เซอร์ของคุณได้ทันที ไม่ต้องสมัคร เป็นส่วนตัวโดยสมบูรณ์

เครื่องมือที่เกี่ยวข้อง

คำแนะนำที่เกี่ยวข้อง

อ้างอิง