RevealTheme logo

ตัวสร้าง UUID

สร้าง UUID v4 (universally unique identifier แบบสุ่ม) ทุกครั้งที่คลิกจะได้ค่าใหม่

วิธีใช้เครื่องมือนี้

  1. 1

    Click the Generate UUID button to produce a fresh random v4 UUID.

  2. 2

    Read the 36-character identifier shown in the canonical 8-4-4-4-12 format below the button.

  3. 3

    Click Copy to put the UUID on your clipboard for pasting into code, a database, or a config file.

  4. 4

    Click Generate UUID again whenever you need another one — every click replaces the value with a brand-new random UUID.

UUID คืออะไรและทำไมซอฟต์แวร์จึงใช้มัน?

UUID (Universally Unique Identifier บางครั้งเรียกว่า GUID ในบริบทของ Microsoft) คือค่าขนาด 128 บิตที่ใช้ระบุเอนทิตีโดยไม่จำเป็นต้องมีการประสานงานระหว่างระบบ แนวคิดของ UUID คือโปรแกรมสองตัวที่ต่างกัน ทำงานบนสองเครื่องที่ต่างกันและไม่รู้จักกัน สามารถสร้าง UUID ได้และมั่นใจได้ว่าค่าเหล่านั้นจะไม่ชนกัน คุณสมบัตินี้เอื้อต่อการออกแบบระบบแบบกระจาย คุณสามารถปล่อยให้บริการใดก็ได้สร้างตัวระบุขึ้นในเครื่องของตนเองโดยไม่ต้องมีตัวนับกลาง รวมฐานข้อมูลเข้าด้วยกันได้โดยไม่ต้องเรียงหมายเลขแถวใหม่ และสร้างตัวระบุล่วงหน้าบนฝั่งไคลเอนต์ก่อนที่เซิร์ฟเวอร์จะเห็นคำขอด้วยซ้ำ UUID มีห้าเวอร์ชันมาตรฐานที่กำหนดไว้ใน RFC 4122 ได้แก่ v1 (อิงตามเวลา + MAC address ซึ่งเปิดเผยเวลาที่สร้างและตัวตนของเครื่อง), v3 (MD5 hash ของ namespace + ชื่อ), v4 (สุ่ม ซึ่งพบบ่อยที่สุด), v5 (SHA-1 hash ของ namespace + ชื่อ) ส่วน RFC 9562 ได้เพิ่ม v6 (เรียงตามเวลา เหมือน v1 แต่ไม่เปิดเผย MAC) และ v7 (Unix timestamp + สุ่ม ออกแบบมาเฉพาะสำหรับใช้เป็น primary key ของฐานข้อมูลเพราะเรียงตามลำดับเวลา) เครื่องมือนี้สร้าง UUID v4 ผ่าน crypto.randomUUID() ซึ่งใช้ความสุ่มระดับเข้ารหัสจากระบบปฏิบัติการที่อยู่เบื้องหลังเบราว์เซอร์ อันเป็นแหล่งเดียวกับที่คีย์ TLS ถูกสร้างขึ้น ผลลัพธ์เหมือนกันทุกไบต์กับ uuid.uuid4() ของ Python, crypto.randomUUID() ของ Node และ google/uuid.NewRandom() ของ Go

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

  • คีย์หลักของฐานข้อมูล — แทนที่จำนวนเต็มที่เพิ่มขึ้นอัตโนมัติเมื่อคุณต้องการรวมฐานข้อมูลหรือสร้าง ID ฝั่งไคลเอ็นต์

  • ตัวระบุเซสชันในคุกกี้ — ยาวพอที่การเดา ID เซสชันที่ถูกต้องด้วยวิธี brute-force เป็นไปไม่ได้ในเชิงการคำนวณ

  • คีย์ idempotency สำหรับคำขอ API — ทำคำขอซ้ำได้อย่างปลอดภัย เซิร์ฟเวอร์จะขจัดข้อมูลซ้ำตาม UUID

  • ตัวระบุการอัปโหลดไฟล์ — ตั้งชื่อไฟล์ที่อัปโหลดด้วย UUID เพื่อป้องกันการชนกันของพาธและหลีกเลี่ยงการเปิดเผยชื่อไฟล์ต้นฉบับ

  • ID การติดตามแบบกระจาย — แต่ละคำขอจะได้รับ UUID และถูกส่งต่อผ่านบริการต่าง ๆ เพื่อเชื่อมโยงบันทึก

  • ตัวระบุ fixture สำหรับการทดสอบ — ความสุ่มที่คาดเดาได้สำหรับข้อมูลทดสอบโดยไม่ต้องประสาน ID ระหว่างกรณีทดสอบ

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

