ตัวสร้าง UUID

UUID v4 เป็นตัวระบุสุ่ม 128 บิตในรูปแบบ hex 8-4-4-4-12 (เช่น 550e8400-e29b-41d4-a716-446655440000) ใช้เป็นคีย์หลักฐานข้อมูล, correlation ID และความไม่ซ้ำของชื่อไฟล์โดยไม่ต้องมีตัวจัดสรรกลาง สร้างในเครื่องด้วย crypto.getRandomValues เมื่อมี

วิธีสร้าง UUID

1. คลิกสร้าง (หรือสร้างหลายรายการหากรองรับ)
2. คัดลอก UUID ไปคลิปบอร์ด
3. วางในคำขอ API, SQL insert หรือคอนฟิก
4. เก็บตัวพิมพ์เล็กอย่างสม่ำเสมอหากฐานข้อมูลแยกตัวพิมพ์

กรณีใช้ UUID

คีย์หลักฐานข้อมูล

แทรกผู้ใช้ด้วย id เป็น UUID แทนจำนวนเต็มลำดับ — ปลอดภัยสำหรับ API สาธารณะโดยไม่ถูกแจงนับ

รหัส correlation ของคำขอ

เพิ่มส่วนหัว X-Request-ID ด้วย UUID ใหม่ต่อ HTTP call สำหรับล็อก distributed tracing

คำนำหน้าคีย์อ็อบเจกต์ S3

uploads/{uuid}/photo.jpg หลีกเลี่ยงการชนชื่อไฟล์ในบัคเก็ตที่ใช้ร่วม

เมื่อ UUID v4 เหมาะ

เมื่อ ID ต้องไม่ซ้ำข้ามระบบกระจายโดยไม่ต้องประสาน
เมื่อเปิดเผย ID สาธารณะ — UUID สุ่มต้านการเดา
เมื่อรวมข้อมูลจากไคลเอนต์ออฟไลน์โดยไม่ชน ID

nibble เวอร์ชัน

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

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

UUID v4 กับ v1?

v4 เป็นสุ่ม v1 รวม timestamp และโหนดจาก MAC — นิยม v4 เพื่อความเป็นส่วนตัว

โอกาสชนกัน?

ต่ำมากในทางปฏิบัติ — birthday paradox ไม่เกี่ยวกับที่ขนาดแอป

ตัวพิมพ์ใหญ่หรือเล็ก?

RFC อนุญาตทั้งคู่ — เลือกแบบแผนเดียวต่อโปรเจกต์ ประเภท uuid ของ Postgres ทำให้เป็นมาตรฐาน

ต้องมียัติภังค์หรือไม่?

รูปแบบมาตรฐานมียัติภังค์ บางระบบรับ 32 อักขระ hex โดยไม่มี

ปลอดภัยเชิงเข้ารหัสลับหรือไม่?

ใช้ CSPRNG ของเบราว์เซอร์เมื่อมี — ไม่ใช่ Math.random

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