فك تشفير UUID والتحقق منه | تحليل الإصدارات (v1, v4, v7) والوقت

أدخل UUID الخاص بك في الحقل أعلاه، وستقوم هذه الأداة (محلل UUID) على الفور بإجراء فحص عبر الإنترنت، وتحديد الإصدار، والصلاحية، واستخراج المعلومات المخفية.

ما هو فك تشفير UUID؟

فك تشفير UUID هو أداة تقوم بتحليل UUID (معرف فريد عالميًا) وتستخرج منه جميع المعلومات المتاحة. UUID ليس مجرد سلسلة عشوائية من الأحرف – فوفقًا للإصدار، يمكن أن يحتوي على طابع زمني، أو معلومات النظام، أو تجزئة للبيانات المحددة.

ما هي المعلومات التي يمكنك الحصول عليها من UUID؟

معلومات UUID الأساسية

إصدار UUID:

  • يحدد نوع وهيكل UUID (v1, v3, v4, v5, v6, v7)
  • يتم استخراجه من الحرف السداسي عشري الثالث عشر

المتغير:

  • RFC 4122 - متغير UUID القياسي
  • NCS - نظام حوسبة الشبكة (قديم)
  • Microsoft - متغير Microsoft GUID
  • Reserved - محجوز للاستخدام المستقبلي

UUID v1 - الطابع الزمني + عنوان MAC

ما يمكنك الحصول عليه:

  • وقت الإنشاء الدقيق - التاريخ والوقت بدقة 100 نانوثانية
  • تسلسل الساعة - رقم تسلسلي لمنع الاصطدامات
  • معرف العقدة - في الأصل عنوان MAC، وغالباً ما تكون قيماً عشوائية

مثال:

UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8

Verze: v1 (Časové razítko + MAC)
Varianta: RFC 4122
Datum a čas: 15.10.1997 04:25:33.000
Clock Sequence: 724
Node ID: 00:C0:4F:D4:30:C8

الاستخدامات:

  • تحديد وقت إنشاء السجل
  • التدقيق والتحليل الجنائي
  • تصحيح الأخطاء المتعلقة بالمشاكل التي تعتمد على الوقت

UUID v3/v5 - قائم على التجزئة

ما يمكنك الحصول عليه:

  • نوع التجزئة - MD5 (v3) أو SHA-1 (v5)
  • لا يمكن الحصول عليه - مساحة الاسم والاسم الأصليين (تجزئة أحادية الاتجاه)

مثال:

UUID: 886313e1-3b8a-5372-9b90-0c9aee199e5d

Verze: v5 (SHA-1 hash)
Varianta: RFC 4122
Typ: Hash-based UUID (deterministické)
Poznámka: Původní namespace a název nelze z UUID získat zpět

الاستخدامات:

  • التحقق من أن UUID حتمي
  • تحديد نوع UUID في قاعدة البيانات
  • التحقق من اتساق المعرفات القائمة على التجزئة

UUID v4 - عشوائي

ما يمكنك الحصول عليه:

  • الإصدار - تأكيد أنه عشوائي
  • المتغير - معيار RFC 4122
  • لا توجد بيانات إضافية - بتات عشوائية بحتة

مثال:

UUID: f47ac10b-58cc-4372-a567-0e02b2c3d479

Verze: v4 (Náhodné)
Varianta: RFC 4122
Typ: Náhodně generované UUID

الاستخدامات:

  • التحقق من أن UUID عشوائي (وليس حتمياً)
  • التحقق من التنسيق الصحيح لـ UUID
  • التحقق من صحة UUID قبل تخزينه في قاعدة البيانات

UUID v6 - طابع زمني مرتب

ما يمكنك الحصول عليه:

  • وقت الإنشاء الدقيق - معاد ترتيبه لتحسين أداء قاعدة البيانات
  • تسلسل الساعة - رقم تسلسلي
  • معرف العقدة - معرف العقدة

مثال:

UUID: 1ec9414c-232a-6b00-b3c8-9e6bdeced846

Verze: v6 (Seřazené časové razítko)
Varianta: RFC 4122
Datum a čas: 30.01.2026 14:23:45.123
Clock Sequence: 3272
Node ID: 9E:6B:DE:CE:D8:46

الاستخدامات:

  • تحديد وقت إنشاء السجل
  • تحليل الترتيب الزمني في قاعدة البيانات
  • تصحيح الأخطاء في الأنظمة الموزعة

UUID v7 - طابع زمني يونكس

ما يمكنك الحصول عليه:

  • طابع زمني يونكس - مللي ثانية منذ 1.1.1970
  • التاريخ والوقت - تنسيق طابع زمني يونكس قياسي
  • الجزء العشوائي - لا يمكن فك تشفيره

