เครื่องมือสร้าง UUID
สร้าง UUID (หรือที่เรียกว่า GUID) แบบสุ่มตามมาตรฐาน RFC-4122 เวอร์ชัน 4 ในเบราว์เซอร์ของคุณ เลือกจำนวนที่ต้องการ สลับตัวพิมพ์ใหญ่หรือเครื่องหมายขีด แล้วคัดลอกผลลัพธ์ได้ทันที โดยไม่มีการอัปโหลดข้อมูลใด ๆ
ตัวเลือก
จำนวน
ตัวพิมพ์ใหญ่
เครื่องหมายขีด
วิธีใช้ เครื่องมือสร้าง UUID
- 1
กำหนดจำนวน
เลือกว่าต้องการ UUID กี่ตัว ตั้งแต่ 1 ถึง 100 โดยใช้ช่องจำนวนหรือปุ่มบวกและลบ
- 2
เลือกรูปแบบ
สลับ "ตัวพิมพ์ใหญ่" สำหรับตัวอักษรฐานสิบหกเป็นตัวพิมพ์ใหญ่ และสลับ "ยัติภังค์" เพื่อเก็บหรือตัดเครื่องหมายขีดทั้งสี่ออกจากแต่ละ ID
- 3
สร้าง ID
คลิก Generate เพื่อสร้าง UUID เวอร์ชัน 4 แบบสุ่มเชิงการเข้ารหัส แต่ละตัวแสดงในบรรทัดของตัวเอง
- 4
คัดลอกผลลัพธ์
ใช้ปุ่ม Copy เพื่อคัดลอกรายการทั้งหมดในครั้งเดียว พร้อมวางลงในโค้ด ฐานข้อมูล หรือสเปรดชีต
เจาะลึก UUID: เวอร์ชัน การชนกัน และเมื่อใดควรใช้
UUID คืออะไร
UUID — ย่อมาจาก Universally Unique Identifier และเรียกว่า GUID ในโลกของ Microsoft — คือค่าขนาด 128 บิตที่ออกแบบมาให้ไม่ซ้ำกันโดยไม่ต้องมีหน่วยงานกลางคอยแจกจ่ายหมายเลข รูปแบบข้อความมาตรฐาน (canonical) ของมันยาว 36 อักขระ ได้แก่ เลขฐานสิบหก 32 หลักที่แบ่งเป็นห้ากลุ่มด้วยเครื่องหมายขีดสี่ตัว ในรูปแบบ 8-4-4-4-12 บิตทั้ง 128 นั้นคือตัวตนทั้งหมด ส่วนเครื่องหมายขีดและตัวพิมพ์เล็กใหญ่เป็นเพียงการนำเสนอเท่านั้น
สิ่งที่ UUID ให้คำมั่นไว้คือการกระจายศูนย์ เครื่องใด ๆ ที่ใดก็ตามสามารถสร้างตัวระบุขึ้นมาได้โดยแทบไม่มีโอกาสชนกับตัวที่ถูกสร้างจากที่อื่นเลย นี่คือเหตุผลที่ UUID เป็นคีย์โดยปริยายเมื่อระบบที่เป็นอิสระต่อกันต้องสร้าง ID ที่จะนำมารวมกันในภายหลังโดยไม่ต้องประสานงานกัน
เวอร์ชัน 4: สุ่มโดยการออกแบบ
เครื่องมือสร้างนี้ผลิต UUID เวอร์ชัน 4 ซึ่งเป็นชนิดที่ใช้กันแพร่หลายที่สุด UUID v4 เป็นแบบสุ่มเกือบทั้งหมด คือจากบิตทั้ง 128 มีอยู่ไม่กี่บิตที่ถูกตรึงไว้เพื่อระบุเวอร์ชันและตัวแปร (variant) เหลือเป็นความสุ่มล้วน ๆ 122 บิต คุณสามารถสังเกตค่าที่เป็น v4 ได้ เพราะหลักที่ขึ้นต้นกลุ่มที่สามจะเป็น 4 เสมอ และหลักที่ขึ้นต้นกลุ่มที่สี่จะเป็นหนึ่งใน 8, 9, a หรือ b
เนื่องจากไม่มีการฝังเวลาประทับ (timestamp) หรือตัวระบุเครื่องไว้ UUID v4 จึงไม่เปิดเผยข้อมูลใด ๆ เกี่ยวกับว่าถูกสร้างเมื่อใดหรือที่ใด ความเป็นส่วนตัวนี้เป็นข้อได้เปรียบอย่างแท้จริงเหนือรูปแบบที่เข้ารหัสที่อยู่ MAC หรือลำดับเอาไว้ และเป็นส่วนหนึ่งของเหตุผลที่ทำให้ v4 กลายเป็นค่าโดยปริยายในชีวิตประจำวันสำหรับคีย์ โทเค็น และตัวระบุเรกคอร์ด
แหล่งที่มาของความสุ่ม
คุณภาพของแหล่งสุ่มคือทุกสิ่งทุกอย่างสำหรับ UUID แบบสุ่ม เครื่องมือนี้ใช้ตัวสร้างที่ปลอดภัยเชิงการเข้ารหัสซึ่งมีอยู่ในตัวเบราว์เซอร์ของคุณ — ซึ่งเป็นพื้นฐานเดียวกับที่ใช้สร้างค่าที่อ่อนไหวด้านความปลอดภัย — แทนที่จะใช้ฟังก์ชันสุ่มเทียมที่เร็วแต่คาดเดาได้ สิ่งนี้สำคัญเพราะ ID ที่ผลิตจากตัวสร้างที่อ่อนแอนั้นอาจถูกเดาหรือไล่เรียงได้ เปลี่ยนตัวระบุที่ควรจะเดาไม่ได้ให้กลายเป็นช่องโหว่ด้านความปลอดภัย
ด้วยแหล่งเชิงการเข้ารหัสที่เหมาะสม บิตสุ่มทั้ง 122 บิตจึงคาดเดาไม่ได้อย่างแท้จริง ผลลัพธ์จึงเหมาะกับคีย์ฐานข้อมูลในระบบจริง คีย์ idempotency และการใช้งานในลักษณะเดียวกัน อย่างไรก็ตาม มีขอบเขตหนึ่งที่ควรย้ำไว้ คือ UUID เป็นตัวระบุ ไม่ใช่ความลับ จงถือว่ามันเดาได้ยากพอที่จะไล่เรียงได้ลำบาก แต่อย่าพึ่งพามันเพียงลำพังในฐานะโทเค็นการให้สิทธิ์ (authorization token)
เหตุใดการชนกันจึงไม่ใช่เรื่องที่ต้องกังวลในทางปฏิบัติ
ปริภูมิของ UUID v4 ใหญ่มหาศาลระดับดาราศาสตร์ — เท่ากับ 2 ยกกำลัง 122 หรือราว 5.3 คูณ 10 ยกกำลัง 36 ค่าที่แตกต่างกัน เพื่อให้เห็นภาพ คุณจะต้องสร้าง UUID หลายพันล้านตัวต่อวินาทีติดต่อกันหลายทศวรรษกว่าที่ความน่าจะเป็นของการชนกันเพียงครั้งเดียวจะสูงพอจะวัดได้ สำหรับทุกการใช้งานในความเป็นจริง โอกาสที่ UUID v4 สองตัวที่สุ่มขึ้นมาจะตรงกันนั้นเล็กน้อยเสียจนถูกถือว่าเป็นศูนย์
นี่คือเหตุผลที่คุณสามารถสร้าง ID อย่างเป็นอิสระบนไคลเอ็นต์และเซิร์ฟเวอร์นับพัน และเพียงแค่สมมติได้เลยว่ามันจะไม่ชนกัน โดยไม่ต้องเดินทางไป-กลับเพื่อตรวจสอบความไม่ซ้ำกับบริการกลาง ความเป็นไปได้ที่น้อยจนแทบเป็นไปไม่ได้นี้เองคือคุณสมบัติเด่น มันมอบการสร้างที่ไม่ต้องประสานงานให้คุณ โดยแลกกับสิ่งที่คุณจะไม่มีวันสังเกตเห็นในทางปฏิบัติเลย
เวอร์ชัน 1 เวอร์ชัน 7 และความสามารถในการเรียงลำดับ
ไม่ใช่ UUID ทุกตัวที่เป็นแบบสุ่ม เวอร์ชัน 1 ได้ค่าจากเวลาปัจจุบันและที่อยู่เครือข่ายของเครื่องที่สร้างมันขึ้น ซึ่งรับประกันความไม่ซ้ำกันได้ก็จริง แต่ก็ฝังเวลาประทับและตัวระบุฮาร์ดแวร์ลงไปใน ID — เป็นข้อกังวลด้านความเป็นส่วนตัวและการรั่วไหลของข้อมูลที่ผลักดันให้หลายทีมหันไปใช้ v4 ส่วนเวอร์ชัน 7 คือคำตอบยุคใหม่สำหรับปัญหาคนละแบบ คือมันวางเวลาประทับระดับมิลลิวินาทีไว้ในบิตสูง ตามด้วยบิตสุ่ม
การจัดวางแบบนั้นทำให้ค่า v7 เรียงลำดับตามลำดับการสร้างได้คร่าว ๆ เมื่ออยู่ในรูปสตริงธรรมดา ซึ่งเป็นประโยชน์อย่างแท้จริงต่อดัชนีฐานข้อมูล คีย์ v4 ที่สุ่มล้วน ๆ จะกระจัดกระจายไปทั่วดัชนีและอาจบั่นทอนประสิทธิภาพการแทรกข้อมูลบนเอนจินบางตัว ในขณะที่คีย์ที่เรียงตามเวลาจะทำให้ข้อมูลที่เพิ่งแทรกใหม่ ๆ อยู่รวมกลุ่มกัน หากคุณต้องการความเป็นเอกลักษณ์ระดับสากลแบบ UUID แต่ก็ต้องการการเรียงลำดับตามเวลาด้วย v7 คือตัวที่ควรเลือก แต่หากคุณต้องการเจาะจงว่าไม่ให้มีการฝังเวลา v4 ยังคงเป็นตัวเลือกที่ถูกต้อง
UUID เทียบกับ ID แบบเพิ่มค่าอัตโนมัติ
ทางเลือกแบบดั้งเดิมคือจำนวนเต็มแบบเพิ่มค่าอัตโนมัติ (auto-increment) ของฐานข้อมูล จำนวนเต็มแบบเรียงลำดับนั้นกะทัดรัด เรียงลำดับโดยธรรมชาติ และมีประสิทธิภาพอย่างยิ่งในฐานะคีย์หลัก (primary key) แต่ก็ต้องการแหล่งความจริงเพียงแหล่งเดียวคอยแจกจ่ายหมายเลขถัดไป และมันยังเปิดเผยข้อมูลด้วย กล่าวคือ ID แบบเรียงลำดับเผยให้เห็นคร่าว ๆ ว่ามีเรกคอร์ดอยู่กี่รายการ และเปิดช่องให้ผู้โจมตีเดา ID ที่อยู่ติดกันได้ด้วยการบวกหนึ่ง UUID แก้ปัญหาทั้งสองอย่างนี้ คือไม่มีตัวนับกลาง และไม่มีลำดับที่ไล่เรียงได้
ข้อแลกเปลี่ยนก็มีในทางกลับกันเช่นกัน UUID มีขนาด 16 ไบต์ เทียบกับจำนวนเต็มขนาด 4 หรือ 8 ไบต์ รูปแบบข้อความของมันเทอะทะใน URL และล็อก และตัวที่สุ่มมาก็เรียงลำดับไม่ได้ หลักการที่สมเหตุสมผลคือ ใช้ UUID เมื่อ ID ต้องถูกสร้างโดยไคลเอ็นต์หรือบริการแบบกระจาย ต้องนำมารวมกันข้ามระบบ หรือต้องเดาไม่ได้ ส่วนจำนวนเต็มแบบเพิ่มค่าอัตโนมัติให้ยึดไว้ใช้กับฐานข้อมูลเดี่ยวที่เบ็ดเสร็จในตัวเอง ซึ่งความกะทัดรัดและการเรียงลำดับสำคัญที่สุด
การจัดรูปแบบและการสร้างเป็นชุด
รูปแบบมาตรฐานคือเลขฐานสิบหกตัวพิมพ์เล็กพร้อมเครื่องหมายขีด และระบบส่วนใหญ่ก็ยอมรับรูปแบบนี้ แต่ธรรมเนียมก็แตกต่างกันไป เครื่องมือนี้ให้คุณสลับไปใช้ตัวอักษรพิมพ์ใหญ่ ซึ่งบางแพลตฟอร์มและเครื่องมือ Microsoft รุ่นเก่านิยมใช้ และให้ตัดเครื่องหมายขีดออกเพื่อให้ได้รูปแบบกะทัดรัด 32 อักขระที่สะดวกใน URL ชื่อไฟล์ หรือที่ใดก็ตามที่เครื่องหมายขีดเป็นส่วนเกิน ค่าพื้นฐานขนาด 128 บิตยังคงเหมือนกันไม่ว่าจะเป็นตัวพิมพ์เล็กใหญ่หรือมีขีดหรือไม่ก็ตาม ดังนั้นสิ่งเหล่านี้จึงเป็นเพียงตัวเลือกในการแสดงผลล้วน ๆ
เมื่อคุณต้องการ ID จำนวนมากในคราวเดียว — ไม่ว่าจะเป็นการป้อนข้อมูลเริ่มต้นลงในตาราง การสร้างชุดข้อมูลทดสอบ หรือการจองคีย์ไว้ล่วงหน้า — คุณก็สามารถผลิตเป็นชุดได้ในคลิกเดียวและคัดลอกรายการทั้งหมดไปพร้อมกัน โดยแต่ละตัวอยู่ในบรรทัดของตัวเอง ทุกอย่างถูกสร้างขึ้นในเครื่องภายในเบราว์เซอร์ของคุณ และไม่มีอะไรถูกส่งหรือจัดเก็บ ดังนั้นแม้แต่ตัวระบุที่ผูกกับเรกคอร์ดที่อ่อนไหวก็ไม่เคยออกจากอุปกรณ์ของคุณ
คำถามที่พบบ่อย
เครื่องมือนี้สร้าง UUID แบบใด
ค่าสุ่มถูกสร้างขึ้นอย่างไร
ฉันสร้าง UUID ได้กี่ตัวต่อครั้ง
UUID ที่สร้างขึ้นไม่ซ้ำกันจริงไหม
มีสิ่งใดถูกส่งไปยังเซิร์ฟเวอร์ไหม
เครื่องมือที่เกี่ยวข้อง
ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้