v4 หมายถึงอะไร?
เวอร์ชัน 4: สร้างจากความสุ่ม 122 บิตบวกกับบิตคงที่ของเวอร์ชัน/ตัวแปร 6 บิต เวอร์ชันอื่นๆ ได้แก่ v1 อิงตาม timestamp + MAC (อย่าใช้ เพราะเปิดเผยตัวตนของเครื่องและเวลา), v3/v5 เป็น hash แบบ deterministic ของ namespace + ชื่อ (มีประโยชน์สำหรับตัวระบุที่ได้มาแบบเสถียร), v7 สุ่มโดยมี timestamp นำหน้า (ยอดเยี่ยมสำหรับฐานข้อมูลเพราะเรียงตามลำดับเวลา) สำหรับกรณีส่วนใหญ่ v4 เป็นตัวเลือกเริ่มต้นที่ถูกต้อง
UUID มีความไม่ซ้ำกันมากเพียงใดในความเป็นจริง?
UUID v4 มีความสุ่มที่ใช้งานได้จริง 122 บิต ซึ่งคือค่าที่เป็นไปได้ 5.3×10^36 ค่า คุณจะต้องสร้าง UUID ถึง 2.71 ล้านล้านล้านตัวก่อนจะถึงความน่าจะเป็นที่จะชนกัน 50 % เพื่อให้เห็นภาพ หากคุณสร้าง UUID หนึ่งพันล้านตัวต่อวินาที คุณจะต้องใช้เวลา 85 ปีจึงจะถึงเกณฑ์นั้น การชนกันในทางปฏิบัติจะไม่เกิดขึ้นหากใช้ตัวสร้างเลขสุ่มที่ดี
ฉันควรใช้ v4 หรือ v7 สำหรับ primary key ของฐานข้อมูล?
v7 ดีกว่าสำหรับฐานข้อมูล UUID v4 เป็นแบบสุ่ม ซึ่งหมายความว่าแถวใหม่จะกระจายแบบสุ่มไปทั่วดัชนีแบบ B-tree ทำให้ดัชนีบวมและการแทรกข้อมูลช้าลงเมื่อขยายขนาด ส่วน v7 จะวาง timestamp ไว้ด้านหน้า ดังนั้น UUID ใหม่จึงเรียงต่อจากตัวเก่าเสมอ ทำให้รักษารูปแบบการแทรกข้อมูลแบบเรียงลำดับไว้ได้ PostgreSQL, MySQL และ SQL Server ได้รับประโยชน์จาก v7 หากไลบรารีของคุณยังไม่รองรับ v7 ULID เป็นทางเลือกยอดนิยมที่มีคุณสมบัติเดียวกัน
การใช้ crypto.randomUUID() ปลอดภัยหรือไม่?
ปลอดภัย มันถูกกำหนดไว้ใน WHATWG และนำไปใช้ในเบราว์เซอร์สมัยใหม่ทั้งหมดผ่านตัวสร้างเลขสุ่มระดับเข้ารหัสของระบบปฏิบัติการ (แหล่งเดียวกับที่คีย์ TLS ถูกสร้างขึ้น) ผลลัพธ์คาดเดาไม่ได้และกระจายอย่างสม่ำเสมอทั่วทั้งพื้นที่ของ UUID v4
ความแตกต่างระหว่าง UUID กับ GUID คืออะไร?
ทั้งสองทำหน้าที่เหมือนกัน GUID คือคำที่ Microsoft ใช้เรียกแนวคิดเดียวกัน รูปแบบไบต์ต่างกันใน API บางตัวของ Microsoft (Guid.ToByteArray() ของ .NET ใช้ลำดับไบต์แบบผสมในสามฟิลด์แรก) ดังนั้นเมื่อความสามารถในการทำงานร่วมกันมีความสำคัญ ให้ระวังเรื่องลำดับไบต์ ส่วนรูปแบบสตริงมาตรฐาน (8-4-4-4-12) นั้นเหมือนกัน
ฉันสามารถย่อ UUID เพื่อใช้ใน URL ได้หรือไม่?
ได้ เข้ารหัส 128 บิตเป็น Base62 หรือ Base64 แทนรูปแบบเลขฐานสิบหกมาตรฐาน Base62 ให้คุณ 22 อักขระ ส่วน Base64 ให้ 22 อักขระเมื่อมี padding หรือ 22 อักขระในรูปแบบที่ปลอดภัยสำหรับ URL บางไลบรารีก็ใช้รูปแบบ 'short UUID' ด้วย บิตที่อยู่เบื้องหลังไม่เปลี่ยนแปลง เพียงแต่การเข้ารหัสสำหรับการแสดงผลต่างกัน
ทำไม UUID ของฉันจึงขึ้นต้นด้วยอักขระเดียวกันกับอีกตัวหนึ่ง?
เป็นเรื่องบังเอิญ เพราะ UUID v4 เป็นแบบสุ่ม ด้วยอักขระเลขฐานสิบหกทั้งหมด 36 ตัวและมีอักขระเลขฐานสิบหกที่สุมจริงเพียง 22 ตัว (4 ตัวสงวนไว้สำหรับเวอร์ชัน/ตัวแปร และ 4 ตัวเป็นเครื่องหมายขีด) การที่คำนำหน้าตรงกันบ้างจึงเป็นสิ่งที่เลี่ยงไม่ได้เมื่อคุณสร้างจำนวนมาก ตัว UUID ทั้งหมดยังคงไม่ซ้ำกันแม้ว่าคำนำหน้าจะตรงกัน

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