مثال:

UUID: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Verze: v7 (Unix timestamp)
Varianta: RFC 4122
Datum a čas: 30.01.2026 14:23:45.123

الاستخدامات:

  • الحصول على وقت إنشاء UUIDs الحديثة
  • تحليل الترتيب الزمني
  • ترحيل البيانات ذات الطوابع الزمنية

هيكل UUID

UUID له التنسيق: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

6ba7b810-9dad-11d1-80b4-00c04fd430c8
│      │ │  │ │  │ │  │ │           │
│      │ │  │ │  │ │  │ └───────────┴─ العقدة (48 بت)
│      │ │  │ │  │ └──┴─────────────── تسلسل الساعة (14 بت)
│      │ │  │ └──┴────────────────────── المتغير (2-3 بت)
│      │ └──┴───────────────────────────── الإصدار (4 بت) + الوقت العلوي
│      └─────────────────────────────────── الوقت الأوسط (16 بت)
└────────────────────────────────────────── الوقت السفلي (32 بت)

استخراج الإصدارات والمتغيرات

الإصدار (M):

  • الموضع: الحرف السداسي عشري الثالث عشر
  • القيم: 1-7 (إصدارات UUID مختلفة)

المتغير (N):

  • الموضع: الحرف السداسي عشري السابع عشر
  • 0-7: NCS (محجوز)
  • 8-B: RFC 4122 (قياسي)
  • C-D: Microsoft
  • E-F: مستقبلي (محجوز)

أمثلة عملية

تصحيح الأخطاء - تحديد وقت إنشاء السجل

السيناريو: يبلغ المستخدم عن اختفاء بياناته. تحتاج إلى تحديد وقت إنشاء السجل.

UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
فك التشفير: 15.10.1997 04:25:33.000

→ تم إنشاء السجل في عام 1997

التحليل الجنائي - التحقق من التسلسل الزمني

السيناريو: التحقق مما إذا كانت الأحداث قد وقعت بالترتيب الصحيح.

UUID 1: 1ec9414c-232a-6b00-b3c8-9e6bdeced846 → 30.01.2026 14:23:45
UUID 2: 1ec9414d-557b-6a00-8f32-1234567890ab → 30.01.2026 14:25:12

→ تم إنشاء UUID 2 لاحقًا (الترتيب الصحيح)

تحديد نوع UUID في قاعدة البيانات

السيناريو: لديك UUIDs مختلطة في قاعدة البيانات وتحتاج إلى معرفة أيها عشوائي وأيها يحتوي على طابع زمني.

f47ac10b-58cc-4372-a567-0e02b2c3d479 → v4 (عشوائي، بدون طابع زمني)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → v1 (له طابع زمني)
017f22e2-79b0-7cc3-98c4-dc0c0c07398f → v7 (له طابع زمني)

→ فقط UUIDs v1 و v7 تحتوي على معلومات زمنية

القيود وما لا يمكن الحصول عليه

❌ UUID v3/v5 - لا يمكن فك تشفير التجزئة

مستحيل:

  • استعادة مساحة الاسم الأصلية
  • استعادة الاسم/القيمة الأصليين
  • معرفة البيانات التي تم تجزئتها

السبب: MD5 و SHA-1 هما دالتان تجزئة أحادية الاتجاه.

❌ UUID v4 - لا توجد بيانات مخفية

مستحيل:

  • الحصول على أي بيانات وصفية
  • تحديد وقت الإنشاء
  • تحديد المصدر

السبب: UUID v4 عشوائي بحت، ولا يحتوي على أي معلومات منظمة.

⚠️ UUID v1/v6 - قد يكون معرف العقدة عشوائياً

القيود:

  • في التطبيقات الحديثة، يكون معرف العقدة غالباً عشوائياً (وليس عنوان MAC حقيقياً)
  • بسبب حماية الخصوصية، غالباً ما يتم استبدال عناوين MAC بقيم عشوائية
  • لا يمكن تحديد جهاز معين بشكل موثوق

التحقق من UUID

يعمل فك التشفير أيضًا كمدقق لـ UUID.

التحقق من صلاحية UUID

يقوم فك التشفير بالتحقق تلقائيًا من:

  • ✅ التنسيق الصحيح (8-4-4-4-12 أحرف سداسية عشرية)
  • ✅ أحرف سداسية عشرية صالحة (0-9, a-f)
  • ✅ الطول الصحيح (36 حرفًا بما في ذلك الواصلات، 32 بدونها)

التعرف على UUIDs غير الصالحة

أمثلة غير صالحة:

