ตัวถอดรหัส & ตัวตรวจสอบ UUID | วิเคราะห์เวอร์ชันและเวลา (v1, v4, v7)
ป้อน UUID ของคุณในช่องด้านบน แล้วเครื่องมือนี้ (ตัวแยกวิเคราะห์ UUID) จะทำการตรวจสอบออนไลน์ทันที ระบุเวอร์ชัน ความถูกต้อง และดึงข้อมูลที่ซ่อนอยู่
ตัวถอดรหัส UUID คืออะไร?
ตัวถอดรหัส UUID เป็นเครื่องมือที่วิเคราะห์ UUID (Universally Unique Identifier) และดึงข้อมูลที่มีอยู่ทั้งหมดออกมา UUID ไม่ใช่เพียงแค่ชุดอักขระสุ่ม แต่ขึ้นอยู่กับเวอร์ชัน อาจประกอบด้วยการประทับเวลา ข้อมูลระบบ หรือแฮชของข้อมูลแบบกำหนดได้
คุณสามารถรับข้อมูลอะไรจาก UUID ได้บ้าง?
ข้อมูลพื้นฐานเกี่ยวกับ UUID
เวอร์ชัน UUID:
- ระบุประเภทและโครงสร้างของ UUID (v1, v3, v4, v5, v6, v7)
- ดึงมาจากอักขระเลขฐานสิบหกตัวที่ 13
รูปแบบ:
RFC 4122- รูปแบบ UUID มาตรฐานNCS- Network Computing System (ล้าสมัย)Microsoft- รูปแบบ Microsoft GUIDReserved- สำรองไว้สำหรับการใช้งานในอนาคต
UUID v1 - การประทับเวลา + ที่อยู่ MAC
สิ่งที่คุณจะได้รับ:
- ✅ เวลาสร้างที่แม่นยำ - วันที่และเวลาที่มีความแม่นยำถึง 100 นาโนวินาที
- ✅ ลำดับเวลา (Clock Sequence) - หมายเลขลำดับเพื่อป้องกันการชนกัน
- ✅ ID โหนด (Node ID) - เดิมคือที่อยู่ MAC ซึ่งมักจะเป็นค่าสุ่ม
ตัวอย่าง:
UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
เวอร์ชัน: v1 (การประทับเวลา + MAC)
รูปแบบ: RFC 4122
วันที่และเวลา: 15.10.1997 04:25:33.000
ลำดับเวลา: 724
ID โหนด: 00:C0:4F:D4:30:C8
การใช้งาน:
- การระบุเวลาที่สร้างบันทึก
- การตรวจสอบและการวิเคราะห์ทางนิติเวช
- การดีบักปัญหาที่ขึ้นกับเวลา
UUID v3/v5 - ใช้แฮช
สิ่งที่คุณจะได้รับ:
- ✅ ประเภทแฮช - MD5 (v3) หรือ SHA-1 (v5)
- ❌ ไม่สามารถดึงข้อมูลได้ - เนมสเปซและชื่อดั้งเดิม (แฮชทางเดียว)
ตัวอย่าง:
UUID: 886313e1-3b8a-5372-9b90-0c9aee199e5d
เวอร์ชัน: v5 (แฮช SHA-1)
รูปแบบ: RFC 4122
ประเภท: UUID แบบแฮช (กำหนดได้)
หมายเหตุ: ไม่สามารถกู้คืนเนมสเปซและชื่อเดิมจาก UUID ได้
การใช้งาน:
- การยืนยันว่า UUID เป็นแบบกำหนดได้
- การระบุประเภทของ UUID ในฐานข้อมูล
- การตรวจสอบความสอดคล้องของตัวระบุแบบแฮช
UUID v4 - สุ่ม
สิ่งที่คุณจะได้รับ:
- ✅ เวอร์ชัน - ยืนยันว่าเป็นแบบสุ่ม
- ✅ รูปแบบ - มาตรฐาน RFC 4122
- ❌ ไม่มีข้อมูลเพิ่มเติม - บิตสุ่มล้วนๆ
ตัวอย่าง:
UUID: f47ac10b-58cc-4372-a567-0e02b2c3d479
เวอร์ชัน: v4 (สุ่ม)
รูปแบบ: RFC 4122
ประเภท: UUID ที่สร้างแบบสุ่ม
การใช้งาน:
- การยืนยันว่า UUID เป็นแบบสุ่ม (ไม่กำหนดได้)
- การตรวจสอบรูปแบบ UUID ที่ถูกต้อง
- การตรวจสอบความถูกต้องของ UUID ก่อนบันทึกลงฐานข้อมูล
UUID v6 - การประทับเวลาที่จัดเรียง
สิ่งที่คุณจะได้รับ:
- ✅ เวลาสร้างที่แม่นยำ - จัดเรียงใหม่เพื่อประสิทธิภาพ DB ที่ดีขึ้น
- ✅ ลำดับเวลา (Clock Sequence) - หมายเลขลำดับ
- ✅ ID โหนด (Node ID) - ตัวระบุโหนด
ตัวอย่าง:
UUID: 1ec9414c-232a-6b00-b3c8-9e6bdeced846
เวอร์ชัน: v6 (การประทับเวลาที่จัดเรียง)
รูปแบบ: RFC 4122
วันที่และเวลา: 30.01.2026 14:23:45.123
ลำดับเวลา: 3272
ID โหนด: 9E:6B:DE:CE:D8:46
การใช้งาน:
- การระบุเวลาที่สร้างบันทึก
- การวิเคราะห์ลำดับเวลาในฐานข้อมูล
- การดีบักระบบแบบกระจาย
UUID v7 - การประทับเวลาแบบ Unix
สิ่งที่คุณจะได้รับ:
- ✅ การประทับเวลาแบบ Unix - มิลลิวินาทีจาก 1.1.1970
- ✅ วันที่และเวลา - รูปแบบการประทับเวลาแบบ Unix มาตรฐาน
- ❌ ส่วนสุ่ม - ไม่สามารถถอดรหัสได้
ตัวอย่าง:
UUID: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f
เวอร์ชัน: v7 (การประทับเวลาแบบ Unix)
รูปแบบ: RFC 4122
วันที่และเวลา: 30.01.2026 14:23:45.123
การใช้งาน:
- การรับเวลาสร้างของ UUID ที่ทันสมัย
- การวิเคราะห์ลำดับเวลา
- การย้ายข้อมูลที่มีการประทับเวลา
โครงสร้าง UUID
UUID มีรูปแบบ: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
6ba7b810-9dad-11d1-80b4-00c04fd430c8
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ └───────────┴─ Node (48 บิต)
│ │ │ │ │ │ └──┴─────────────── Clock Sequence (14 บิต)
│ │ │ │ └──┴────────────────────── รูปแบบ (2-3 บิต)
│ │ └──┴───────────────────────────── เวอร์ชัน (4 บิต) + Time High
│ └──────────────────────────────────── Time Mid (16 บิต)
└─────────────────────────────────────────── Time Low (32 บิต)
การดึงเวอร์ชันและรูปแบบ
เวอร์ชัน (M):
- ตำแหน่ง: อักขระเลขฐานสิบหกตัวที่ 13
- ค่า: 1-7 (UUID เวอร์ชันต่างๆ)
รูปแบบ (N):
- ตำแหน่ง: อักขระเลขฐานสิบหกตัวที่ 17
0-7: NCS (สำรอง)8-B: RFC 4122 (มาตรฐาน)C-D: MicrosoftE-F: อนาคต (สำรอง)
ตัวอย่างการใช้งานจริง
การดีบัก - การระบุเวลาที่สร้างบันทึก
สถานการณ์: ผู้ใช้รายงานว่าข้อมูลของพวกเขาหายไป คุณต้องหาว่าบันทึกถูกสร้างขึ้นเมื่อใด
UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
ถอดรหัสแล้ว: 15.10.1997 04:25:33.000
→ บันทึกถูกสร้างขึ้นในปี 1997
การวิเคราะห์ทางนิติเวช - การตรวจสอบลำดับเวลา
สถานการณ์: ตรวจสอบว่าเหตุการณ์เกิดขึ้นตามลำดับที่ถูกต้องหรือไม่
UUID 1: 1ec9414c-232a-6b00-b3c8-9e6bdeced846 → 30.01.2026 14:23:45
UUID 2: 1ec9414d-557b-6a00-8f32-1234567890ab → 30.01.2026 14:25:12
→ UUID 2 ถูกสร้างขึ้นภายหลัง (ลำดับที่ถูกต้อง)
การระบุประเภท UUID ในฐานข้อมูล
สถานการณ์: คุณมี UUID แบบผสมในฐานข้อมูล และต้องการทราบว่าอันไหนเป็นแบบสุ่มและอันไหนมีการประทับเวลา
f47ac10b-58cc-4372-a567-0e02b2c3d479 → v4 (สุ่ม, ไม่มีข้อมูลการประทับเวลา)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → v1 (มีข้อมูลการประทับเวลา)
017f22e2-79b0-7cc3-98c4-dc0c0c07398f → v7 (มีข้อมูลการประทับเวลา)
→ มีเพียง UUID v1 และ v7 เท่านั้นที่มีข้อมูลเวลา
ข้อจำกัดและสิ่งที่ไม่สามารถดึงข้อมูลได้
❌ UUID v3/v5 - ไม่สามารถถอดรหัสแฮชได้
เป็นไปไม่ได้:
- กู้คืนเนมสเปซดั้งเดิม
- กู้คืนชื่อ/ค่าดั้งเดิม
- ค้นหาว่าข้อมูลใดถูกแฮช
เหตุผล: MD5 และ SHA-1 เป็นฟังก์ชันแฮชแบบทางเดียว
❌ UUID v4 - ไม่มีข้อมูลที่ซ่อนอยู่
เป็นไปไม่ได้:
- ดึงเมทาดาต้าใดๆ
- ค้นหาเวลาสร้าง
- ระบุแหล่งที่มา
เหตุผล: UUID v4 เป็นแบบสุ่มล้วนๆ ไม่มีข้อมูลที่มีโครงสร้างใดๆ
⚠️ UUID v1/v6 - ID โหนดอาจเป็นแบบสุ่ม
ข้อจำกัด:
- ในการใช้งานที่ทันสมัย Node ID มักจะเป็นแบบสุ่ม (ไม่ใช่ที่อยู่ MAC จริง)
- เพื่อความเป็นส่วนตัว ที่อยู่ MAC มักจะถูกแทนที่ด้วยค่าสุ่ม
- ไม่สามารถระบุเครื่องคอมพิวเตอร์ที่เฉพาะเจาะจงได้อย่างน่าเชื่อถือ
การตรวจสอบความถูกต้องของ UUID
ตัวถอดรหัสยังทำหน้าที่เป็นตัวตรวจสอบความถูกต้องของ UUID ด้วย
การตรวจสอบความถูกต้องของ UUID
ตัวถอดรหัสจะตรวจสอบโดยอัตโนมัติ:
- ✅ รูปแบบที่ถูกต้อง (อักขระเลขฐานสิบหก 8-4-4-4-12 ตัว)
- ✅ อักขระเลขฐานสิบหกที่ถูกต้อง (0-9, a-f)
- ✅ ความยาวที่ถูกต้อง (36 อักขระรวมขีดคั่น, 32 ไม่รวม)
การจดจำ UUID ที่ไม่ถูกต้อง
ตัวอย่างที่ไม่ถูกต้อง:
❌ 6ba7b810-9dad-11d1-80b4 (สั้นเกินไป)
❌ 6ba7b810-9dad-11d1-80b4-GHIJKLMN (อักขระไม่ถูกต้อง)
❌ 6ba7b81-09dad-11d1-80b4-00c04fd4 (รูปแบบไม่ถูกต้อง)
สำหรับนักพัฒนา
การนำไปใช้ใน JavaScript
// Extrakce verze z UUID
function getUUIDVersion(uuid) {
const cleaned = uuid.replace(/-/g, '');
return parseInt(cleaned[12], 16);
}
// Extrakce timestampu z UUID v7
function extractV7Timestamp(uuid) {
const cleaned = uuid.replace(/-/g, '');
const timeHi = parseInt(cleaned.substring(0, 8), 16);
const timeLow = parseInt(cleaned.substring(8, 12), 16);
const unixMs = Number(BigInt("0x" + cleaned.substring(0, 12)) >> 16n);
return new Date(unixMs);
}
// Příklad
const uuid = '017f22e2-79b0-7cc3-98c4-dc0c0c07398f';
console.log(getUUIDVersion(uuid)); // 7
console.log(extractV7Timestamp(uuid)); // Date object
การตรวจสอบ UUID ด้วย Regex
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
function isValidUUID(uuid) {
return uuidRegex.test(uuid);
}
คำถามที่พบบ่อย (FAQ)
ฉันสามารถรับเวลาสร้างจาก UUID v4 ได้หรือไม่?
ไม่ UUID v4 เป็นแบบสุ่มล้วนๆ และไม่มีข้อมูลเวลาใดๆ สำหรับ UUID ที่มีเวลา ให้ใช้ v1, v6 หรือ v7เหตุใด ID โหนดใน UUID v1 จึงเป็นแบบสุ่มแทนที่จะเป็นที่อยู่ MAC?
การใช้งานที่ทันสมัยใช้ ID โหนดแบบสุ่มเพื่อปกป้องความเป็นส่วนตัว การเปิดเผยที่อยู่ MAC จริงอาจเป็นความเสี่ยงด้านความปลอดภัยฉันสามารถกู้คืน URL หรือชื่อเดิมจาก UUID v5 ได้หรือไม่?
ไม่ได้ UUID v5 ใช้แฮช SHA-1 ซึ่งเป็นแบบทางเดียว ไม่สามารถกู้คืนข้อมูลเดิมจากแฮชได้ฉันจะรู้ได้อย่างไรว่า UUID เป็นแบบสุ่ม (v4)?
ตัวถอดรหัสจะแสดงเวอร์ชันของ UUID หากเป็นเวอร์ชัน 4 แสดงว่าเป็น UUID ที่สร้างแบบสุ่มโดยไม่มีเมทาดาต้าเพิ่มเติมการประทับเวลาใน UUID v1 แม่นยำหรือไม่?
ใช่ UUID v1 มีความแม่นยำทางทฤษฎี 100 นาโนวินาที (ตั้งแต่วันที่ 15 ตุลาคม 1582) ในทางปฏิบัติจะขึ้นอยู่กับความแม่นยำของนาฬิการะบบฉันสามารถใช้ตัวถอดรหัสเพื่อตรวจสอบความถูกต้องของ UUID ได้หรือไม่?
ใช่ ตัวถอดรหัสจะตรวจสอบรูปแบบ UUID โดยอัตโนมัติ และจะแสดงข้อผิดพลาดหาก UUID ไม่ถูกต้องความปลอดภัยและความเป็นส่วนตัว
UUID เปิดเผยอะไรบ้าง?
UUID v1/v6:
- ⚠️ เวลาสร้าง - อาจเปิดเผยช่วงเวลาของการทำงาน
- ⚠️ ที่อยู่ MAC ที่อาจเปิดเผยได้ - ความเสี่ยงในการระบุอุปกรณ์ (เป็นแบบสุ่มในการใช้งานที่ทันสมัย)
UUID v4:
- ✅ ปลอดภัย - ไม่มีเมทาดาต้าใดๆ
UUID v7:
- ⚠️ การประทับเวลาแบบ Unix - เปิดเผยเวลาสร้าง
คำแนะนำ
- ✅ ใช้ UUID v4 เพื่อความเป็นส่วนตัวสูงสุด
- ⚠️ ระมัดระวังเมื่อใช้ UUID v1/v6/v7 ใน Public API (เนื่องจากเปิดเผยข้อมูลเวลา)
- ✅ UUID v5 เป็นแบบกำหนดได้ แต่ไม่เปิดเผยข้อมูลเดิม
- ⚠️ แฮช MD5 ไม่ปลอดภัยเต็มที่
ข้อเท็จจริงที่น่าสนใจ
- UUID v1 ที่เก่าแก่ที่สุดที่เป็นไปได้: 15 ตุลาคม 1582 00:00:00 (จุดเริ่มต้นของปฏิทินเกรกอเรียน)
- UUID v7 ที่ใหม่ที่สุด: 10889-08-02 05:31:50.655 (ขีดจำกัดการประทับเวลาแบบ Unix ในหน่วยมิลลิวินาที)
- ความแม่นยำของ UUID v1: 100 นาโนวินาที (ทางทฤษฎี 10 ล้าน UUID ต่อวินาที)
- UUID Nil:
00000000-0000-0000-0000-000000000000(UUID “ว่างเปล่า” พิเศษ) - UUID สูงสุด:
ffffffff-ffff-ffff-ffff-ffffffffffff(ค่าสูงสุด)
การใช้งานในระบบต่างๆ
PostgreSQL
-- Extrakce verze UUID
SELECT substring(id::text, 15, 1) as version
FROM users;
-- Filtrování podle verze
SELECT *
FROM users
WHERE substring(id::text, 15, 1) = '4';
MySQL
-- Kontrola UUID formátu
SELECT id
FROM users
WHERE id REGEXP '^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$';