สร้าง UUID

ตัวตรวจสอบ UUID

รูปแบบ UUID

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
น้ำเงิน: time_low (8 hex)
เขียว: time_mid (4 hex)
อำพัน (M): version + time_hi (4 hex)
ม่วง (N): variant + clock_seq (4 hex)
แดง: node (12 hex)
รวม: 128 บิต / 32 ตัวอักษร hex

เกี่ยวกับ UUID

UUID (Universally Unique Identifier) หรือที่รู้จักกันในชื่อ GUID (Globally Unique Identifier) เป็นตัวเลข 128 บิตที่ระบุข้อมูลในระบบคอมพิวเตอร์อย่างเฉพาะเจาะจง UUID เป็นมาตรฐานตาม RFC 4122 และใช้กันอย่างแพร่หลายในฐานข้อมูล ระบบกระจาย และ API เพื่อสร้างคีย์เฉพาะโดยไม่ต้องมีการประสานงานส่วนกลาง

UUID v4 (สุ่ม) และ v1 (ตามเวลา)
สร้างจำนวนมากได้ถึง 500 UUID
ตัวตรวจสอบ UUID ในตัว
ประมวลผล 100% ฝั่งไคลเอนต์

คู่มือฉบับสมบูรณ์เกี่ยวกับ UUID (Universally Unique Identifiers)

เครื่องมือสร้าง UUID/GUID ออนไลน์ฟรี

สร้าง UUID (Universally Unique Identifiers) หรือ GUID (Globally Unique Identifiers) ทันทีในเบราว์เซอร์ของคุณ เครื่องมือของเรารองรับ UUID เวอร์ชัน 4 (สุ่ม), เวอร์ชัน 1 (ตามเวลา) และ nil UUID สร้างเดี่ยวหรือจำนวนมากได้ถึง 500 ครั้งเดียว ตรวจสอบ UUID ที่มีอยู่ และปรับแต่งรูปแบบผลลัพธ์ด้วยตัวเลือกตัวพิมพ์ใหญ่และไม่มีขีด การสร้างทั้งหมดเกิดขึ้นฝั่งไคลเอนต์โดยใช้ Web Crypto API — ไม่มีข้อมูลถูกส่งไปยังเซิร์ฟเวอร์ใด ๆ

อธิบายเวอร์ชัน UUID

🎲 UUID v4 (สุ่ม)

  • สร้างจากตัวเลขสุ่ม/เทียมสุ่ม
  • ความสุ่ม 122 บิต
  • เวอร์ชันที่ใช้กันมากที่สุด
  • ความน่าจะเป็นของการชนกัน: 1 ใน 2^122
  • ดีที่สุดสำหรับ ID เฉพาะทั่วไป

⏰ UUID v1 (ตามเวลา)

  • อิงจาก timestamp + node ID
  • รวมข้อมูลเวลาและ MAC
  • รับประกันความเฉพาะข้ามเครื่อง
  • เรียงลำดับตามเวลาสร้าง
  • ดีสำหรับระบบกระจาย

🔑 UUID v3 (ตาม MD5 Name)

  • ดีเทอร์มินิสติก — ชื่อเดียวกัน = UUID เดียวกัน
  • ใช้การแฮช MD5 ของ namespace + name
  • ทำซ้ำได้ข้ามระบบ
  • ดีสำหรับรูปแบบการตั้งชื่อที่สม่ำเสมอ
  • ใช้น้อยกว่า v4 หรือ v5

🏷️ UUID v5 (ตาม SHA-1 Name)

  • ดีเทอร์มินิสติก — ชื่อเดียวกัน = UUID เดียวกัน
  • ใช้การแฮช SHA-1 (ปลอดภัยกว่า v3)
  • แนะนำเหนือ v3 สำหรับแอปพลิเคชันใหม่
  • ทำซ้ำได้ข้ามระบบ
  • ดีสำหรับการอ้างอิงเนื้อหา

วิธีใช้เครื่องมือสร้าง UUID

  1. เลือกเวอร์ชัน: เลือก UUID v4 (สุ่ม), v1 (ตามเวลา) หรือ Nil UUID
  2. ตั้งจำนวน: ป้อนจำนวน UUID ที่ต้องการสร้าง (1 ถึง 500)
  3. เลือกรูปแบบ: สลับตัวเลือกตัวพิมพ์ใหญ่ และ/หรือ ไม่มีขีดตามต้องการ
  4. สร้าง: คลิกปุ่ม "สร้าง UUID" เพื่อสร้าง UUID ของคุณทันที
  5. คัดลอก: คลิก "คัดลอก" บน UUID แต่ละตัว หรือ "คัดลอกทั้งหมด" เพื่อรับผลลัพธ์ทั้งหมด

กรณีใช้งานทั่วไปของ UUID