❌ 6ba7b810-9dad-11d1-80b4          (قصير جدًا)
❌ 6ba7b810-9dad-11d1-80b4-GHIJKLMN (أحرف غير صالحة)
❌ 6ba7b81-09dad-11d1-80b4-00c04fd4 (تنسيق خاطئ)

للمطورين

تطبيق في JavaScript

// استخراج الإصدار من UUID
function getUUIDVersion(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    return parseInt(cleaned[12], 16);
}

// استخراج الطابع الزمني من UUID v7
function extractV7Timestamp(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    const timeHi = parseInt(cleaned.substring(0, 8), 16);
    const timeLow = parseInt(cleaned.substring(8, 12), 16);
    const unixMs = Number(BigInt("0x" + cleaned.substring(0, 12)) >> 16n);
    return new Date(unixMs);
}

// مثال
const uuid = '017f22e2-79b0-7cc3-98c4-dc0c0c07398f';
console.log(getUUIDVersion(uuid)); // 7
console.log(extractV7Timestamp(uuid)); // Date object

التحقق من UUID باستخدام Regex

const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;

function isValidUUID(uuid) {
    return uuidRegex.test(uuid);
}

الأسئلة الشائعة (FAQ)

هل يمكنني الحصول على وقت الإنشاء من UUID v4؟ لا، UUID v4 عشوائي بحت ولا يحتوي على أي معلومات زمنية. للحصول على UUIDs تتضمن وقتًا، استخدم v1 أو v6 أو v7.
لماذا يكون معرف العقدة (Node ID) في UUID v1 عشوائيًا بدلاً من عنوان MAC؟ تستخدم التطبيقات الحديثة معرف عقدة عشوائيًا لحماية الخصوصية. الكشف عن عنوان MAC الحقيقي يمكن أن يشكل خطرًا أمنيًا.
هل يمكنني استعادة عنوان URL أو الاسم الأصلي من UUID v5؟ لا، يستخدم UUID v5 تجزئة SHA-1، وهي أحادية الاتجاه. لا يمكن استعادة البيانات الأصلية من التجزئة.
كيف أعرف أن UUID عشوائي (v4)؟ يعرض فك التشفير إصدار UUID. إذا كان الإصدار 4، فهو UUID تم إنشاؤه عشوائيًا بدون أي بيانات وصفية إضافية.
هل الطابع الزمني في UUID v1 دقيق؟ نعم، يتمتع UUID v1 بدقة نظرية تبلغ 100 نانوثانية (منذ 15 أكتوبر 1582). من الناحية العملية، يعتمد ذلك على دقة ساعة النظام.
هل يمكنني استخدام فك التشفير للتحقق من UUID؟ نعم، يقوم فك التشفير تلقائيًا بالتحقق من تنسيق UUID ويعرض خطأ إذا كان UUID غير صالح.

الأمان والخصوصية

ما الذي يكشفه UUID؟

UUID v1/v6:

  • ⚠️ وقت الإنشاء - قد يكشف عن توقيت العمليات
  • ⚠️ عنوان MAC محتمل - خطر تحديد الجهاز (عشوائي في التطبيقات الحديثة)

UUID v4:

  • آمن - لا يحتوي على أي بيانات وصفية

UUID v7:

  • ⚠️ طابع زمني يونكس - يكشف عن وقت الإنشاء

التوصيات

  • ✅ استخدم UUID v4 للحصول على أقصى قدر من الخصوصية
  • ⚠️ كن حذرًا مع UUID v1/v6/v7 في واجهات برمجة التطبيقات العامة (تكشف عن معلومات زمنية)
  • ✅ UUID v5 حتمي، ولكنه لا يكشف عن البيانات الأصلية
  • ⚠️ تجزئة MD5 ليست آمنة تمامًا

حقائق مثيرة للاهتمام

  • أقدم UUID v1 ممكن: 15 أكتوبر 1582 00:00:00 (بداية التقويم الغريغوري)
  • أحدث UUID v7: 10889-08-02 05:31:50.655 (حد الطابع الزمني يونكس بالمللي ثانية)
  • دقة UUID v1: 100 نانوثانية (نظريًا 10 مليون UUID في الثانية)
  • UUID Nil: 00000000-0000-0000-0000-000000000000 (UUID خاص “فارغ”)
  • UUID Max: ffffffff-ffff-ffff-ffff-ffffffffffff (القيمة القصوى)

الاستخدام في أنظمة مختلفة

PostgreSQL

-- استخراج إصدار UUID
SELECT substring(id::text, 15, 1) as version
FROM users;

-- التصفية حسب الإصدار
SELECT *
FROM users
WHERE substring(id::text, 15, 1) = '4';

MySQL

-- التحقق من تنسيق UUID
SELECT id
FROM users
WHERE id REGEXP '^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$';