ตัวถอดรหัส JWT

ถอดรหัส JSON Web Tokens (JWT) ได้ทันที ทำงานในเบราว์เซอร์ของคุณ โทเค็นจะไม่ออกจากอุปกรณ์ของคุณ จึงปลอดภัยที่จะใช้กับซีเคร็ตในโปรดักชัน

เครื่องมือจัดรูปแบบและตรวจสอบ JSON

จัดรูปแบบ ตรวจสอบ และย่อขนาด JSON ออนไลน์ ทำงานทั้งหมดในเบราว์เซอร์ของคุณ ข้อมูลของคุณจะไม่ออกจากอุปกรณ์ของคุณเลย

เครื่องมือจัดรูปแบบ XML

จัดรูปแบบและทำให้เอกสาร XML อ่านง่ายขึ้น มีประโยชน์สำหรับ SOAP, sitemap, feed RSS และไฟล์การกำหนดค่า

ตัวเข้ารหัสและถอดรหัส Base64

เข้ารหัสสตริงเป็น Base64 หรือถอดรหัส Base64 เป็นข้อความ เคารพความเป็นส่วนตัวของคุณ: ทำงานในเบราว์เซอร์ของคุณ

ตัวเข้ารหัสและถอดรหัส URL

แปลงข้อความเป็นการเข้ารหัสที่ปลอดภัยสำหรับ URL (การเข้ารหัสแบบเปอร์เซ็นต์) และกลับกัน มีประโยชน์สำหรับ query string การเปลี่ยนเส้นทาง และโฟลว์ OAuth

เครื่องมือเข้ารหัสและถอดรหัสเอนทิตี HTML

แปลงอักขระพิเศษเป็นเอนทิตี HTML (&, < เป็นต้น) และในทางกลับกัน มีประโยชน์สำหรับการฝังข้อความลงใน HTML อย่างปลอดภัย

สมัครรับข่าวสารอัปเดต

เราไม่ขายอีเมลของคุณ เราไม่ส่งสแปม

© 2026 RevealTheme. All rights reserved.