คีย์หลักฐานข้อมูล: UUID ใช้เป็นคีย์หลักในฐานข้อมูล (PostgreSQL, MySQL, MongoDB) เพื่อหลีกเลี่ยงการชนกันของจำนวนเต็มในระบบกระจาย ทำให้สามารถรวมข้อมูลจากหลายแหล่งโดยไม่มีความขัดแย้งของคีย์

ตัวระบุทรัพยากร API: RESTful API ใช้ UUID เพื่อระบุทรัพยากร (ผู้ใช้ คำสั่งซื้อ เซสชัน) อย่างเฉพาะเจาะจง UUID ไม่เป็นลำดับ ทำให้คาดเดาได้ยากขึ้น ซึ่งเพิ่มความปลอดภัยของ API

ระบบกระจาย: ในไมโครเซอร์วิสและสถาปัตยกรรมกระจาย แต่ละบริการสามารถสร้าง ID เฉพาะได้อย่างอิสระโดยไม่ต้องมีการประสานงานส่วนกลางหรือตัวนับร่วม

การจัดการเซสชันและโทเค็น: UUID ใช้กันทั่วไปสำหรับโทเค็นเซสชัน โทเค็น CSRF โทเค็นรีเซ็ตรหัสผ่าน และลิงก์ยืนยันอีเมล ให้ตัวระบุเฉพาะที่คาดเดาไม่ได้

การตั้งชื่อไฟล์: ใช้ UUID เพื่อสร้างชื่อไฟล์เฉพาะสำหรับไฟล์ที่อัปโหลด หลีกเลี่ยงการชนกันของชื่อและทำให้ URL คาดเดาไม่ได้เพื่อความปลอดภัย

คิวข้อความ: ระบบข้อความเช่น RabbitMQ, Kafka และ SQS ใช้ UUID เพื่อระบุข้อความอย่างเฉพาะเจาะจงและรับประกันการประมวลผลแบบ idempotent

Correlation IDs: ในการบันทึกล็อกและการสังเกตการณ์ UUID ติดตามคำขอข้ามหลายบริการ ทำให้สามารถติดตามคำขอแบบ end-to-end ในระบบกระจาย

รูปแบบและโครงสร้าง UUID

รูปแบบมาตรฐาน: ตัวเลขฐาน 16 จำนวน 8-4-4-4-12 ตัว คั่นด้วยขีด

ตัวอย่าง: 550e8400-e29b-41d4-a716-446655440000

ขนาดรวม: 128 บิต (16 ไบต์) แสดงเป็นอักขระฐาน 16 จำนวน 32 ตัว

หลักเวอร์ชัน: ตัวเลขฐาน 16 ตัวที่ 13 (ตำแหน่ง M) ระบุเวอร์ชัน UUID (1-5)

บิตตัวแปร: ตัวเลขฐาน 16 ตัวที่ 17 (ตำแหน่ง N) ระบุตัวแปร (8, 9, a หรือ b สำหรับ RFC 4122)

จำนวน UUID ที่เป็นไปได้ทั้งหมด: 2¹²² ≈ 5.3 × 10³⁶ สำหรับ v4 (มากกว่าจำนวนอะตอมบนพื้นผิวโลกที่ประมาณไว้)

ทำไมต้องใช้เครื่องมือสร้าง UUID ของเรา?

ฟรี 100% และไม่จำกัด: สร้าง UUID ไม่จำกัดโดยไม่ต้องลงทะเบียน สมัครสมาชิก หรือมีข้อจำกัด

ความเป็นส่วนตัวสมบูรณ์: การสร้าง UUID ทั้งหมดเกิดขึ้นในเบราว์เซอร์โดยใช้ Web Crypto API ไม่มีข้อมูลถูกส่งไปยังเซิร์ฟเวอร์ใด ๆ

ปลอดภัยด้วยการเข้ารหัสลับ: UUID v4 ใช้ crypto.randomUUID() หรือ crypto.getRandomValues() สำหรับความสุ่มที่แท้จริง

สร้างจำนวนมาก: สร้างได้ถึง 500 UUID ในครั้งเดียวสำหรับการดำเนินการแบบกลุ่ม การเพาะฐานข้อมูล หรือการทดสอบ

ตัวตรวจสอบในตัว: วาง UUID ใดก็ได้เพื่อตรวจสอบรูปแบบ ตรวจจับเวอร์ชัน และตรวจสอบตัวแปร

ผลลัพธ์ยืดหยุ่น: ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก มีหรือไม่มีขีด — ปรับแต่งรูปแบบให้ตรงกับความต้องการของคุณ

UUID เทียบกับโซลูชัน Unique ID อื่น ๆ

UUID vs Auto-Increment: Auto-increment ID เป็นลำดับ คาดเดาได้ และต้องการฐานข้อมูลส่วนกลาง UUID เป็นแบบสุ่ม คาดเดาไม่ได้ และสร้างได้ทุกที่โดยไม่ต้องประสานงาน UUID เหมาะสำหรับระบบกระจาย

