מחולל ובודק UUID

צרו UUID מסוג v4 אקראי קריפטוגרפית או v7 שניתן למיון, אחד או אלף בכל פעם, ובחנו כל UUID או GUID כדי לראות את הגרסה ואת חותמת הזמן המוטמעת.

רץ בדפדפן שלכםבלי הרשמהשום דבר לא מועלה

UUID שנוצרו

איך משתמשים בכלי מחולל UUID

  1. בחרו v4 למזהה אקראי לחלוטין או v7 למזהים שממוינים לפי זמן היצירה.
  2. הגדירו כמה אתם צריכים (עד 1,000) ולחצו על יצירה.
  3. אם תרצו, עברו לאותיות גדולות, הסירו מקפים או עטפו בסוגריים מסולסלים עבור GUID בסגנון Microsoft.
  4. לחצו על ה-UUID הגדול כדי להעתיק אותו, או השתמשו בהעתקת הכול / הורדת ‎.txt עבור אצווה.
  5. הדביקו כל UUID בכלי הבחינה כדי לאמת אותו ולקרוא את הגרסה, הווריאנט וחותמת הזמן שלו.

מה זה UUID?

UUID‏ (Universally Unique Identifier), שנקרא GUID בפלטפורמות של Microsoft, הוא ערך של 128 ביט שנכתב כ-32 ספרות hex בחמש קבוצות: 8-4-4-4-12. הפורמט מוגדר ב-RFC 9562, שהחליף את RFC 4122 ב-2024. ספרה אחת מקודדת את הגרסה (ספרת ה-hex ה-13), והביטים העליונים של הספרה ה-17 מקודדים את הווריאנט.

UUID v4 לעומת UUID v7

v4v7
תוכן122 ביטים אקראייםחותמת זמן Unix במילישניות של 48 ביט + 74 ביטים אקראיים
סדר מיוןאקראיכרונולוגי
אינדקס במסד נתוניםהכנסות אקראיות גורמות לפיצול של אינדקסי B-treeנוסף בסוף, ידידותי הרבה יותר לאינדקסים
חושף את זמן היצירהלאכן

השתמשו ב-v7 למפתחות ראשיים במסד נתונים ולמזהי אירועים שבהם סדר ההכנסה חשוב. השתמשו ב-v4 כשהמזהה לא אמור לחשוף מתי משהו נוצר. המחולל הזה שומר על מזהי v7 עולים באופן קפדני גם כשרבים מהם נוצרים באותה מילישנייה.

עד כמה הם ייחודיים?

עם 122 ביטים אקראיים, תצטרכו ליצור בערך 2.7 קווינטיליון UUID מסוג v4 עד שתגיעו לסיכוי של 50% להתנגשות אחת. הדף משתמש במחולל המספרים האקראיים המאובטח קריפטוגרפית של הדפדפן (crypto.getRandomValues), ולעולם לא ב-Math.random().

יצירת UUID בקוד

// JavaScript (browsers, Node 19+)
crypto.randomUUID()
# Python
import uuid; uuid.uuid4()
-- PostgreSQL 13+
SELECT gen_random_uuid();

שאלות נפוצות

האם בטוח להשתמש ב-UUID האלה בפרודקשן?
כן. הם נוצרים מקומית עם המחולל האקראי המאובטח של Web Crypto API ועומדים ב-RFC 9562. שום דבר לא נשלח לשרת או נרשם בו.
מה ההבדל בין UUID ל-GUID?
זה אותו דבר. GUID הוא השם של Microsoft, ולרוב נכתב באותיות גדולות עם סוגריים מסולסלים, כמו {3F2504E0-4F89-11D3-9A0C-0305E82C3301}. השתמשו באפשרויות שלמעלה כדי להפיק את הפורמט הזה.
אפשר לחלץ את זמן היצירה מ-UUID?
רק בגרסאות מבוססות זמן. v7 שומר מילישניות Unix ב-48 הביטים הראשונים שלו, ו-v1 ו-v6 שומרים חותמת זמן ביחידות של 100 ננושניות. הדביקו אחד בכלי הבחינה כדי לראות את התאריך. v4 לא מכיל מידע על זמן.
האם להשתמש ב-UUID כמפתחות ראשיים במסד נתונים?
הם עובדים היטב במערכות מבוזרות ולמזהים ציבוריים. העדיפו v7 על פני v4 כדי ששורות חדשות ייכנסו בסוף האינדקס, ושמרו אותם בעמודת uuid מובנית או בעמודה בינארית של 16 בתים, ולא כמחרוזת של 36 תווים.
מה זה nil UUID?
הערך שכולו אפסים 00000000-0000-0000-0000-000000000000, שמשמש כ-placeholder שפירושו „אין UUID”. ‏RFC 9562 מגדיר גם max UUID שכולו f.

כלים קשורים