מהו UUID (Universally Unique Identifier)?
תשובה קצרה: UUID הוא מחרוזת של 128 סיביות שמזהה רשומה, קובץ או אובייקט בין מערכות, בלי מסד מרכזי שבודק ייחודיות.
UUID הוא Universally Unique Identifier (במערכת של Microsoft נקרא לעיתים GUID, Globally Unique Identifier). זו מחרוזת אלפאנומרית בת 36 תווים כולל מקפים, למשל 550e8400-e29b-41d4-a716-446655440000.
המאפיין המגדיר הוא הסקאלה: יש בערך 3.4 × 10^38 צירופים אפשריים. המספר כל כך גדול שמפתחים יכולים לייצר UUID בשרתים או בלקוחות נפרדים בלי לחשוש מהתנגשות.
למה UUID v4 הוא התקן למסדי נתונים
תשובה קצרה: בניגוד לגרסאות מוקדמות שהטמיעו כתובת MAC או חותמת זמן, UUID v4 נשען על אקראיות קריפטוגרפית. הוא מתאים למפתח ראשי ב-PostgreSQL או ב-MongoDB: אנונימי ועמיד להתנגשויות.
ל-UUID יש כמה גרסאות לפי RFC 4122. גרסה 1 נשענת על זמן היצירה ועל כתובת ה-MAC של המחשב. זה מבטיח ייחודיות, אבל חושף מתי הרשומה נוצרה ואיזו חומרת רשת שימשה.
גרסה 4 (v4) אקראית כמעט לגמרי. כל סיבית (מלבד סיביות גרסה שמורות) נוצרת במנוע קריפטוגרפי. בלי מטא-דאטה מזהה, UUID v4 הוא התקן המומלץ לטוקני API, למפתחות ראשיים ולמזהי סשן.
הסכנה ביצירת UUID עם Math.random()
תשובה קצרה: Utiliome משתמש אך ורק ב-Web Crypto API. כלים שמסתמכים על Math.random() של JavaScript מייצרים מזהים חלשים וצפויים, עם סיכון להתנגשות ולפריצת אבטחה.
לא כל מחולל UUID בטוח לפרודקשן. מדריכים מהירים ברשת משתמשים ב-Math.random() כדי לבנות את המחרוזת בת 36 התווים.
זו חולשה ארכיטקטונית. Math.random() הוא מחולל פסאודו-אקראי (PRNG) שנזרע לפי שעון הדפדפן. הוא לא מאובטח קריפטוגרפית: תוקף יכול תאורטית לחזות פלט, או שהאפליקציה תייצר כפילות (התנגשות) ותשחית את המסד.
Utiliome מבטיח שכל המזהים נוצרים עם window.crypto.getRandomValues(), מאנטרופיה של חומרת מערכת ההפעלה.
למה יצירה מקומית בדפדפן שומרת על פרטיות
תשובה קצרה: יצירת UUID בשרת של צד שלישי חושפת מזהים ייחודיים של האפליקציה. Utiliome מחשב הכול בזיכרון המקומי של הדפדפן.
אם המזהים משמשים כמפתחות API, כטוקן לאיפוס סיסמה או כמזהה סשן, אסור לייצר אותם בכלי ענן. בקשת רשת לשרת מרוחק מאפשרת למנהל השרת לרשום את הטוקן.
הארכיטקטורה של Utiliome מורידה את סקריפט היצירה למכשיר. בלחיצה על יצירה החישוב רץ על המעבד שלכם, גם בלי אינטרנט. אפשר לייצר אלפי מזהים מאובטחים מתמטית בלי לצאת לרשת.
יצירה בכמות לזריעת מסד נתונים
תשובה קצרה: המנוע מותאם ליצור עד 10,000 מזהי UUID בלחיצה אחת, לבדיקות תוכנה ולזריעת מסד.
מהנדסים צריכים לעיתים אלפי מזהים ייחודיים כדי לזרוע מסד פיתוח, לבנות תשובות API מדומות או לבדוק עימוד תחת עומס.
כלים ישנים מכריחים ללחוץ "יצירה" אחד-אחד, או נכשלים בבקשת אצווה גדולה דרך הרשת. Utiliome מחשב בזיכרון המקומי ומציג 10,000 מזהים באלפיות שנייה, מוכנים להדבקה במערך JSON או בפקודת INSERT של SQL.
עיצוב UUID: מקפים, אותיות גדולות וסוגריים
תשובה קצרה: לפי הסטאק (Windows Registry, PostgreSQL או JSON) צריך פורמט מחרוזת אחר. Utiliome נותן מתגים מיידיים לפלט.
הערך המתמטי של ה-UUID נשאר זהה, אבל מנועי מסד דורשים תחביר שונה:
- סטנדרטי (עם מקפים):
550e8400-e29b... (ברירת מחדל ל-Postgres ול-API של JSON)
- בלי מקפים:
550e8400e29b... (לפרמטרי URL או לעמודות SQL דחוסות)
- אותיות גדולות:
550E8400-E29B... (נפוץ במערכות Microsoft ו-C# ישנות)
הממשק של Utiliome מחליף את האפשרויות מיד, בלי regex מסובך בעורך.