UUID vs ULID: ULID (Universally Unique Lexicographically Sortable Identifier) เรียงลำดับตามเวลาได้และกระชับกว่าในรูปแบบสตริง UUID ได้รับการสนับสนุนอย่างแพร่หลายกว่าและเป็นมาตรฐาน (RFC 4122)

UUID vs Snowflake ID: Snowflake ID (ใช้โดย Twitter/X, Discord) เป็น 64 บิต เรียงลำดับได้ และต้องการการประสานงาน worker UUID เป็น 128 บิต กระจายอำนาจอย่างเต็มที่ และไม่ต้องการโครงสร้างพื้นฐาน

UUID vs NanoID: NanoID เล็กกว่า (21 ตัวอักษร vs 36) เป็นมิตรกับ URL และปรับแต่งได้ UUID เป็นมาตรฐานมากกว่าและเป็นที่รู้จักในทุกแพลตฟอร์มและภาษา

แนวทางปฏิบัติที่ดีที่สุด

  • ใช้ v4 เป็นค่าเริ่มต้น: UUID v4 (สุ่ม) เป็นตัวเลือกที่ใช้กันมากที่สุดและแนะนำสำหรับการสร้างตัวระบุเฉพาะในแอปพลิเคชันส่วนใหญ่
  • จัดเก็บเป็นไบนารี: ในฐานข้อมูล จัดเก็บ UUID เป็น BINARY(16) หรือประเภท UUID เนทีฟแทน VARCHAR(36) เพื่อประสิทธิภาพและประสิทธิผลการจัดเก็บที่ดีขึ้น
  • พิจารณาการทำดัชนี: UUID แบบสุ่มอาจทำให้เกิดการแตกกระจายของดัชนีในดัชนี B-tree พิจารณา UUID v7 หรือ ULID สำหรับทางเลือกที่เรียงลำดับตามเวลาได้
  • อย่าพึ่งพาความลับ: แม้ UUID จะคาดเดาได้ยาก (v4 มีบิตสุ่ม 122 บิต) แต่ไม่ควรเป็นกลไกความปลอดภัยเพียงอย่างเดียว ควรเพิ่มการยืนยันตัวตนและการอนุญาตที่เหมาะสม
  • ไม่ต้องสนใจตัวพิมพ์: การเปรียบเทียบ UUID ควรไม่สนใจตัวพิมพ์ จัดเก็บและเปรียบเทียบเป็นตัวพิมพ์เล็กเพื่อความสม่ำเสมอ
  • ใช้ประเภทเนทีฟ: PostgreSQL มีประเภท UUID เนทีฟ MySQL 8.0+ มีฟังก์ชัน UUID ใช้แทนการจัดเก็บแบบสตริงเมื่อมีให้ใช้
  • ตรวจสอบอินพุต: ตรวจสอบรูปแบบ UUID เสมอเมื่อรับ UUID จากอินพุตผู้ใช้หรือ API ภายนอก

เหมาะสำหรับ

  • นักพัฒนา Backend และ Full-stack
  • ผู้ดูแลฐานข้อมูล
  • นักออกแบบและสถาปนิก API
  • วิศวกร DevOps
  • ผู้ทดสอบ QA และวิศวกรออโตเมชัน
  • วิศวกรข้อมูล
  • นักพัฒนาไมโครเซอร์วิส
  • นักพัฒนาแอปมือถือ
  • นักออกแบบระบบ IoT
  • ผู้จัดการโปรเจกต์เทคนิค
  • นักศึกษาเรียนรู้ระบบกระจาย
  • ผู้ร่วมพัฒนาโอเพนซอร์ส

🔒 รับประกันความเป็นส่วนตัว 100%

การสร้าง UUID ทั้งหมดดำเนินการในเบราว์เซอร์ของคุณโดยใช้ Web Crypto API ไม่มีข้อมูลถูกอัปโหลดไปยังเซิร์ฟเวอร์ จัดเก็บในฐานข้อมูล บันทึกล็อก หรือส่งต่อให้บุคคลที่สาม UUID ที่สร้างขึ้นปลอดภัยด้วยการเข้ารหัสลับและไม่เคยออกจากอุปกรณ์ของคุณ

เรียนรู้เพิ่มเติมเกี่ยวกับ UUID

เจาะลึกเกี่ยวกับตัวระบุเฉพาะสากล — วิธีการทำงาน เปรียบเทียบเวอร์ชัน UUID ความน่าจะเป็นของการชนกัน แนวทางปฏิบัติที่ดีสำหรับฐานข้อมูล และวิวัฒนาการจาก v4 ถึง v7

อ่านบทความฉบับเต็ม