สร้างค่า UUID v4 แบบสุ่ม
UUID เวอร์ชัน 4 เป็นค่าขนาด 128 บิต โดย 122 บิตมาจากแหล่งสุ่มที่ปลอดภัยตามหลักวิทยาการเข้ารหัส อีก 6 บิตระบุเวอร์ชันและตัวแปร RFC ดังนั้นกลุ่มที่สามของ UUID v4 ทุกค่าจึงขึ้นต้นด้วย 4
ตัวอย่างการคำนวณ
- ไบต์สุ่มที่ใช้เป็นอินพุต
- 9d 41 7c 02 e8 5b 13 f6 2a 7e c1 94 06 d3 b8 5f
- ผลลัพธ์
- 9d417c02-e85b-43f6-aa7e-c19406d3b85f
| จำนวน UUID ที่สร้าง | โอกาสที่จะซ้ำกันอย่างน้อยหนึ่งค่า |
|---|---|
| 10⁶ | ≈ 9.4 × 10⁻²⁶ |
| 10⁹ | ≈ 9.4 × 10⁻²⁰ |
| 10¹² | ≈ 9.4 × 10⁻¹⁴ |
| 10¹⁵ | ≈ 9.4 × 10⁻⁸ |
จำนวน UUID ที่ทำให้โอกาสซ้ำเป็น 50%: ≈ 2.71 × 10¹⁸
หลักการทำงาน
- เครื่องสร้างจะเติม 16 ไบต์ด้วยข้อมูลสุ่มที่ปลอดภัย แล้วตั้งค่านิบเบิลบนของไบต์ที่ 6 เป็น 4 (เวอร์ชัน) และสองบิตบนสุดของไบต์ที่ 8 เป็น 10 (ตัวแปร) กลุ่มที่สามจึงขึ้นต้นด้วย 4 และกลุ่มที่สี่ขึ้นต้นด้วย 8, 9, a หรือ b
- เมื่อมีค่าที่เป็นไปได้ 2¹²² ค่า สูตรประมาณปัญหาวันเกิด p ≈ 1 − e^(−n²/2¹²³) จะให้ความน่าจะเป็นที่ UUID สุ่ม n ค่าจะมีค่าซ้ำอย่างน้อยหนึ่งค่า
- UUID v4 ไม่เปิดเผยเวลาหรือข้อมูลฮาร์ดแวร์ ใช้เป็นตัวระบุเท่านั้น ไม่ควรใช้เป็นรหัสผ่านหรือค่าลับสำหรับยืนยันตัวตน
สร้าง 1-100 UUID พร้อมกัน
เกี่ยวกับ UUID
UUID v1: UUID ตามเวลาที่รวมไทม์สแตมป์และที่อยู่ MAC ของคอมพิวเตอร์ที่สร้าง UUID มีประโยชน์เมื่อคุณต้องการทราบว่า UUID ถูกสร้างขึ้นเมื่อใด
UUID v4: UUID ที่สร้างแบบสุ่ม นี่คือเวอร์ชันที่ใช้กันมากที่สุดและให้ความไม่ซ้ำที่ดีพร้อมการรั่วไหลของข้อมูลน้อยที่สุด
UUID v5: UUID ตามชื่อโดยใช้การแฮช SHA-1 ด้วยเนมสเปซและชื่อเดียวกัน คุณจะได้รับ UUID เดียวกันเสมอ มีประโยชน์สำหรับการสร้าง UUID แบบกำหนดได้